Hallo, habe ein Problem mit der Zusammenführung der Datensätze aus drei Tabellen.
und zwar: die Datensätze werden ein einer Tabelle nicht vollständig übernommen - siehe Anhang - habe den Fehler nicht ermitteln können - vielleicht kann jemand mir bitte weiterhelfen - Danke!
Anbei die Datei!
Lg Ubi5
Sub TabellenZusammenfuehren() ' Deklariere Variablen Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, wsZiel As Worksheet Dim letzteZeile1 As Long, letzteZeile2 As Long, letzteZeile3 As Long, i As Long
' Setze die Arbeitsblätter Set ws1 = ThisWorkbook.Sheets("Daten") ' Ersetze "Tabelle1" Set ws2 = ThisWorkbook.Sheets("Daten1") ' Ersetze "Tabelle2" Set ws3 = ThisWorkbook.Sheets("Daten2") ' Ersetze "Tabelle3"
Set wsZiel = ThisWorkbook.Sheets("Daten3") ' Ersetze "ZielTabelle" oder erstelle ein neues Blatt
' Bestimme die letzte Zeile mit Daten in den Tabellen letzteZeile1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile3 = ws3.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A
' Kopiere die Datensätze von Tabelle1 in ZielTabelle ws1.Range("A1:Z" & letzteZeile1).Copy wsZiel.Range("A1") ' Passe den Bereich an
' Kopiere die Datensätze von Tabelle2 in ZielTabelle ws2.Range("A1:Z" & letzteZeile2).Copy wsZiel.Range("A" & letzteZeile1 + 1) ' Passe den Bereich an und füge unterhalb an
' Kopiere die Datensätze von Tabelle3 in ZielTabelle ws3.Range("A1:Z" & letzteZeile3).Copy wsZiel.Range("A" & letzteZeile1 + 1) ' Passe den Bereich an und füge unterhalb an
MsgBox "Daten erfolgreich zusammengeführt!", vbInformation End Sub
es werden schon alle Daten kopiert aber du ermittelst auf dem Blatt Daten die letzteZeile1 <-- das ist falsch die musst du auf dem Zielblatt ermitteln und nach jedem Copy wieder neu
Sub TabellenZusammenfuehren() ' Deklariere Variablen Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, wsZiel As Worksheet Dim letzteZeile1 As Long, letzteZeile2 As Long, letzteZeile3 As Long, i As Long, letzteZeile4 As Long
' Setze die Arbeitsblätter Set ws1 = ThisWorkbook.Sheets("Daten") ' Ersetze "Tabelle1" Set ws2 = ThisWorkbook.Sheets("Daten1") ' Ersetze "Tabelle2" Set ws3 = ThisWorkbook.Sheets("Daten2") ' Ersetze "Tabelle3"
Set wsZiel = ThisWorkbook.Sheets("Daten3") ' Ersetze "ZielTabelle" oder erstelle ein neues Blatt letzteZeile4 = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Bestimme die letzte Zeile mit Daten in den Tabellen letzteZeile1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile3 = ws3.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A
' Kopiere die Datensätze von Tabelle1 in ZielTabelle ws1.Range("A1:Z" & letzteZeile1).Copy wsZiel.Range("A1") ' Passe den Bereich an letzteZeile4 = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Kopiere die Datensätze von Tabelle2 in ZielTabelle ws2.Range("A1:Z" & letzteZeile2).Copy wsZiel.Range("A" & letzteZeile1 + 1) ' Passe den Bereich an und füge unterhalb an letzteZeile4 = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Kopiere die Datensätze von Tabelle3 in ZielTabelle ws3.Range("A1:Z" & letzteZeile3).Copy wsZiel.Range("A" & letzteZeile1 + 1) ' Passe den Bereich an und füge unterhalb an letzteZeile4 = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1
MsgBox "Daten erfolgreich zusammengeführt!", vbInformation End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Sub TabellenZusammenfuehren() ' Deklariere Variablen Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, wsZiel As Worksheet Dim letzteZeile1 As Long, letzteZeile2 As Long, letzteZeile3 As Long, i As Long Dim lngZiel As Long
' Setze die Arbeitsblätter Set ws1 = ThisWorkbook.Sheets("Daten") ' Ersetze "Tabelle1" Set ws2 = ThisWorkbook.Sheets("Daten1") ' Ersetze "Tabelle2" Set ws3 = ThisWorkbook.Sheets("Daten2") ' Ersetze "Tabelle3"
Set wsZiel = ThisWorkbook.Sheets("Daten3") ' Ersetze "ZielTabelle" oder erstelle ein neues Blatt
' Bestimme die letzte Zeile mit Daten in den Tabellen letzteZeile1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile3 = ws3.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A
' Kopiere die Datensätze von Tabelle1 in ZielTabelle ws1.Range("A1:Z" & letzteZeile1).Copy wsZiel.Range("A1") ' Passe den Bereich an
With wsZiel lngZiel = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
' Kopiere die Datensätze von Tabelle2 in ZielTabelle ws2.Range("A1:Z" & letzteZeile2).Copy wsZiel.Range("A" & lngZiel) ' Passe den Bereich an und füge unterhalb an
' Kopiere die Datensätze von Tabelle3 in ZielTabelle ws3.Range("A1:Z" & letzteZeile3).Copy wsZiel.Range("A" & lngZiel) ' Passe den Bereich an und füge unterhalb an
End With
MsgBox "Daten erfolgreich zusammengeführt!", vbInformation End Sub
klar, es müssen auch die Zeilen im Copy-Befehl geändert werden, statt letzteZeile1 muß es letzteZeile4 heißen:
Code:
Sub TabellenZusammenfuehren() ' Deklariere Variablen Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, wsZiel As Worksheet Dim letzteZeile1 As Long, letzteZeile2 As Long, letzteZeile3 As Long, i As Long, letzteZeile4 As Long
' Setze die Arbeitsblätter Set ws1 = ThisWorkbook.Sheets("Daten") ' Ersetze "Tabelle1" Set ws2 = ThisWorkbook.Sheets("Daten1") ' Ersetze "Tabelle2" Set ws3 = ThisWorkbook.Sheets("Daten2") ' Ersetze "Tabelle3"
Set wsZiel = ThisWorkbook.Sheets("Daten3") ' Ersetze "ZielTabelle" oder erstelle ein neues Blatt
' Bestimme die letzte Zeile mit Daten in den Tabellen letzteZeile1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile3 = ws3.Cells(Rows.Count, 1).End(xlUp).Row ' Spalte A letzteZeile4 = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Kopiere die Datensätze von Tabelle1 in ZielTabelle ws1.Range("A1:Z" & letzteZeile1).Copy wsZiel.Range("A1") ' Passe den Bereich an letzteZeile4 = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Kopiere die Datensätze von Tabelle2 in ZielTabelle ws2.Range("A1:Z" & letzteZeile2).Copy wsZiel.Range("A" & letzteZeile4) ' Passe den Bereich an und füge unterhalb an letzteZeile4 = wsZiel.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Kopiere die Datensätze von Tabelle3 in ZielTabelle ws3.Range("A1:Z" & letzteZeile3).Copy wsZiel.Range("A" & letzteZeile4) ' Passe den Bereich an und füge unterhalb an
MsgBox "Daten erfolgreich zusammengeführt!", vbInformation End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.