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

Daten aus einem bestimmten Tabellenblatt importieren

Forumthread: Daten aus einem bestimmten Tabellenblatt importieren

Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 12:06:15
Etaner
Hallo,

ich möchte die Daten aus dem Tabellenblatt "Spieler" einer anderen Exceldatei importieren.

Dieses Makro

Sub XLS_Importieren()
Dim Dateipfad As Variant

Dateipfad = Application.GetOpenFilename(Filefilter:="xls-Dateien, *.xls")
If Dateipfad = False Then Exit Sub

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=ActiveSheet.Range("A1"))
.TextFileCommaDelimiter = True
.FieldNames = True
.TextFilePlatform = 65001

.Refresh


End With
End Sub

kopiert das erste Tabellenblatt.

Ich möchte das zweite Tabellenblatt namens "Spieler" importieren
und danach die erste und zweite Spalte vertauschen.

Gruß

Renate

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 13:14:44
Yal
Hallo Renate,

es sollte ungefähr so aussehen:
Sub XLS_Importieren()

Dim Dateipfad As String
Dim WB As Workbook

Dateipfad = Application.GetOpenFilename(Filefilter:="xls-Dateien, *.xls")
If Dateipfad = False Then Exit Sub

Set WB = Workbooks.Open(Dateipfad)
WB.Worksheets("Spieler").Range("B:B").Copy ActiveSheet.Range("A1")
WB.Worksheets("Spieler").Range("A:A").Copy ActiveSheet.Range("B1")
WB.Close SaveChanges:=False
End Sub

VG
Yal
Anzeige
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 17:38:38
GerdL
Moin Renate,

teste mal.
Sub XLS_Importieren_2()


Dim Dateipfad As String
Dim wbQuelle As Workbook, Zielblatt As Worksheet

Set Zielblatt = ThisWorkbook.Worksheets(1) 'wohin

Dateipfad = Application.GetOpenFilename(Filefilter:="xls-Dateien, *.xls")
If Dateipfad > False Then
Set wbQuelle = Workbooks.Open(Dateipfad) 'woher
Call wbQuelle.Worksheets("Spieler").Range("B:B").Copy(Zielblatt.Range("A1"))
Call wbQuelle.Worksheets("Spieler").Range("A:A").Copy(Zielblatt.Range("B1"))
wbQuelle.Close SaveChanges:=False
End If
Set wbQuelle = Nothing: Set wbZielblatt = Nothing
End Sub

Gruß Gerd
Anzeige
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 19:58:25
Piet
Hallo

du hast zwei Möglichkeiten das zu beheben, welche du wählst ist wurscht! Schau dir diese Zeile an!
1) Set Zielblatt = ThisWorkbook.Worksheets(1) 'wohin ->
hier kannst du statt (1) den Index oder den Tabellennamen der Zieltabelle angeben!

2) wbQuelle.Worksheets("Spieler").Range("B:B").Copy(Zielblatt.Range("A1"))
wbQuelle.Worksheets("Spieler").Range("B:B").Copy Range("A1"))
So gehts auch (ist aber heikel)! - Es setzt voraus das die -Zielmappe und Zieltabelle- aktiv sind!
Ansonsten kopierst du dir die Daten ins gerade aktive Sheet, auch in der Quellmappe!

Sicher ist nur die Variante1, mit genauer Sheet Angabe! Dann hast du Null Probleme.

mfg Piet
Anzeige
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 20:05:05
Etaner
Hallo Piet,

es soll immer das aktive Sheet sein, d.h. ich kann dort keine feste Zahl eintragen

Gruß

Renate
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 18:23:32
Etaner
Jetzt werden die Daten kopiert, aber auf das erste Tabellenblatt der Zieldatei und nicht auf das aktuelle Tabellenblatt. Das habe ich vielleicht nicht genau genug beschrieben.

Gruß

Renate
Anzeige
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 22:03:34
Piet
Hallo Renate

Excel ist kein Mensch, kann nicht denken, aber "intelligent" handeln, wenn man es ihm beibringt!
Die Lösung findest du im -Code von Gerd-, man muss ihn nur sorgfältig anschauen!!

Dim Dateipfad As String, Sht As String '** neu
Dim wbQuelle As Workbook, Zielblatt As Worksheet

Sht = ActiveSheet.Name 'VOR Datei Öffnen laden!!
Set Zielblatt = ThisWorkbook.Worksheets(Sht) 'wohin

Noch fragen wie leicht man Excel "intelligent" machen kann. Intelligent ist aber der Programmierer!

mfg Piet
Anzeige
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 23:55:49
Etaner
Funktioniert!

Leider hatte ich keine Ahnung, dass man mit ActiveSheet.Name den Namen des Tabellenblatts erhält.

Danke für Eure Hilfe

Renate
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 19:57:54
Yal
Ja, Renate,

Du bekommst es ganz gut hin, uns zu beschreiben, was passiert und dass es nicht die Erwartung entspricht, aber nicht genug, was genau passieren soll.

Ich habe einen Fehler in meinem ersten Vorschlag: man muss zuerst sich merken, welche das aktuelle Blatt ist, weil durch das Öffnen der Quelldatei ActiveSheet nicht mehr das Ziel ist.

Sub XLS_Importieren()

Dim wS As Worksheet
Dim Dateipfad As String
Dim wB As Workbook

Set wS = ActiveSheet 'hiermit wird vermerkt, welche das aktuelle Blatt ist
Dateipfad = Application.GetOpenFilename(Filefilter:="xls-Dateien, *.xls")
If Dateipfad = False Then Exit Sub

Set wB = Workbooks.Open(Dateipfad)
wB.Worksheets("Spieler").Range("B:B").Copy wS.Range("A1")
wB.Worksheets("Spieler").Range("A:A").Copy wS.Range("B1")
wB.Close SaveChanges:=False
End Sub


VG
Yal
Anzeige
AW: Daten aus einem bestimmten Tabellenblatt importieren
16.01.2025 17:14:42
Etaner
Leider funktioniert es nicht ganz.

Die Spalten aus den Tabellenblatt "Spieler" werden in der zu importierenden Tabelle auf dem ersten Tabellenblatt eingetragen.

In der Zieltabelle steht nichts.
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18