Thema Datum  Von Nutzer Rating
Antwort
15.12.2021 17:27:05 NikoM
NotSolved
15.12.2021 20:12:09 Gast36086
NotSolved
Rot Daten in einem Array finden und Spalteninhalte wiedergeben
16.12.2021 08:39:09 NikoM
NotSolved
16.12.2021 11:03:23 Gast1949
NotSolved

Ansicht des Beitrags:
Von:
NikoM
Datum:
16.12.2021 08:39:09
Views:
279
Rating: Antwort:
  Ja
Thema:
Daten in einem Array finden und Spalteninhalte wiedergeben

Hallo Gast36086 und vielen Dank für deine Mühe und Antwort.

Leider hat es bei mir mit deinem Quellcode nicht funktioniert. Gestern Abend habe ich jedoch mit einem Freund eine Lösung gefunden, die zwar Programmiertechnisch nicht die sauberste ist aber doch funktioniert:

 

Sub SucheNachInhalten()
Dim lngZeile As Long
Dim lngSpalteMax As Long
Dim lngZeileMax As Long
Dim lngSpalte As Long
Dim lngZeileMax2 As Long
Dim VarDat As Variant
Dim i As Integer
Dim sQuellSpalte As String
Dim sZielSpalte As String

 
Dim lngQuellZeile As Long
Dim lngQuellSpalte As Long
Dim lngZielZeile As Long
Dim lngZielSpalte As Long

 
With Tabelle1
 
    'Array für Zeilen in Tabelle1
    lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
    lngSpalteMax = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
    
     
    'Array für Zeilen in Tabelle2
    lngZeileMax2 = Sheets("Tabelle2").Range("A" & .Rows.Count).End(xlUp).Row
  
    For lngZeile = 2 To lngZeileMax
        VarDat = Sheets("Tabelle2").Range("A2:A" & lngZeileMax2)
        For i = 1 To UBound(VarDat)
         
            If .Range("A" & lngZeile).Value = VarDat(i, 1) And .Range("B" & lngZeile).Value = "WV" Then
                
                
                For lngSpalte = 2 To (lngSpalteMax - 1)
                    lngQuellZeile = lngZeile
                    lngQuellSpalte = lngSpalte
                    lngZielZeile = i + 1
                    lngZielSpalte = lngQuellSpalte - 1
                    sQuellSpalte = Chr(lngQuellSpalte + 65)
                    sZielSpalte = Chr(lngZielSpalte + 65)
                    Sheets("Tabelle2").Range(sZielSpalte & lngZielZeile) = .Range(sQuellSpalte & lngQuellZeile)
                    
                Next lngSpalte
            End If
             
            If .Range("A" & lngZeile).Value = VarDat(i, 1) And .Range("B" & lngZeile).Value = "STWV" Then
                For lngSpalte = 2 To (lngSpalteMax - 1)
                    lngQuellZeile = lngZeile
                    lngQuellSpalte = lngSpalte
                    lngZielZeile = i + 1
                    lngZielSpalte = lngQuellSpalte - 1 + (lngSpalteMax - 13)
                    sQuellSpalte = Chr(lngQuellSpalte + 65)
                    sZielSpalte = Chr(lngZielSpalte + 65)
                    If sZielSpalte > "Y" Then
                    Exit For
                    End If
                    Sheets("Tabelle2").Range(sZielSpalte & lngZielZeile) = .Range(sQuellSpalte & lngQuellZeile)
                    
                Next lngSpalte
            End If
     
     
        Next i
    Next lngZeile
  
     
End With
 
End Sub

Damit klappts jetzt erstmal...wenn aber jemand hier den Qode optimieren kann bin ich für jeden Vorschlag offen :)


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
15.12.2021 17:27:05 NikoM
NotSolved
15.12.2021 20:12:09 Gast36086
NotSolved
Rot Daten in einem Array finden und Spalteninhalte wiedergeben
16.12.2021 08:39:09 NikoM
NotSolved
16.12.2021 11:03:23 Gast1949
NotSolved