Hallo liebe Helfer,
ich bin neu im Umgang mit VBA und habe mir in den letzten Tagen alles selbst beigebracht. Dabei stoße ich natürlich immer wieder an Grenzen und habe das Gefühl, dass ich manche Codes zu kompliziert bastle da ich nicht alle Kniffe kenne.
Meine Versuche derzeit bestimmte Werte in ein großes Tabellenblatt aus einem "kleineren" Tabellenblatt zu überführen. Beim großen Blatt (Tabelle1) handelt es sich um eine Datensammlung. Das kleinere Tabellenblatt (Tabelle2) umfasst eine Auswahl nach bestimmten Kriterien. Die Werte, welche ich aus dem Tabellenblatt 2 in die Tabelle1 überführen möchte, sollen natürlich den Passenden Zellen, Spalten und Zeilen zugeordnet werden.
Für mich erscheint mein komplizierter Code als logisch. Allerdings ist Excel nach einer halben Stunde immernoch nicht fertig mit der Umsetzung des Codes. Liegt dies daran, dass ich zuviele If und Do Until Verkettungen habe, welche viel Zeit zum durchrechnen benötigen? Oder fehlt ein Stopper im Code?
Private Sub CommandButton1_Click()
lSpalte = 13
pSpalte = 13
aZeile = 52
bZeile = 52
Do Until pSpalte = 263
Do Until lSpalte = 263
If Tabelle2.Cells(5, lSpalte).Value = Tabelle1.Cells(5, pSpalte).Value Then
Tabelle1.Cells(5, pSpalte).Value = Tabelle2.Cells(5, lSpalte).Value
Tabelle1.Cells(7, pSpalte).Value = Tabelle2.Cells(7, lSpalte).Value
Tabelle1.Cells(8, pSpalte).Value = Tabelle2.Cells(8, lSpalte).Value
Tabelle1.Cells(9, pSpalte).Value = Tabelle2.Cells(9, lSpalte).Value
Tabelle1.Cells(10, pSpalte).Value = Tabelle2.Cells(10, lSpalte).Value
Tabelle1.Cells(11, pSpalte).Value = Tabelle2.Cells(11, lSpalte).Value
Tabelle1.Cells(14, pSpalte).Value = Tabelle2.Cells(14, lSpalte).Value
Tabelle1.Cells(15, pSpalte).Value = Tabelle2.Cells(15, lSpalte).Value
Tabelle1.Cells(17, pSpalte).Value = Tabelle2.Cells(17, lSpalte).Value
Do Until bZeile = 251
Do Until aZeile = 251
If Tabelle2.Cells(aZeile, 5).Value = Tabelle1.Cells(bZeile, 5).Value Then
Tabelle1.Cells(bZeile, pSpalte).Value = Tabelle2.Cells(aZeile, lSpalte).Value
aZeile = aZeile + 1
Else
aZeile = aZeile + 1
End If
Loop
bZeile = bZeile + 1
aZeile = 52
Loop
bZeile = 52
aZeile = 52
lSpalte = lSpalte + 1
Else
lSpalte = lSpalte + 1
End If
Loop
aZeile = 52
bZeile = 52
pSpalte = pSpalte + 1
lSpalte = 13
Loop
End Sub
Vielen Dank für jedwede Hilfe!
|