Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
608to612
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
608to612
608to612
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten mehrerer Blätter in ein Gesamtblatt kopieren

Daten mehrerer Blätter in ein Gesamtblatt kopieren
09.05.2005 09:41:03
Matthias
Hallo,
vor kurzem hatte ich folgende Anfrage hier ins Forum gestellt:
________________________________________________________________________________________________________________________________________________________________
ich habe mehrere Dateien mit je einem Tabellenblatt. Alle sind genau gleich aufgebaut. Eine davon ist die Übersichtstabelle.
Jetzt sollen die Daten (nur die gefüllten Zeilen) jedes einzelnen Blattes der Reihe nach abgefragt und in die Übersichtstabelle kopiert werden.
Bedingungen/Anmerkungen:
- der Kopf (Zeile 1+2) ist überall gleich und bleibt "unberührt"
- die Anzahl der zu kopierenden Zeilen aus den Einzelblättern ist unterschiedlich
- zwischen jedem "Block" (=Daten eines Einzelblattes) sollte eine Leerzeile eingefügt werden
- Die Tabellen haben in den Spalten A+B nur Text stehen, die Spalten C bis BN sind 'leer', aber mit unterschiedlichen Farben (Füllfarbe) markiert. Alles, Text und Füllfarben müssen übernommen werden."
________________________________________________________________________________________________________________________________________________________________
Daraufhin habe ich (von Dani) auch eine perfekte Lösung erhalten:
================================================================================================================================================================
Hallo Matthias,
die folgende Prozedur könnte als Ansatz dienen:


Sub Dataextract()
Dim Listenlänge, i, z As Long
Dim Pfad, File As String
Pfad = "C:\Suchpfad eingeben...\"
File = Dir(Pfad)
z = 3
Do
If Not File = "Übersicht.xls" Then
Workbooks.Open Pfad & File
Listenlänge = Workbooks(File).Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row 'Spalte A länge ermitteln
Workbooks(1).Worksheets("Tabelle1").Activate
Workbooks(File).Worksheets("Tabelle1").Range("A3:BN" & Listenlänge).Copy Destination:=ThisWorkbook.Worksheets("Tabelle1").Range("a" & z)
z = z + Listenlänge - 1
Workbooks(File).Close SaveChanges:=False
End If
File = Dir()
Loop Until File = ""
End 

Sub
Du musst dazu die zu extraktierenden Files in einen gemeinsamen Ordner verschieben und dieses Makro starten. Ich hoffe das hilft dir.
Gruss Dani
Nun muss ich aber mein "Projekt" wie folgt erweitern:
- es sollen in den Einzelblättern jeweils nur soviel Zeilen kopiert werden, bis eine Leerzeile kommt. Die Anzahl Zeilen ist aber nach wie vor variabel.
Alle beschriebenen Zeilen unterhalb der Leerzeile sollen dann nicht mit kopiert werden.
Wie kann ich dies im oben gezeigten Makro ergänzen?
Desweiteren gibt es noch folgende "Probleme":
- Wenn beim Ausführen des Makros eine der Einzelblätter-Dateien geändert wurde und noch nicht abgespeichert ist
oder ein anderer User eine dieser Dateien offen hat, gibt es eine Fehlermeldung und das Makro muss abgebrochen werden.
Kann man dies abfangen und wenn ja, wie?
Besten Dank für Eure Hilfe!
Gruss
Matthias

		

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

Betreff
Datum
Anwender
Anzeige
AW: Daten mehrerer Blätter in ein Gesamtblatt kopieren
10.05.2005 14:36:25
Dani
Hallo Matthias,
ändere einmal die Zeile wo die Listenlänge der Datei ermittelt wird folgendermassen:

Listenlänge = [A:A].SpecialCells(xlBlanks).Row
Damit wird von oben nach unten die erste freie Zelle in der Spalte A gesucht.
Excel 2003 erlaubt das freigeben einer Arbeitsmappe. Hast du unter dem Menu Extras die Mappe freigegeben? Wenn du sie freigibst kannst du allerdings nichts mehr am Projekt ändern!
Ich hoffe das hilft dir ein wenig weiter
Gruss
Dani
AW: Daten mehrerer Blätter in ein Gesamtblatt kopieren
11.05.2005 11:53:12
Matthias
Danke Dani, für Deine erneute Hilfe,
das mit der Listenlänge funktioniert jetzt, die Zeilen werden jetzt nur noch bis zur ersten Leerzeile kopiert. Genauso, wie es sein sollte! Grosses Merci!
Auch mit der Freigabe habe ich probiert, nur die Gesamtliste darf nicht freigegeben werden, sonst gibt es ein Chaos beim kopieren, einige Spalten werden dann sogar ganz gelöscht.
Aber auch mit der Freigabe bleibt das Problem, dass das Makro stehen bleibt (bei: Workbooks.Open Pfad & File). Sobald eine Datei (Einzelblätter) offen und noch nicht abgespeichert ist, erscheint das Windows-Hinweis-Fenster (datei.xls ist bereits geöffnet. Wenn Sie erneut öffnen, verlieren Sie damit alle Änderungen, die Sie eingegeben haben. Soll datei.xls erneut geöffnet werden? Ja/Nein). Wenn 'Nein' gewählt wird, bleibt das Makro an der Stelle wie weiter oben beschrieben stehen.
Ist eine Datei offen aber abgespeichert oder noch nicht verändert, gibt es keine Probleme und alles läuft wunderbar ab.
Gibt es diesbezüglich sonst noch Lösungen?
Gruss
Matthias
Anzeige
AW: Daten mehrerer Blätter in ein Gesamtblatt kopieren
11.05.2005 13:47:19
Dani
Hallo Matthias,
bei deinem Problem mit dem Netzwerkzugriff kann ich dir leider nicht weiterhelfen. Aber es ist schon sehr erstaundlich dass beim kopieren sogar Spalten gelöscht werden. Ich lasse diese Frage deshalb offen. Vielleicht ist ja ein Netzwerkspezialist zugegen ?!
Gruss Dani

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige