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

Tabellenblatt in mehrere Dateien

Tabellenblatt in mehrere Dateien
04.02.2022 13:58:50
Thomas
Hallo,
ich möchte ein Tabellenblatt "Daten" aus der Datei "Quelle" per Markro in andere Dateien ("Ziel1", Ziel2",...) kopieren und das bereits dort befindliche Tabellenblatt "Daten" damit ersetzen (laufende Aktualisierungen und es muss immer das ganze Blatt getauscht werden). Hinzu kommt, dass die Zieldateien auf einenem anderen Pfad liegen und die Zieldateien auch noch jede in einem eigenen Unterordner organisiert sind ("N:Zielpfad\Zielordner", "N:Zielpfad\Zielordner2",...) . Es sollen also alle .xlsb Dateien in den Unterordnern so angesprochen und das Tabellenblatt getauscht werden. Bitte um Hilfe, Danke!

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt in mehrere Dateien
05.02.2022 14:09:45
Piet
Hallo
hier eine kleine aber sicher Leistungsfähige Beispieldatei, mit der du dein Problem lösen kannst. Bitte mal testen.
In Tabelle1 kannst du bis zu 5 getrennte Ordner mit unterschiedlichen Laufwerken auflisten. Das Makro kannst du selbst auf beliebig viele Ordner erweitern!
Jeder Ordner kann bis zu 20 Dateien auflisten, die nicht benutzten Zeilen werden ausgeblendet. Damit kannst du deine Zieldateien bequem auswählen.
Zum Öffnen der Zieldatei den Cursor auf die gewünschte Zelle setzen und in Zelle H1 und H2 den Quellordner und das zu tauschende Quell Blatt angeben.
Dann sollte der Austausch durch drücken des Button "Sheet tauschen" automatisch erfolgen.
https://www.herber.de/bbs/user/150901.xlsm
Würde mich freuen wenn alles einwandfrei klappt. Bin gespannt auf deine Rückmeldung.
mfg Piet
Anzeige
AW: Tabellenblatt in mehrere Dateien
06.02.2022 08:47:10
Thomas
Hallo Piet,
Danke für die wirklich tolle Datei und deine Mühe!!!
Klappt auch prinzipiell gut, aber:
Für meinen Zweck ist sie aber schon zu aufwendig, da alle auszutauschenden Datenblätter "Daten" in verschiedenen Unterordnern eines Hauptordner liegen und sich das nicht verändert.
Ich habe unten stehendes Makro, mit dem ich mit vorher aus diesen Dateien aus den Blättern "Daten" alles kopiere und dabei werden mit den Pfaden alle Dateien angesprochen. Da brauche ich nichts mehr anklicken oder eingeben
Kann man das nicht auch für das Tauschen der Datenblätter in dieser Art umbauen? Also dass das Kopiern des Blattes "Daten" aus der Quelldatei ohne Klicken automatisch durch die fixe Vorgabe in diese Dateien geschieht?

Sub Datensammelung_UV()
Dim Dateien(1 To 26) As String
Dim WB As Workbook
Dim i As Long
Dateien(1) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Barta Manfred\UV AXM Barta V3.0.xlsb"
Dateien(2) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Buchinger Ernst\UV AXM Buchinger V3.0.xlsb"
Dateien(3) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Drescher Hermann\UV AXM Drescher V3.0.xlsb"
Dateien(4) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Driessler Thomas\UV AXM Driessler V3.0.xlsb"
Dateien(5) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Floimayr Markus\UV AXM Floimayr V3.0.xlsb"
Dateien(6) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Frankford Christian\UV AXM Frankford V3.0.xlsb"
Dateien(7) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Fuith Karl\UV AXM Fuith V3.0.xlsb"
Dateien(8) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Gietl Robert\UV AXM Gietl V3.0.xlsb"
Dateien(9) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Giselbrecht Rainer\UV AXM Giselbrecht V3.0.xlsb"
Dateien(10) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Graf Andereas\UV AXM Graf V3.0.xlsb"
Dateien(11) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Jagesberger Ewald\UV AXM Jagesberger V3.0.xlsb"
Dateien(12) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Köck Gunter\UV AXM Köck V3.0.xlsb"
Dateien(13) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Kos Jochen\UV AXM Kos V3.0.xlsb"
Dateien(14) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Krippl Thorsten\UV AXM Krippl V3.0.xlsb"
Dateien(15) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Leyerer Sam\UV AXM Leyerer V3.0.xlsb"
Dateien(16) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Mayr Matthias\UV AXM Mayr V3.0.xlsb"
Dateien(17) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Melchior Rene\UV AXM Melchior V3.0.xlsb"
Dateien(18) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Mitterberger Richard\UV AXM Mitterberger V3.0.xlsb"
Dateien(19) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Schmidt Anton\UV AXM Schmidt V3.0.xlsb"
Dateien(20) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Schoberwalter Christian\UV AXM Schoberwalter V3.0.xlsb"
Dateien(21) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Schwarzkogler Gotti\UV AXM Schwarzkogler V3.0.xlsb"
Dateien(22) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Spari Damian\UV AXM Spari V3.0.xlsb"
Dateien(23) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Stadlmann Sabine\UV AXM Stadlmann V3.0.xlsb"
Dateien(24) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Strajhar Ursula\UV AXM Strajhar V3.0.xlsb"
Dateien(25) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Unterweger Angela\UV AXM Unterweger V3.0.xlsb"
Dateien(26) = "X:\VER\DAT\Listen\Offertedatenbank\AXM_FKS\Wurzenberger Sphia\UV AXM Wurzenberger V3.0.xlsb"
With ThisWorkbook.Sheets("UV Datenbasis")
For i = LBound(Dateien) To UBound(Dateien)
Set WB = Workbooks.Open(Dateien(i))
WB.Sheets("Daten").UsedRange.Offset(-(i = 1), 0).Copy
.Cells(.Rows.Count, 1).End(xlUp).Offset(-(i  1), 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
WB.Close False
Next
End With
End Sub
Wenn du mir nochmals helfen könntest, wäre ich dir sehr dankbar.
LG
Thomas
Anzeige
AW: Tabellenblatt in mehrere Dateien
06.02.2022 11:41:10
Piet
Hallo Thomas
interessante Lösung üüber ein Array, auf die mIdee bin ich nicht gekommen! Alle Achtung!
Ich glaube hier ist dein Denkfehler, denn diese Programmierung habe ich so noch nie gesehen. Was willst du damit erreichen?
WB.Sheets("Daten").UsedRange.Offset(-(i = 1), 0).Copy
.Cells(.Rows.Count, 1).End(xlUp).Offset(-(i 1), 0).PasteSpecial xlPasteValues
Wenn du den UsedRange Bereich ohne Überschriften kopieren willst und bei LastZelle einfügen willst dann bitte so. Damit sollte es klappen.
WB.Sheets("Daten").UsedRange.Offset(1, 0).Copy 'kopiert UsedRange ab Zeile 2!
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues 'fügt in die nächste freie Zelle ein!
Würde mich freuen wenn es so klappt und wir den Thread damit abschliessen können. Grüsse aus Ankara.
mfg Piet
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige