Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Spalten aus anderer Tabellenblatt importieren

VBA Spalten aus anderer Tabellenblatt importieren
08.02.2006 12:19:45
uwe
Hallo,
ich möchte aus einem anderen Tabellenblatt einen bestimmten Bereich (z.B. E11 bis U404) in mein Tabellenblatt importieren.
Hierzu soll der Dateiname gesucht werden ("Datei Öffnen") und der entsprechende Bereich rüberkopiert werden.
Folgenden Anfang habe ich unternommen:
Dim sFile As String, tmp As String
Const strRange As String = "B11:U404" 'Datenbereich der Quelldatei
&ltpre&gt
Sub Import
sFile = Application.GetOpenFilename("Excel Dateien (*.xls), *.xls")
strRange.Copy Tabelle1.Range("B11") aus Quelldatei in Zieldatei
End Sub&lt/pre&gt
und dann hörts schon mit meinen Kenntnissen auf, so dass ich nicht weiterkomme.
Ihr könnt mir bestimmt helfen.
Gruß
Uwe
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Spalten aus anderer Tabellenblatt importieren
08.02.2006 23:22:23
HansHei
Hallo Uwe,
versuchs mal mit diesem Makro in Deiner Zieldatei:


Sub Daten_aktualisieren()
Application.DisplayAlerts = False
    Workbooks.Open Filename:="D:\Dein_Pfade\Quelldatei.xls"
        Sheets("Quellabelle").Select
        Range("B11:U404").Copy
    ActiveWindow.Close
    Range("B11").Select
    ActiveSheet.Paste
Application.DisplayAlerts = True
End Sub


Leider noch mit ein wenig "select":-)
Gruß
Hans
Anzeige
AW: VBA Spalten aus anderer Tabellenblatt importieren
09.02.2006 10:55:01
Uwe
Hallo Hans,
vielen Dank. Wenn ich dein Makro richtig verstehe, muss ich den Namen der Quelldatei kennen und benennen.
Bei mir kann jedoch der Name der Quelldatei variieren, so dass ich die entsprechende Datei im Explorer erst suchen muss. Der Pfad ist somit eine variable.
Gruß
Uwe
Anzeige
AW: VBA Spalten aus anderer Tabellenblatt importieren
09.02.2006 21:41:18
HansHei
Moin Uwe,
probiers mal so:


Sub Daten_aktualisieren()
Application.DisplayAlerts = False
Application.Dialogs(xlDialogOpen).Show
    'Workbooks.Open Filename:="D:\Dein_Pfade\Quelldatei.xls"
        'Sheets("Quellabelle").Select
        Range("B11:U404").Copy
    ActiveWindow.Close
    Range("B11").Select
    ActiveSheet.Paste
Application.DisplayAlerts = True
End Sub


Gruß
Hans
Anzeige
AW: VBA Spalten aus anderer Tabellenblatt importieren
09.02.2006 21:48:18
HansHei
Mon nochmal Uwe,
wenns eine andere Tabelle als Tabelle1 sein soll, dann so:


Sub Daten_aktualisieren()
Application.DisplayAlerts = False
Application.Dialogs(xlDialogOpen).Show
    'Workbooks.Open Filename:="D:\Dein_Pfade\Quelldatei.xls"
        Sheets("Tabelle2").Select
        Range("B11:U404").Copy
    ActiveWindow.Close
    Range("B11").Select
    ActiveSheet.Paste
Application.DisplayAlerts = True
End Sub


Gruß
Hans
Anzeige
AW: weil ich heut Langeweile habe...
09.02.2006 22:27:42
HansHei
noch ein Zusatz:
falls die angesteuerte Datei keine "Tabelle2" oder eine von Dir bestimmten Namen hat hilft "Error" und schließt sie wieder. Habe alles mal ein bischen auskommentiert, weil ich nicht weiß wie weit Du Dich auskennst.


Sub Daten_aktualisieren()
Application.DisplayAlerts = False 'Bildschirmaktivierung aus
    Application.Dialogs(xlDialogOpen).Show 'aktivieren des Dialoga
    'Workbooks.Open Filename:="D:\Dein_Pfade\Quelldatei.xls" 'bestimmte Datei auswählen
        On Error GoTo Ende 'wenn die Datei keine "Tabelle2" hat gehe zu Ende:
            Sheets("Tabelle2").Select 'Tabelle2 auswählen
                Range("B11:U404").Copy 'Bereich kopieren
            ActiveWindow.Close 'Datei schließen
        Range("B11").Select 'Zelle B11 aktivieren
    ActiveSheet.Paste 'in aktivierte Tabelle einfügen
