Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellen ohne Kopfzeile kopieren und ergänzen

Forumthread: Tabellen ohne Kopfzeile kopieren und ergänzen

Tabellen ohne Kopfzeile kopieren und ergänzen
23.07.2019 16:50:36
Gertrud
Guten Tag,
ich möchte gerne ein Makro schreiben, das andere Tabellen in anderen Exceldateien markiert (ohne die Kopfzeile) und dann damit die Tabelle in meinem aktuellen Exceldokument ergänzt bzw. die Tabelle erweitert. Die Tabellen sind alle gleich aufgebaut und haben die selben Spaltennamen. Im grundegenommen will ich also nur meine Tabelle mit den Werten der anderen Tabelle erweitern.
Ich habe durch google auch schon Code gefunden, weiß jedoch nicht wie ich ihn weiter anpassen soll.

Sub TblImport()
Dim vntPathAndFileNames As Variant 'kein String !
Dim strPathAndFile As String
Dim lngI As Long
Dim wbkMappe As Workbook
Dim wks As Worksheet
Dim wbkZiel As Workbook
Dim zaehlerspalten1 As Integer
Dim zaehlerspalten2 As Integer
Dim rngCopy As Range
Dim finalLocation As Variant
Application.ScreenUpdating = False
Set wbkZiel = ThisWorkbook
vntPathAndFileNames = Application.GetOpenFilename( _
FileFilter:="Excel Files (*.xlsx), *.xlsx", _
Title:="Zu importierende Dokumente auswählen", _
MultiSelect:=True)
If VarType(vntPathAndFileNames) = vbBoolean Then
MsgBox "Abgebrochen!"
Else
For lngI = LBound(vntPathAndFileNames) To UBound(vntPathAndFileNames)
strPathAndFile = vntPathAndFileNames(lngI)
Set wbkMappe = Application.Workbooks.Open(strPathAndFile)
For Each wks In wbkMappe.Worksheets
----[Ich nehme an hier müsste ich ergänzen]-----
Next
wbkMappe.Close False
Next
End If
Set wbkZiel = Nothing
End Sub
Vielen lieben Dank
Gertrud
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen ohne Kopfzeile kopieren und ergänzen
24.07.2019 09:51:09
Torsten
Hallo Gertrud,
Frage: Stehen die Kopfzeilen der Tabellen immer in der 1.Zeile?
Gruss Torsten
AW: Tabellen ohne Kopfzeile kopieren und ergänzen
24.07.2019 10:01:30
Gertrud
Ja, die Kopfzeilen stehen immer in der ersten Zeile.
Gruß
Gertrud
AW: Tabellen ohne Kopfzeile kopieren und ergänzen
24.07.2019 12:58:16
Torsten
Hallo Gertrud,
der Code oben zur Dateiauswahl funktioniert ja schon. Ich habe dir mal den Code zum Kopieren ergaenzt. Habe auch Kommemntare eingefuegt, sodass du nachvollziehen kannst, was der Code macht.
Du musst eventuell noch Spalten-, Zeilennummern und Tabellennamen anpassen, falls noetig.
Wenn du dabei Hilfe brauchst, sag nochmal bescheid.

Sub TblImport()
Dim vntPathAndFileNames As Variant 'kein String !
Dim strPathAndFile As String
Dim lngI As Long, LZM As Long, LSM As Long, LZZ
Dim wbkMappe As Workbook
Dim wks As Worksheet
Dim wbkZiel As Workbook
Dim zaehlerspalten1 As Integer
Dim zaehlerspalten2 As Integer
Dim rngCopy As Range
Dim finalLocation As Variant
Application.ScreenUpdating = False
Set wbkZiel = ThisWorkbook
vntPathAndFileNames = Application.GetOpenFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx",  _
Title:="Zu importierende Dokumente auswählen", MultiSelect:=True)
If VarType(vntPathAndFileNames) = vbBoolean Then
MsgBox "Abgebrochen!"
Else
For lngI = LBound(vntPathAndFileNames) To UBound(vntPathAndFileNames)
strPathAndFile = vntPathAndFileNames(lngI)
Set wbkMappe = Application.Workbooks.Open(strPathAndFile)
For Each wks In wbkMappe.Worksheets
With wks
LZM = .Cells(Rows.Count, 1).End(xlUp).Row   'letzte Zeile wbkMappe
LSM = .Cells(2, Columns.Count).End(xlToLeft).Column  'letzte Spalte wbkMappe
.Range(.Cells(2, 1), .Cells(LZM, LSM)).Copy   'kopieren von A2 bis letzte Zeile,  _
letzte Spalte
LZZ = wbkZiel.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1   'letzte Zeile +  _
1 wbkZiel, hier das aktive Blatt
wbkZiel.Range(Cells(LZZ, 1)).PasteSpecial xlPasteValues  'Werte einfuegen ab Spalte  _
A, erste freie Zeile
End With
Application.CutCopyMode = False   'Zwischenspeicher leeren, Kopiermarkierung aufheben
Next
wbkMappe.Close False
Next
End If
Set wbkZiel = Nothing
End Sub
Gruss Torsten

Anzeige
AW: Tabellen ohne Kopfzeile kopieren und ergänzen
26.07.2019 10:15:10
Gertrud
Hallo Torsten,
erst einmal vielen Dank für die Ergänzung. Nachvollziehen kann ich nun die Schritte jedoch kriege ich nun folgende Fehlermeldung: Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht und markiert mir folgende Zeile mit dem Fehler

wbkZiel.Range(Cells(LZZ, 1)).PasteSpecial xlPasteValues  'Werte einfuegen ab Spalte  _
A, erste freie Zeile
Gruß Gertrud
Anzeige
AW: Tabellen ohne Kopfzeile kopieren und ergänzen
26.07.2019 13:52:31
Piet
Hallo Gertrud
ohne die Datei selbst testen zu können vermute ich hier den Fehler:
wbkZiel.Range(Cells(LZZ, 1)).PasteSpecial xlPasteValues - Probier es bitte mal so:
wbkZiel.Cells(LZZ, 1).PasteSpecial xlPasteValues
mfg Piet
;
Anzeige
Anzeige

Infobox / Tutorial

Tabellen ohne Kopfzeile kopieren und ergänzen


Schritt-für-Schritt-Anleitung

Um Tabellen ohne Kopfzeile in Excel zu kopieren und zu ergänzen, kannst du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne dein Excel-Dokument.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu:
    • Rechtsklick auf „VBAProject (dein Dokument)“ > Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:
Sub TblImport()
    Dim vntPathAndFileNames As Variant
    Dim strPathAndFile As String
    Dim lngI As Long, LZM As Long, LSM As Long, LZZ As Long
    Dim wbkMappe As Workbook
    Dim wks As Worksheet
    Dim wbkZiel As Workbook
    Application.ScreenUpdating = False
    Set wbkZiel = ThisWorkbook
    vntPathAndFileNames = Application.GetOpenFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx", MultiSelect:=True)
    If VarType(vntPathAndFileNames) = vbBoolean Then
        MsgBox "Abgebrochen!"
    Else
        For lngI = LBound(vntPathAndFileNames) To UBound(vntPathAndFileNames)
            strPathAndFile = vntPathAndFileNames(lngI)
            Set wbkMappe = Application.Workbooks.Open(strPathAndFile)
            For Each wks In wbkMappe.Worksheets
                With wks
                    LZM = .Cells(Rows.Count, 1).End(xlUp).Row
                    LSM = .Cells(2, Columns.Count).End(xlToLeft).Column
                    .Range(.Cells(2, 1), .Cells(LZM, LSM)).Copy
                    LZZ = wbkZiel.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
                    wbkZiel.Cells(LZZ, 1).PasteSpecial xlPasteValues
                End With
                Application.CutCopyMode = False
            Next
            wbkMappe.Close False
        Next
    End If
    Set wbkZiel = Nothing
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht.

    • Lösung: Ändere die Zeile wbkZiel.Range(Cells(LZZ, 1)).PasteSpecial xlPasteValues zu wbkZiel.Cells(LZZ, 1).PasteSpecial xlPasteValues.
  • Excel zeigt eine Fehlermeldung beim Auswählen von Dateien.

    • Lösung: Stelle sicher, dass du die richtige Dateiart auswählst (z.B. .xlsx), wenn du das Importfenster öffnest.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Google Sheets Kopfzeile-Funktion nutzen, um Tabellen ohne Kopfzeile zu kopieren und in Excel zu importieren:

  1. Lade die Excel-Datei in Google Sheets hoch.
  2. Kopiere die Daten ohne Kopfzeile.
  3. Füge sie in dein Excel-Dokument ein.

Diese Methode ist besonders nützlich, wenn du keine Programmierkenntnisse hast.


Praktische Beispiele

Beispiel für den Import von Daten:

Angenommen, du hast mehrere Excel-Dateien, die jeweils eine Tabelle ohne Spaltenüberschrift haben. Du kannst das oben beschriebene Makro verwenden, um diese Daten effizient in deine Haupttabelle zu importieren.

Wenn du eine PowerPoint Tabelle ohne Kopfzeile benötigst, kannst du den gleichen Ansatz nutzen und die kopierten Daten dann in PowerPoint einfügen.


Tipps für Profis

  • Verwende relative Zellreferenzen, um das Makro an verschiedene Tabellenstrukturen anzupassen.
  • Teste das Makro mit einer Kopie deiner Datei, um Datenverlust zu vermeiden.
  • Du kannst auch Word Kopfzeile kopieren, wenn du Daten aus Word in Excel einfügen möchtest. Beachte dabei, dass die Struktur beibehalten wird.

FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Dateiformate verwenden? Ja, du kannst das Makro anpassen, um andere Dateiformate wie .xls oder .csv zu unterstützen, indem du den FileFilter-Parameter änderst.

2. Funktioniert das Makro in Excel für Mac? Das Makro sollte auch in Excel für Mac funktionieren, jedoch können einige spezifische Anpassungen erforderlich sein, da sich die Benutzeroberfläche und einige Funktionen unterscheiden können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige