Informationen Batchweise Wegkopieren
02.06.2022 14:39:07
Thomas
ich versuche es kurz und Knapp:
Ich habe unterschiedliche Datensätze auf Geräten, die ich zusammenführen möchte. Ich habe eine Tabelle gebaut, die groß genug ist, den Datensatz mit den meisten Spalten aufzunehmen (Spalte A bis E). Hier Kopiere ich aus dem gerät und Paste in die Tabelle. Ich brauche immer nur Infos aus zwei Spalten, habe also in F und G die Daten zusammengeführt und mit Daten aus der Kopfzeile ergänzt:
F:
=WENN(A2="";"";A2)
G:
=WENN(F2="";"";$A$1&" "&$C$1&" "&$E$1)&" "&WENN($A$1="GC-3";E2;WENN($A$1="GC-7";C2;WENN($A$1="GC-9"; B2;"Zuordnungsfehler Gerät")))
Ich definiere in J2 über eine Formel wieviele Zeilen zu übertragen sind.
=150-ZÄHLENWENN(A2:A151;"")
Dies definiere ich später im VBA als s zum durchiterieren.
Nun möchte ich diesen Datensatz "F2:G" Länge ist unterschiedlich. ab Zeile 250 in die Spalten "H250:I" kopieren und zwar so, das der neuste Datensatz immer oben steht.
Hierfür habe ich nun folgendes VBA:
Private Sub CommandButton2_Click()
ActiveSheet.Unprotect Password:="xxx"
Dim i As Integer
Dim s
s = Worksheets("GC Batches").Cells(2, 10).Value
For i = 1 To s
Rows("250:250").Select
Selection.Insert Shift:=xlDown
Next i
With Sheets("GC Batches")
.Range("F2:G" & .Cells(.Rows.Count, 2).End(xlUp).Row).Copy
Sheets("GC Batches").Range("H250").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks _
:=True, Transpose:=False
End With
Application.CutCopyMode = False
Sheets("GC Batches").Range("A2:E151").ClearContents
Sheets("GC Batches").Range("A1").Value = "Wählen ..."
Sheets("GC Batches").Range("C1").ClearContents
Sheets("GC Batches").Range("E1").Value = "Wählen ..."
Sheets("GC Batches").Range("A1").Activate
ActiveSheet.Protect Password:="xxx"
Dateiname = "G:\xxx".xls"
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Dateiname
Application.DisplayAlerts = True
End Sub
Die funktioniert auch, aber leider nicht immer. Manchmal fügt der code mir zwar die Zeilen ein, kopiert aber nur eine Zeile. Jemand eine Idee woran das liegen könnte und was ich dagegen machen kann?