Ende: ' weitermachen ab hier wenn "Error"
    ActiveWindow.Close 'Schließen der ausgewählten datei
Application.DisplayAlerts = True 'Bildschirmaktivierung an
End Sub


Gruß aus meiner Wahlheimat Ostfriesland (Ist einen Urlaub wert)
Hans
Anzeige
AW: weil ich heut Langeweile habe...
09.02.2006 22:56:03
Uwe
Hallo Hans,
Klasse, hat funktioniert. Den Rest schaffe ich hoffentlich alleine.
Vielen Dank auch nochmal für auskommentieren, da ich mich in der Tat noch nicht so gut auskenne.
Gruß
Uwe

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Spalten aus anderem Tabellenblatt importieren


Schritt-für-Schritt-Anleitung

Um Daten aus einem anderen Tabellenblatt in deine Excel-Datei zu importieren, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zu „Entwicklertools“. Wenn dieser Tab nicht sichtbar ist, aktiviere ihn über die Excel-Optionen.

  2. Klicke auf „Visual Basic“, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeinWorkbook)“ > „Einfügen“ > „Modul“.

  4. Kopiere und füge den folgenden Code ein:

    Sub Daten_aktualisieren()
       Application.DisplayAlerts = False
       Application.Dialogs(xlDialogOpen).Show
       On Error GoTo Ende
       Sheets("Tabelle2").Select
       Range("B11:U404").Copy
       ActiveWindow.Close
       Range("B11").Select
       ActiveSheet.Paste
    Ende:
       ActiveWindow.Close
       Application.DisplayAlerts = True
    End Sub
  5. Passe den Code an: Ändere „Tabelle2“ in den Namen des gewünschten Tabellenblatts, falls nötig.

  6. Führe das Makro aus: Klicke auf „Run“ oder drücke F5, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Fehler: „Subscript out of range“: Dies passiert, wenn das angegebene Tabellenblatt nicht existiert. Stelle sicher, dass der Tabellenblattname korrekt ist.
  • Fehler: „File not found“: Vergewissere dich, dass die Quelldatei existiert und der Pfad korrekt ist. Benutze die Dialogbox, um die Datei auszuwählen.
  • Das Makro funktioniert nicht: Überprüfe, ob Makros in deinen Excel-Einstellungen aktiviert sind.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch folgende Methoden ausprobieren:

  • Copy-Paste-Methode: Öffne die Quelldatei und kopiere die gewünschten Zellen manuell. Wechsle zu deinem Zielarbeitsblatt und füge die Daten dort ein.
  • Datenimport über Excel-Funktionen: Nutze die Funktion „Daten abrufen“, um Daten aus einer anderen Excel-Datei zu importieren. Dies ist besonders nützlich, wenn du regelmäßig Daten aktualisieren möchtest.

Praktische Beispiele

  1. Einfügen einer gesamten Spalte: Verwende den Code, um eine ganze Spalte aus einer anderen Datei zu importieren:

    Range("E:E").Copy Destination:=Sheets("ZielTabelle").Range("A:A")
  2. Kopieren bestimmter Spalten: Wenn du nur bestimmte Spalten (z.B. B und D) übernehmen möchtest:

    Sheets("QuellTabelle").Range("B:B").Copy Destination:=Sheets("ZielTabelle").Range("A:A")
    Sheets("QuellTabelle").Range("D:D").Copy Destination:=Sheets("ZielTabelle").Range("B:B")

Tipps für Profis

  • Verwende Application.ScreenUpdating = False am Anfang des Makros, um die Bildschirmaktualisierung auszuschalten. Das beschleunigt den Import.

    Application.ScreenUpdating = False
  • Fehlerbehandlung verbessern: Erweitere deine Fehlerbehandlung, um spezifische Fehler abzufangen und hilfreiche Meldungen auszugeben.

    On Error GoTo Fehlerbehandlung

FAQ: Häufige Fragen

1. Wie kann ich eine Spalte aus einer anderen Excel-Datei importieren?
Du kannst die Funktion Workbooks.Open verwenden, um die Datei zu öffnen, und dann mit Range.Copy die gewünschten Zellen übernehmen.

2. Kann ich mehrere Spalten gleichzeitig importieren?
Ja, du kannst mehrere Range.Copy-Befehle hintereinander ausführen, um verschiedene Spalten in deine Zieltabelle zu kopieren.

3. Wie kann ich das Makro so anpassen, dass ich den Dateinamen nicht kennen muss?
Verwende Application.GetOpenFilename, um eine Dialogbox zu öffnen, mit der Benutzer die Datei auswählen können, ohne den Dateinamen im Code angeben zu müssen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige