
68023
01.09.2008, aktualisiert am 04.09.2008
Tabelle in andere Arbeitsmappe kopieren
Hallo,
ich benötige bei folgendem Problem Hilfestellung:
Mein Skript durchläuft eine Liste mit Dateinamen (datei), sucht sich daran ein spezielles Blatt (land) und soll diese nun in eine Sammel-Datei (hier) kopieren.
Beim Kopieren muss ich irgendwas durcheinander gebracht haben, denn nicht der Inhalt der geöffneten Datei sondern der Inhalt der Sammel-Datei wird kopiert:
Ich krieg die Peilung nicht ;)
Bestimmt ist der Fehler ganz offensichtlich. Bin für einen Wink dankbar!
Das fertige Skript ist denke ich sehr nützlich, werde daraus eine Anleitung schmieden!
Gruß
Nico
ich benötige bei folgendem Problem Hilfestellung:
Mein Skript durchläuft eine Liste mit Dateinamen (datei), sucht sich daran ein spezielles Blatt (land) und soll diese nun in eine Sammel-Datei (hier) kopieren.
Beim Kopieren muss ich irgendwas durcheinander gebracht haben, denn nicht der Inhalt der geöffneten Datei sondern der Inhalt der Sammel-Datei wird kopiert:
Workbooks(datei).Activate
Sheets(land).Activate
Range("A1:Z176").Copy
Workbooks(hier).Activate
Sheets(land).Activate
ActiveSheet.Paste
Workbooks(datei).Activate
ActiveWorkbook.Close
Ich krieg die Peilung nicht ;)
Bestimmt ist der Fehler ganz offensichtlich. Bin für einen Wink dankbar!
Das fertige Skript ist denke ich sehr nützlich, werde daraus eine Anleitung schmieden!
Gruß
Nico
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 95822
Url: https://administrator.de/forum/tabelle-in-andere-arbeitsmappe-kopieren-95822.html
Ausgedruckt am: 28.04.2025 um 05:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo prinzipal87!
Du kannst zwar den Code etwas kompakter gestalten, zB
aber bei mir funktioniert auch schon Deine Version - so gesehen könnte es eigentlich nur am Variablenínhalt von "datei" oder "land" liegen ...
Grüße
bastla
Du kannst zwar den Code etwas kompakter gestalten, zB
Workbooks(datei).Sheets(land).Range("A1:Z176").Copy
Workbooks(hier).Sheets(land).Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Workbooks(datei).Close
Grüße
bastla
Hallo prinzipal87!
Noch als Anmerkung zu der Zerlegung in den Zeilen 23 - 31:
Etwas eleganter wird es mit InStrRev()
oder mit Split()
Beide Beispiele berücksichtigen keinen ":", da die Zerlegung ohnehin vom Ende her erfolgt und eine Pfadangabe der Art "D:Datei.xls" (also ohne enthaltenen "\") zwar erlaubt und möglich, aber hier nicht zu erwarten ist.
Schließlich gäbe es noch bei Verwendung des "FileSystemObject" die Methoden ".GetBaseName" und ".GetExtensionName" (erstere liefert nur den Namen, ohne Pfad und Typ, letztere nur den Dateityp) oder einfach nur ".GetFileName".
Grüße
bastla
Noch als Anmerkung zu der Zerlegung in den Zeilen 23 - 31:
Etwas eleganter wird es mit InStrRev()
z = InStrRev(mname, "\")
If z > 0 Then mname = Mid(mname, z + 1)
temp = Split(mname, "\")
mname = temp(UBound(temp))
Schließlich gäbe es noch bei Verwendung des "FileSystemObject" die Methoden ".GetBaseName" und ".GetExtensionName" (erstere liefert nur den Namen, ohne Pfad und Typ, letztere nur den Dateityp) oder einfach nur ".GetFileName".
Grüße
bastla