Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Informationen Batchweise Wegkopieren

Informationen Batchweise Wegkopieren
02.06.2022 14:39:07
Thomas
Hallo,
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?

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Informationen Batchweise Wegkopieren
02.06.2022 15:52:29
ChrisL
Hi Thomas
Einfach mal aufgeräumt. Vielleicht ist der Fehler damit von alleine weg. Die letzte Zeile wird anhand von Spalte A ermittelt und J2 braucht es nicht mehr.

Sub t()
Dim letzteZeile As Long
Dim Dateiname As String
With Worksheets("GC Batches")
.Unprotect "xxx"
letzteZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
.Rows(250).Resize(letzteZeile - 1).Insert Shift:=xlDown
.Range("F2:G" & letzteZeile).Copy
.Range("H250").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Application.CutCopyMode = False
.Range("A2:E151").ClearContents
.Range("A1").Value = "Wählen ..."
.Range("C1").ClearContents
.Range("E1").Value = "Wählen ..."
.Range("A1").Activate
.Protect "xxx"
End With
Dateiname = "C:\Pfad\xxx.xlsx"
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Dateiname
Application.DisplayAlerts = True
End Sub
cu
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige