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

Arbeitsblätter zusammenführen

Arbeitsblätter zusammenführen
05.11.2003 09:10:17
oliver
hi exceller...
ich habe eine excel-arbeitsmappe mit ca 1300 arbeitsblätter drin und sollte diese informationen alle in ein einziges arbeitsblatt zusammenführen. copy - paste ist hier eine lebensaufgabe und ich suche nach einer schnelleren lösung. ich muss am ende einfach ein einziges excel-arbeitsblatt oder anders gesagt eine einzige tabelle haben worin alle daten meiner 1300 arbeitsblätter enthalten sind.
wer hat mir hierfür einen tipp? ich bin mit meinem latein am ende :-/

ganz herzlichen dank an alle die mir einen hinweis geben können...
liebe grüsse vom oliver

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

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsblätter zusammenführen
05.11.2003 10:07:17
Galenzo
Hallo,
der folgende Code erzeugt in deiner Mappe zunächst eine neue Seite mit Namen "Zusammenführung". Anschließend werden aus allen Blättern die Inhalte in dieses neue Blatt reinkopiert.


Private Sub Zusammenführen()

Dim wksT As Worksheet
Dim wksS As Worksheet
Dim As Integer
Dim RowsT As Integer

    Application.ScreenUpdating = False

    Set wksT = ActiveWorkbook.Sheets.Add(, Worksheets(Worksheets.Count), , xlWorksheet)
    wksT.Name = "Zusammenführung"
    
    For i = 1 To Worksheets.Count - 1
        Set wksS = Worksheets(i)
        RowsT = wksT.Cells(Rows.Count, 1).End(xlUp).Row + 1
        wksS.UsedRange.Copy Destination:=wksT.Cells(RowsT, 1)
    Next i

End Sub



Viel Erfolg und Spaß beim Nachbasteln!
Anzeige
AW: Arbeitsblätter zusammenführen
05.11.2003 14:19:04
oliver
besten dank an mr galenzo...

leider hab ich das aber noch nicht hingekriegt. ich hab leider keine erfahrung mit makros und vba. wenn ich den code hinterlege und das file neu aufrufe werde ich zwar gefragt ob ich das makro aktivieren will - passieren tut jedoch nichts.
muss ich das script noch anpassen oder sonst was damit tun ausser es als makro zu speichern?

merci für die hilfe.
liebe grüsse vom oliver
AW: Arbeitsblätter zusammenführen
06.11.2003 09:00:20
Galenzo
Hallo,
die Frage, ob Makros aktiviert werden soll resultiert aus der Sicherheitseinstellung für Makros. Mit dieser kannst du festlegen, ob Makros generell ausgeführt werden sollen oder ob vorher gefragt werden soll, oder ob die Makros komplett gesperrt werden sollen. Stichwort: Schutz vor Makroviren.
Dies kannst du unter "Extras/Makro/Sicherheit" einstellen.
Du solltest diese Frage also bestätigen, damit dein Makro ausgeführt wird.

Sorry, aber ich habe leider nicht auf "keine VBA-Kenntnisse" geachtet.
Ganz kurz die Vorgehensweise:
Mit ALT+F11 kommst du in den VBA-Teil deiner Tabellen. Dort erzeugst du mit "Einfügen/Modul" ein neues Modul. Das heißt dann wohl standardmäßig "Modul1".
Und dahinein schreibst/kopierst du diese Prozedur.
ACHTUNG!
Die erste Zeile heiß NICHT Private Sub Zusammenführen()
sondern nur Sub Zusammenführen() (sonst kann man die nicht aus Excel aus aufrufen)
Das Makro hast du nun also in einem Standardmodul im VBA eingegeben. Du kannst das VBA-Fenster nun wieder schliessen.

Jetzt solltest du noch einen Befehls-Button, oder einen Icon in der Symbolleiste oder ein Tastaturkürzel festlegen, über den das Makro dann aufgerufen wird. Das sollte es auch schon sein, um damit arbeiten zu können.
Unter "Extras/Makro/Makros/Optionen" kannst du z.B. ein Tastaturkürzel eingeben mit welchem du anschließend das Makro aufrufen kannst.

Na dann - viel Erfolg!
Anzeige
AW: Arbeitsblätter zusammenführen
06.11.2003 09:55:52
oliver_b
hi mr galenzo...

besten dank für deine mühe. ich weiss das sehr zu schätzen :-)
allerdings hab ich noch nicht herausgefunden wie genau das script aussehen muss. wenn ich am anfang des scriptes ein "Sub Zusammenführen" habe und erst dann mit dem "

Private Sub blablabla" starte motzt er und verlangt nach einem "End Sub
". wie genau muss ich das script schreiben? kann ich sub's verschachteln?
jetzt sieht mein script so aus:

Sub Zusammenfuehren()


Private Sub Zusammenführen()
Dim wksT As Worksheet
Dim wksS As Worksheet
Dim i As Integer
Dim RowsT As Integer
Application.ScreenUpdating = False
Set wksT = ActiveWorkbook.Sheets.Add(, Worksheets(Worksheets.Count), , xlWorksheet)
wksT.Name = "Zusammenführung"
For i = 1 To Worksheets.Count - 1
Set wksS = Worksheets(i)
RowsT = wksT.Cells(Rows.Count, 1).End(xlUp).Row + 1
wksS.UsedRange.Copy Destination:=wksT.Cells(RowsT, 1)
Next i
End Sub


End Sub


so geht das aber nicht.
merci für deinen tipp.

liebe grüsse vom oliver :-)
Anzeige
AW: Arbeitsblätter zusammenführen
06.11.2003 10:07:54
Galenzo
Neee - die ersten Zeilen gehen:


Sub Zusammenführen()
Dim wksT As Worksheet
Dim wksS As Worksheet
Dim i As Integer
Dim RowsT As Integer
Also nur das Private löschen! und natürlich auch nur EINMAL "End Sub
".
Eine Prozedur fängt mit Sub an und hört mit "End Sub" auf. Dazwischen stehen dann die einzelnen Anweisungen. (Mit dem Private vor dem Sub kann man nur den Zugriff auf das Makro von außerhalb verbieten - das willst du ja aber nicht, da du das Makro ja von Excel aus aufrufen willst. Also laß einfach nur das Private weg. Dann wird das Makro auch in Excel unter "Extras/Makro/Makros" in der LIste erscheinen.

OK?
Anzeige
AW: Arbeitsblätter zusammenführen
06.11.2003 11:35:27
oliver_b
nasuper! *freuhüpf

jetzt geht schonmal was...
nur gibt er jetzt einen fehler aus:
"Laufzeitfehler 1004" "Kann Teil einer verbundenen Zelle nicht ändern."
der debugger markiert dann folgende programmzeile gel:
"wksS.UsedRange.Copy Destination:=wksT.Cells(RowsT, 1)"

was ist hier falsch?

nochmal lieben dank von oliver :-)
AW: Arbeitsblätter zusammenführen
06.11.2003 14:10:45
Galenzo
Hallo,
ich hab's eben selber noch ein paarmal getestet, hat eigentlich immer funktioniert.
Allerdings kam EINMAL der beschriebene Fehler. Hängt wohl damit zusammen, wenn man mehrere Zellen miteinander untereinander verbunden hat. Aber auch nicht immer. Ich kann's nicht weiter nachvollziehen, wann das genau passiert.
Der Fehler ist mir nicht erklärlich.
Seit ich die letzte Zeile auf
wksS.UsedRange.Copy Destination:=wksT.Cells(RowsT + 1, 1)
geändert habe, trat er nicht wieder auf - vielleicht bringt das ja was.

Ich hoffe es....
Anzeige
AW: Arbeitsblätter zusammenführen
06.11.2003 20:46:31
oliver_b
yuhuuuuu...

ganz ganz ganz herzlichen dank an mr. galenzo!
es hat perfekt geklappt. das hat mir extrem weitergeholfen. wow - cool *freu
wenn ich dir mal n stein in den garten werfen kann (ev in sachen netzwerke, hardware oderso) einfach sagen!

---> www.swiss-media-group.com

herzlichen dank auch an herber.de :-)

liebe grüsse vom oliver_b
AW: Tabellenregisterblätter durchsuchen?!?
05.11.2003 10:09:40
Guido P.
Hi,

von der Logik her müsstest du doch nur jedes einzelne Tabellenblatt in einer Schleife bis ende durchgehen und das komplette (beschriebene Blatt) selektieren --> kopieren und nächstes AbBlatt selektieren usw....
Weiss nur nicht wie ich eine Schleife für sowas basteln sollte..

Vielleicht wer anderes?!?

Grüße
Guido P.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige