AW: Schleife und offset kombinieren
26.12.2023 19:23:01
Piet
Hallo
ich gehe davon aus das die neuen Daten immer in der Tabelle "Sondererhebung" unten angehangen werden sollen.
Dafür ist dieser Code, mit Offset von 5 Zeilen ausgelegt. - Bitte prüfen ob beim kopieren alle Spalten stimmen!!
Wir verzichten bei solchen Codes immer auf Sheet().Select + Range.Select. Der Code läuft so wesentlich schneller-.
Grüsse an die Polizei in NRW von einem Kölner aus Izmir.
mfg Piet
Sub KopierenKS1_neu()
Dim j As Long, h, n, lz1 As Long
'SharePoint Objekt, z5 = Offset
Dim SPI As Worksheet, z5 As Long
Set SPI = Worksheets("Import SharePoint")
'Application.ScreenUpdating = False
With Sheets("Sondererhebung")
'LastZell in Sondererhebung ermitteln
h = .Cells(Rows.Count, 9).End(xlUp).Row 'I
n = .Cells(Rows.Count, 14).End(xlUp).Row 'N
If h >= n Then z5 = h - 3
If n >= h Then z5 = n - 3
'LastZell in SharPoint ermitteln
lz1 = SPI.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lz1 'Import kopieren
SPI.Range("A1:G1").Offset(i, 0).Copy
.Range("A5").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("H1:J1").Offset(i, 0).Copy
.Range("I5").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("K1:M1").Offset(i, 0).Copy
.Range("I6").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("N1:P1").Offset(i, 0).Copy
.Range("I7").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("Q1:S1").Offset(i, 0).Copy
.Range("I8").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("T1:V1").Offset(i, 0).Copy
.Range("I9").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("W1").Offset(i, 0).Copy
.Range("L5").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("X1:AA1").Offset(i, 0).Copy
.Range("N5").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("AB1:AE1").Offset(i, 0).Copy
.Range("N6").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("AF1:AI1").Offset(i, 0).Copy
.Range("N7").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("AJ1:AM1").Offset(i, 0).Copy
.Range("N8").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
SPI.Range("AN1:AQ1").Offset(i, 0).Copy
.Range("N9").Offset(z5, 0).PasteSpecial Paste:=xlPasteValues
' Durchnummerierung Einsatzkräfte'
If .Range("I5").Offset(z5, 0) > "" Then .Range("H5").Offset(z5, 0) = 1
If .Range("I6").Offset(z5, 0) > "" Then .Range("H6").Offset(z5, 0) = 2
If .Range("I7").Offset(z5, 0) > "" Then .Range("H7").Offset(z5, 0) = 3
If .Range("I8").Offset(z5, 0) > "" Then .Range("H8").Offset(z5, 0) = 4
If .Range("I9").Offset(z5, 0) > "" Then .Range("H9").Offset(z5, 0) = 5
' Durchnummerierung TV
If .Range("N5").Offset(z5, 0) > "" Then .Range("M5").Offset(z5, 0) = 1
If .Range("N6").Offset(z5, 0) > "" Then .Range("M6").Offset(z5, 0) = 2
If .Range("N7").Offset(z5, 0) > "" Then .Range("M7").Offset(z5, 0) = 3
If .Range("N8").Offset(z5, 0) > "" Then .Range("M8").Offset(z5, 0) = 4
If .Range("N9").Offset(z5, 0) > "" Then .Range("M9").Offset(z5, 0) = 5
'Offset 5 Zeilen nach unten
z5 = z5 + 5
Next i
End With
End Sub