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

Daten aller Blätter in einem Blatt zusammenführen

Daten aller Blätter in einem Blatt zusammenführen
joerg
Hallo,
Ich bräuchte eine Lösung, um die Daten aller Blätter in einem Blatt zusammenzuführen. Ich habe ca. 20 Blätter, jedes mit denselben 30 Spalten und max 2500 Zeilen, sollte also vom Platz her kein Problem geben.
Die Anzahl der Blätter und auch deren Namen sind allerdings variabel.
Die einzelnen Blätter haben jeweils zwei Zeilen Überschrift, diese sollen natürlich nicht mitkopiert werden bzw. es müsste nur einmal vom ersten Blatt Zeile 2 kopiert werden, weil in der Zusammenfassung daraus dann ein pivot-report gemacht werden soll.
Ich würde das ganze gern jedesmal updaten, wenn das Blatt mit der Zusammenführung aktiviert wird - wäre das machbar, von der Geschwindigkeit her?
Apropos Geschwindigkeit - in den Blättern stehen in diversen Spalten Formeln, teils recht komplexe. In der Zusammenfassung brauche ich aber eigentlich nur die Werte, könnte man daher das kopieren so machen, dass es wie 'Inhalte einfügen / Werte' funktioniert? (Mein Excel ist so schon ziemlich lahm, keine Ahnung warum...)
Hört sich alles ganz schön kompliziert an, aber ich glaube für euch alte VBA-Hasen ist das wahrscheinlich nur eine for...next-Schleife...?
Danke schonmal & Grüsse,
Jo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Zusammenfassung bei Blattaktivierung
29.01.2010 21:48:07
NoNet
Hallo Jo,
mit "For...Next"-Schleife liegst Du genau richtig ;-)
Kopiere den folgenden Code in das Klassenmodul des Tabellenblattes "Zusammenfassung" (also : Blattname im Blattregister unten per Rechts anklicken und "Code anzeigen..." auswählen) :
Private Sub Worksheet_Activate()
Dim ws As Worksheet, intI As Integer, lngLZ As Long
Cells.Clear 'Zuerst alles löschen
For Each ws In Worksheets
If ws.Name  ActiveSheet.Name Then
intI = intI + 1
If intI = 1 Then
ws.[A1].CurrentRegion.Copy
ActiveSheet.[A1].PasteSpecial xlValues
Else
lngLZ = Cells.Find("*", SearchDirection:=xlPrevious).Row
ws.[A1].CurrentRegion.Offset(2).Copy
ActiveSheet.Cells(lngLZ + 1, 1).PasteSpecial xlValues
End If
End If
Next
Application.CutCopyMode = False
[A1].Select
End Sub
Gruß, NoNet
Anzeige
AW: Zusammenfassung bei Blattaktivierung
29.01.2010 21:51:42
joerg
Ha! Sieht super aus, danke! :)))
Ich werd's gleich mal rüberkopieren und testen, allerdings habe ich noch längst nicht alle Daten in meinen Blättern zusammen - was meinst Du, ist das mit der Geschwindigkeit irgendwie kritisch?
(Habe eigentlich einen Raketenrechner, nur Excel hakt zB bei cut and paste manchmal ganz gewaltig...)
Danke nochmal,
Gruss, Jo
AW: Daten aller Blätter in einem Blatt zusammenführen
02.02.2010 09:53:47
Angelo
Hallo NoNet
habe etwa 30 sheets - möchte aber nur die Daten von 10 sheets mit Blattnamen BL1, BL2, BL3 bis BL10 etc zusammenfassen im Sheet"Zusammenfassung"
was und wie muss ich den Code ändern ändern ?
Danke
Anzeige
AW: Daten aller Blätter in einem Blatt zusammenführen
02.02.2010 11:26:57
Renee
Hi Angelo,
ändere die ersten Zeilen des loops so:
For Each ws In Worksheets
If Left(ws.Name, 2) = "BL" And _
Val(Mid(ws.Name, 3)) > 0 And Val(Mid(ws.Name, 3)) 
Das wie: ersetze im VBE die beiden Zeilen von NoNet. Weiterführende VB-Editor Kurse hier bei Herber oder im Internet ;-)
GreetZ Renée

151 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige