Kopieren von Formeln mit Bedingung
29.11.2015 15:14:11
EasyD
Hallo Zusammen
ich bin gerade dabei, mir aus diversen in Internetforen gefundenen Code-Bruchstücken mein Marko zu bauen. Das ganze tatsächlich selbst zu bauen schaffe ich noch nicht, bin Autodidakt was VBA angeht.....
Ich habe eine Spalte I, in der entweder "gebucht" oder nichts steht.
Wenn dort nichts steht, dann sollen die Spalten A bis G der ersten Zeile darüber (= die letzte Zeile, in der noch "gebucht" steht) einfach eins nach unten in die soeben gefundene Zeile ausgefüllt werden. Klingt an sich nicht so kompliziert, ist es aber für mich.
Hintergrund ist, dass der Kenner "gebucht" nach diesem Kopiervorgang durch einen weiteren Vorgang erst gesetzt wird.
Der bisherige Code dazu:
Sub Test()
Dim ums As Worksheet, buch As Worksheet
Dim x As Long, y As Long, lngZeilen As Long
Dim lnterstefrei As Long
Set ums = Worksheets("Umsatzliste")
Set buch = Worksheets("Buchungsliste")
lngZeilen = ums.Cells(ums.Rows.Count, 2).End(xlUp).Row
x = 2
For y = 1 To lngZeilen
If ums.Cells(y, 9).Value Like "gebucht" Then
'bei "gebucht" nichts machen, sonst:
Else
Worksheets("Umsatzliste").Select
'jetzt fehlt noch die Funktion - wenn die gebucht-Zelle (=Else) leer ist, dann nimm die Spalten _
A bis G von der ZEILE DARÜBER und kopiere sie eins nach unten
'Kopieren der Spaten A bis G (=die soeben mit der noch fehlenden Funktion erstellten Zellen):
ums.Range(Cells(y, 1), Cells(y, 7)).copy
'Einfügen der kopierten WERTE in die Spalten A bis G der Buchungsliste:
Worksheets("Buchungsliste").Select
buch.Cells(buch.Cells(Rows.Count, 2).End(xlUp).Row + 1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'setzen des Kenners "gebucht" nach Durchführung dieser Aktion
ums.Cells(y, 9).Value = "gebucht"
lngY = lngY + 1 'lngy + 1
x = x + 1
End If
Next y
End Sub
ich bin mal gespannt was so für Lösungsansätze kommen. Ich freu mich auf eure Hilfe.
Grüße