Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
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

X Tabellenblätter in 1 Master mit VBA

X Tabellenblätter in 1 Master mit VBA
13.07.2022 11:54:54
Christoph
Hallo zusammen,
unter folgendem Link befindet sich eine Datei, wo 3 Tabellenblätter in ein Tabellenblatt Master zusammengefasst werden möchten:
https://www.herber.de/bbs/user/154122.xlsx
- die erste Zeile des Masters soll bestehen bleiben
- die erste Zeile sowie alle Spalten der weiteren Tabellenblätter sind gleich aufgebaut und haben beginnend mit Zeile 2 unterschiedliche Werte (Text)
Hast du einen Vorschlag, wie man mit VBA diese Zusammenführung bewerkstelligen kann?
Ja...? Dann poste bitte deinen Vorschlag hier rein..!
Vielen Dank für deine Unterstützung.
Schöne Grüße
Christoph

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: X Tabellenblätter in 1 Master mit VBA
13.07.2022 12:55:50
UweD
Hallo
so?
in ein normales Modul

Sub Zusammeführen()
Dim TB1 As Worksheet, TBx As Worksheet
Dim LR1 As Long, LRx As Long
Dim Z1 As Integer
Set TB1 = Sheets("Master")
Z1 = 2 'erste Datenzeile
'Reset
TB1.UsedRange.Offset(1).Delete
For Each TBx In ThisWorkbook.Worksheets
If TBx.Name  TB1.Name Then ' alle außer Master
LR1 = TB1.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
LRx = TBx.Cells.SpecialCells(xlCellTypeLastCell).Row
TBx.Rows(Z1).Resize(LRx - Z1 + 1).Copy TB1.Rows(LR1 + 1)
End If
Next
End Sub
LG UweD
Anzeige
AW: X Tabellenblätter in 1 Master mit VBA
13.07.2022 14:35:05
Christoph
Hallo UweD,
danke für deine schnelle Hilfe.
Leider klappt das Zusammenfügen folgender Elemente zum "Master"-Tabellenblatt noch nicht ganz:
  • die ganze Zeile 1 aus "Table1"
    die Zeilen 1 bis 10 aus "Table2"
    das ganze Tabellenblatt "Table3"

  • Hast du eine Idee, wie man diese beschriebenen Elemente in den "Master" bekommt?
    Ich freue mich auf deine Antwort.
    Viele Grüße
    Christoph
    AW: X Tabellenblätter in 1 Master mit VBA
    13.07.2022 14:57:10
    UweD
    Hallo nochmal
  • Zeile 1 wird nun mitkopiert

  • Es kam zum Fehler, da beim Reset die "jetzt leeren "Zeilen trotzdem mit gezählt wurden und LR1 falsch wurde.
    Das lässt sich nur durch speichern wieder aktualisieren.

  • Alternativ:
    Gibt es eine Spalte, die immer gefüllt ist, die zur Ermittlung der letzten Zeile verwendet werden kann?
    Aktuell gibt es Leerzeilen unterhalb deiner letzten gefüllten Zeilen, die mitkopiert wird
    
    Sub Zusammeführen()
    Dim TB1 As Worksheet, TBx As Worksheet
    Dim LR1 As Long, LRx As Long
    Set TB1 = Sheets("Master")
    'Reset
    TB1.UsedRange.Offset(1).Delete
    LR1 = 1
    For Each TBx In ThisWorkbook.Worksheets
    If TBx.Name  TB1.Name Then ' alle außer Master
    LRx = TBx.Cells.SpecialCells(xlCellTypeLastCell).Row
    TBx.Rows(1).Resize(LRx).Copy TB1.Rows(LR1 + 1)
    LR1 = LR1 + LRx
    End If
    Next
    End Sub
    

    Anzeige
    AW: X Tabellenblätter in 1 Master mit VBA
    13.07.2022 15:36:19
    Christoph
    Hallo UweD,
    vielen Dank für deine Hilfe! Es funktioniert!!! :-)
    Zu deiner Anmerkung bzgl. erneutes Speichern:
    Danke für die hilfreiche Information. So werde ich es machen.
    Zu deiner Frage:
    "Gibt es eine Spalte, die immer gefüllt ist, die zur Ermittlung der letzten Zeile verwendet werden kann?"
    Antwort:
    Die letzten Zellen der Spalten "N" und "P" sind immer befüllt und markieren das Ende eines Arbeitsblatts.
    Eine optimierte Lösung ohne ein "erneutes Speichern" ist eine hervorragende Idee.
    Hinweis: Die aktuelle Lösung ist jedoch vollkommen zufriedenstellend.
    Viele Grüße
    Christoph
    P.S.: Beeindruckend, wie schnell du die Lösung gebastelt hast! :O
    Anzeige
    AW: X Tabellenblätter in 1 Master mit VBA
    13.07.2022 15:49:37
    UweD
    Dann so. Ohne zwischenspeichern
    
    Sub Zusammenführen()
    Dim TB1 As Worksheet, TBx As Worksheet
    Dim LR1 As Long, LRx As Long, SP As Integer
    Set TB1 = Sheets("Master")
    SP = 14 'Spalte N, ist immer gefüllt
    'Reset
    TB1.UsedRange.Offset(1).Delete
    LR1 = 1
    For Each TBx In ThisWorkbook.Worksheets
    If TBx.Name  TB1.Name Then ' alle außer Master
    LRx = TBx.Cells(TBx.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    TBx.Rows(1).Resize(LRx).Copy TB1.Rows(LR1 + 1)
    LR1 = LR1 + LRx
    End If
    Next
    End Sub
    
    LG UweD
    AW: X Tabellenblätter in 1 Master mit VBA
    13.07.2022 17:20:42
    Christoph
    Tausend Dank!!!
    Prima. Danke für die Rückmeldung. owT
    14.07.2022 08:11:30
    UweD

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige