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

Inhalt aus einem anderen Tabellenblatt kopieren

Inhalt aus einem anderen Tabellenblatt kopieren
21.11.2016 14:40:01
kurt
Hallo,
ich will den Inhalt einer ganzen Tabelle aus einer geschlossenen Datei in meine aktuelle Datei _ kopieren. Ich habe es mir so überlegt:

Sub Copy()
Dim TB1, Pfad As String, Datei As String, Blatt As String
'-Vorgaben
Set TB1 = ThisWorkbook.Sheets("Tabelle1")
Pfad = "C:\...."
Datei = "Mappe2.xlsb"
Blatt = "Tabelle1" 'Quelle
'-Ende Vorgaben
Datei = "[" & Datei & "]"
With TB1
Blatt.UsedRange.Copy _
Destination:=TB1.Range(Blatt.UsedRange.Address)
End With
End Sub

Jedoch kommt immer die Fehlermeldung:
Ungültiger Bezeichner bezogen auf "Blatt"
( Blatt.UsedRange.Copy _
Destination:=TB1.Range(Blatt.UsedRange.Address))
Habt ihr eine Idee, wie ich das machen könnte?
Ich bedanke mich für eure Hilfe!

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Da ergibt leider nichts Sinn...
21.11.2016 15:40:36
Michael
Kurt,
... Deinem Code-Versuch.
Zunächst: aus einer geschlossenen Datei ist nicht möglich, Du wirst die Datei immer öffnen müssen, um daraus etwas zu kopieren. Außerdem:
TB1 ist nicht korrekt deklariert, das sollte eine Worksheet-Variable sein. Selbst dann ist das aber nur die halbe Miete, denn damit hättest Du ein Ziel-Blatt (in das eingefügt wird). Ein Quell-Blatt definierst Du erst gar nicht, zumal ich nicht weiß, was Du damit vorhast:
Datei = "[" & Datei & "]"
"Datei" und "Blatt" bleiben im gesamten Code lediglich Strings - also einfach Buchstabenketten, die es Excel schwer machen zu verstehen, dass Du gerne eine bestimmte Datei öffnen und aus einem dortigen bestimmten Tabellenblatt etwas kopieren willst.
Deine With-Konstruktion bezieht sich aktuell auf TB1, d.h. aus meiner Sicht auf Dein Ziel-Blatt, allerdings ist auch das konfus, denn in
Destination:=TB1.Range(Blatt.UsedRange.Address)
willst Du Dich innerhalb Deines Ziel-Blattes auf ein Quell-Blatt beziehen?!?!
Daher eher soetwas
Sub AusAndererMappeKopieren()
'Konstanten für Dateipfad, Dateiname und Blattname der
'Quell-Datei (aus der Daten gelesen werden)
Const PFAD As String = "C:\DeinPfad\"
Const DNAME As String = "Mappe2.xlsb"
Const BLATT As String = "Tabelle1"
'Bildschirm-Aktualisierung ausschalten
Application.ScreenUpdating = False
'Die Ziel-Datei bestimmen als DIESE Datei, d.h. die Datei
'die dieses Makro enthält
Dim WbZiel As Workbook: Set WbZiel = ThisWorkbook
'Das Ziel-Blatt bestimmen
Dim WsZiel As Worksheet: Set WsZiel = WbZiel.Worksheets("Tabelle1")
Dim WbQuell As Workbook
Dim WsQuell As Worksheet
'Die Quell-Mappe aufrufen/öffnen
Set WbQuell = Workbooks.Open(PFAD & DNAME)
With WbQuell
'In der Quell-Mappe das Quell-Blatt bestimmen
Set WsQuell = .Worksheets(BLATT)
'Den verwendeten Bereich des Quell-Blattes kopieren...
With WsQuell
'...und im Ziel-Blatt einfügen
.UsedRange.Copy WsZiel.Range("A1")
End With
'Quell-Mappe wieder schließen, Änderungen nicht speichern
.Close False 'Alternativ: True, Änderungen speichern
End With
End Sub
LG
Michael
Anzeige
AW: Da ergibt leider nichts Sinn...
21.11.2016 16:21:36
kurt
Vielen Dank! Der Code funktioniert einwandfrei. Ich habe nur noch eine Frage. Wenn ich im Pfad eine Variable auswählen will, sagt mir das System, dass ein konstanter Ausdruck erforderlich ist. Wie kann ich das anpassen.

Row=3
VariableA = Sheets("Tabelle2").Range("B" & Row)
y_DA = Format(Year(VariableA), "0000")
m_DA = Format(Month(VariableA), "00")
'Konstanten für Dateipfad, Dateiname und Blattname der
'Quell-Datei (aus der Daten gelesen werden)
'Const PFAD As String = "C:\..." & y_DA & "\" & m_DA & "\"
Const DNAME As String = "Mappe2.xls"

Anzeige
AW: Da ergibt leider nichts Sinn...
22.11.2016 09:03:21
kurt
Es hat sich schon erledigt, danke!

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige