Moin Karl-Heinz,
vielen Dank für die Antwort.
Ich muss dazu sagen, dass ich noch relativ neu bin was VBA angeht, daher musste ich mir den Quelltext erst mehrfach anschauen um zu verstehen was genau gemacht wird.
Ich verstehe den Quelltext folgendermaßen.
Zuerst werden die String Aray sBer1 und sBer2 dekrlariert (vermutlich bedeutet das Ber "Bereich")
Anschließend die beiden Long Werte für die Quellzeile und die Zielzeile sowie die Integer I für die spätere Schleife.
Bei der nächsten Zeile stocke ich ein wenig.
IZIZ = Range("Zielzeile").Row (Muss ich da nicht einen Bereich bzw. die Zelladresse/Bereich als String angeben bei Range ? Hier ist aber der Begriff "Zielzeile"
Das selbe mit der IZIQ Variable.
Nun kommt der Teil, den ich nicht zu 100 Prozent nachvollziehen kann.
sBer1 = Split(Replace("A2:B2 D2:F2 H2 J2", "2", IZIZ))
Wenn ich IZIZ nun mit einem Bereich definiert habe, dann ist dieser doch auch wieder fest hinterlegt, und wenn ich dann eine Zeile oberhalb der Tabelle einrichte änddert sich dies doch in der Tabelle, aber nicht im Code...
Die Zeile an Sich kann ich nachvollziehen, sBer1 Müsste dann der Buchstabe und überall wo 2 wäre durch den Wert IZIZ ausgetauscht werden.
Ich habe hier nochmal das komplette Makro, damit man sich ein besseres Bild machen kann.
Sub Auszahlen()
Worksheets("Offen").Select
Range("Tabelle1").Sort _
Key1:=Range("A8"), _
Order1:=xlAscending, _
Header:=xlYes
If Range("A8") = "Ausgezahlt" Then
Worksheets("Ausgezahlt").Rows("2:2").Insert _
Shift:=xlDown, _
CopyOrigin:=xlFormatFromRightOrBelow
Worksheets("Offen").Range("E8:F8").Copy
Worksheets("Ausgezahlt").Range("A2:B2").PasteSpecial Paste:=xlPasteValues
Worksheets("Offen").Range("G8:I8").Copy
Worksheets("Ausgezahlt").Range("D2:F2").PasteSpecial Paste:=xlPasteValues
Worksheets("Offen").Range("C8").Copy
Worksheets("Ausgezahlt").Range("H2").PasteSpecial Paste:=xlPasteValues
Worksheets("Offen").Range("K8").Copy
Worksheets("Ausgezahlt").Range("J2").PasteSpecial Paste:=xlPasteValues
Worksheets("Ausgezahlt").Select
Range("Tabelle8").Sort _
Key1:=Range("I2"), _
Order1:=xlAscending, _
Header:=xlYes
Range("A1").Select
Worksheets("Offen").Rows("8:8").Delete
Worksheets("Offen").Select
Range("Tabelle1").Sort _
Key1:=Range("B8"), _
Order1:=xlAscending, _
Header:=xlYes
Range("A1").Select
Worksheets("Ausgezahlt").Select
MsgBox "Die Daten wurden erfolgreich verschoben. Bitte noch Abteilung und Auszahlung angeben."
Else
Range("Tabelle1").Sort _
Key1:=Range("B8"), _
Order1:=xlAscending, _
Header:=xlYes
MsgBox "Bitte vorher den ausgezahlten Kunden auf Status ausgezahlt stellen."
End If
End Sub
|