Hallo zusammen,
leider verzweifle ich seit ein paar Tagen an einer VBA Programmierung, die ich bis zu einem gewissen Punkt hinbekommen habe, es aber immernoch nicht so funktioniert wie ich es mir vorstelle.
Das Ziel ist es aus "Tabelle 1" gewisse Zeilen zu kopieren und an den passenden Stellen in "Tabelle 2" einzufügen. Es gibt nämlich zwei Spalten, die teilweise identische Inhalte aufweisen (sechsstellige Zahlen).
Der Code sieht aktuell wie folgt aus:
??????????????????????
Sub Zuordnung()
Dim Suche
Tabelle = "Tabelle1"
Spalte = "A"
Anz_Spalten = 3
Z_Tabelle = "Tabelle4"
Zielzeile = 2
Zielspalte = "C"
Suche = Array ("123456", "654321", "usw.")
Set A = Worksheets(Tabelle)
Set B = Worksheets(Z_Tabelle)
For i = 0 To UBound(Suche)
With A.Columns(Spalte)
Set Gefunden = .Find(Suche(i), LookIn:=xlV
If Not Gefunden Is Nothing Then
Erste = Gefunden.Address
Do
B.Cells(Zielzeile, Zielspalte).Resize(1, Anz_Spalten) = Gefunden.Offset(0, 1).Resize(1, Anz_Spalten).Value
Zielzeile = Zielzeile + 1
Set Gefunden = .FindNext(Gefunden)
Loop Until Gefunden.Address = Erste
End If
End With
Next i
End Sub
????????????????????????
Nun gibt es zwei Probleme:
1. Die kopierte Zeilen aus Tabelle 1 werden in Tabelle 2 nicht an die richtigen Zeilen eingefügt. Sondern einfach chronologisch von Zeile zwei runter. Mein Wunsch wäre es, dass in Tabelle 2, sie bei den Zeilen hinzugefügt werden, bei denen der gleiche Inhalt in der Spalte A ist. Spalte A in Tabelle 1 und 2 dienen als Referenz zueinander, um die Daten richtig zuzuordnen.
2. Ich bin ehrlich gesagt mit dem "Array" unzufrieden. Es müssen circa 500 Codes (sechsstellige Zahlen) hinzugefügt werden. Da sich die Zahlen monatlich ändern, wäre hier eventuell eine Lösung die automatisch die Codes einliest sinnvoll. Außerdem übersteigt die Anzahl an Codes die maximale Größe eines Arrays.
Wie könnte man die beiden Punkte umsetzen?
Vielen Dank für Eure Hilfe!
Liebe Grüße
|