Hallo,
ich möchte eine Excel-Datei (Excel 2003) erstellen, wo verschiedene Kriterien erfüllt sein sollten, hier mal die Kriterien:
- ca. 20 Arbeitsblätter mit gleicher Spalteneinteilung
- 1 Arbeitsblatt mit einer Gesamtübersicht (Inhalt aller anderen Arbeitsblätter)
- Spaltenbreite und Art des Inhalts der Arbeitsblätter sind identisch
- jede Zeile ist ein Datensatz
- aus den 20 Arbeitsblättern (Einzel) sollen die Inhalte in das Arbeitsblatt Gesamtübersicht übernommen werden
- Übernahme der Daten in Reihenfolge der Arbeitsblätter, also erst alle Zeilen von Arbeitsblatt Einzel 1 und darunter alle Inhalte von Arbeitsblatt Einzel 2 u.s.w. jeweils getrennt durch den Titel des jeweiligen Arbeitsblattes
Kann mir jemand dabei helfen?
Vielen Dank für eure Mühe
Torsten
- aus den 20 Arbeitsblättern (Einzel) sollen die Inhalte in
das Arbeitsblatt Gesamtübersicht übernommen werden
- Übernahme der Daten in Reihenfolge der Arbeitsblätter, also
erst alle Zeilen von Arbeitsblatt Einzel 1 und darunter alle
Inhalte von Arbeitsblatt Einzel 2 u.s.w. jeweils getrennt
durch den Titel des jeweiligen Arbeitsblattes
Hallo Torsten,
teste das erstmal ausgiebig in einer Kopie deiner mappe.
Alt+F11, Einfügen—Modul, Code reinkopieren,
ggfs den Namen anpassen in Codeteile
With Worksheets(„Gesamt“)
Editor schließen.
Makro in Excel aufrufen mit Alt+F8 …
Sub gesamt()
Dim W As Integer
On Error GoTo Hell
Application.ScreenUpdating = False
With Worksheets("Gesamt")
.UsedRange.Clear
For W = 1 To Worksheets.Count
If Worksheets(W).Name "Gesamt" Then
Zei = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If Zei = 2 Then Zei = 1
.Cells(Zei, 1).Value = Worksheets(W).Name
Worksheets(W).UsedRange.Copy Destination:=.Cells(Zei + 1, 1)
End If
Next W
End With
Hell:
If Err.Number 0 Then MsgBox Err.Number & Chr(10) & Err.Description
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard
Hallo und Danke für die Hilfe,
es funktioniert, allerdings würde ich gern
- eine Leerzeile zwischen den Inhaltsblöcken der Datenblätter haben
- die Titelzeile mit Nennung des Arbeitsblattes formatieren, wenn ich jetzt erneut Alt+F8 drücke, ist die gemachte Formatierung wieder weg
- geht es auch ohne drücken von Alt+F8?
Hast du bitte auch für meine jetzigen Wünsche einen Rat in der Tasche?
Danke
Torsten
Hallo Thorsten,
- eine Leerzeile zwischen den Inhaltsblöcken der Datenblätter
haben
- die Titelzeile mit Nennung des Arbeitsblattes formatieren,
wenn ich jetzt erneut Alt+F8 drücke, ist die gemachte
Formatierung wieder weg
Ist im nachfolgenden Code eingebaut, Formatierung Fett. Wenn du mehr,andre Formatierungen willst mußte es sagen.
- geht es auch ohne drücken von Alt+F8?
Ja, es gibt da mehrere Möglichkeiten.
Vollatuomatisch, eine Änderung in einer Zelle eines Einzelblattes aktualierst die Tabelle Gesamt sofort ohne daß du was tun mußt.
Einen Button in Gesamt erstellen auf den du nur klicken mußt.
Oder entsprechende Buttons in den Einzelblättern.
Oben in der Menüleiste einen Button erstellen.
Dem Makro ein Tasturkürzel zuweisen, dann wird es dadurch direkt ausgeführt.
Gruß
Reinhard
Autsch, bitte ohne „h“ 
Es gibt in deinem Text keinen nachfolgenden Code. 
Danke für deine Mühe.
Torsten
Hallo Torsten,
Autsch, bitte ohne „h“ 
sorry 
Es gibt in deinem Text keinen nachfolgenden Code. 
Nachfolgender Code bedeutet ja nicht daß er mit im Text stehen muß *sehr listig rausred* *gg*
Er folgt halt nach, so wie dieser:
Sub gesamt()
Dim W As Integer
On Error GoTo Hell
Application.ScreenUpdating = False
With Worksheets("Gesamt")
.UsedRange.Clear
For W = 1 To Worksheets.Count
If Worksheets(W).Name "Gesamt" Then
Zei = .Cells(Rows.Count, 1).End(xlUp).Row + 2
If Zei = 2 Then Zei = 1
.Cells(Zei, 1).Value = Worksheets(W).Name
.Cells(Zei, 1).Font.FontStyle = "Fett"
Worksheets(W).UsedRange.Copy Destination:=.Cells(Zei, 1)
End If
Next W
End With
Hell:
If Err.Number 0 Then MsgBox Err.Number & Chr(10) & Err.Description
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard
Hallo und nochmal Danke, bis auf eine Kleinigkeit hat es Super funktioniert. 
Du hattest das „+ 1“ in einer Zeile nicht drin und daher wurde der Titel eines jeden Blockes nicht angezeigt, aber nachdem ich deinen 1. und 2. Code verglichen habe war das kein Problem.
Falls ich nochmal Hilfe brauche, werde ich wieder hier reinschauen, schnell und kompetent, sowas findet man nicht so oft. 
DANKE!!!
Torsten
hallo Torsten,
Du hattest das „+ 1“ in einer Zeile nicht drin und daher wurde
der Titel eines jeden Blockes nicht angezeigt, aber nachdem
ich deinen 1. und 2. Code verglichen habe war das kein
Problem.
wird so sein, passiert halt wenn man Code nicht testet.
Aber jeden Code den ich hier zeige zu testen ist viel zu Zeitaufwendig.
Deshalb schreibe ich den Code erstmal so runter und zeige ihn.
Sofern ich richtig gedeutet habe was der Anfrager eigentlich will dann klappt das zu 60-90%.
Das macht aber gar nix, dann krieg ich Rückmeldung daß es nicht klappt und im Idealfall auch genaue Infos was nicht klappt.
Dann teste ich den Code und versuche das hinzubiegen.
Falls ich nochmal Hilfe brauche, werde ich wieder hier
reinschauen, schnell und kompetent, sowas findet man nicht so
oft. 
Wenn du fit genug bist in Vba, um in meinem Code meinen Fehler zu entdecken und zu korrigieren wäre mein Gedanke, du prüfst ob du nicht Lust hast hier Anderen bei ihren Anfragen zu helfen.
Sinn von w-w-w ist für mich Wissensaustausch. Ich hab Ahnung von Autos, also helfe ich Anderen im Autobrett. Nun habe ich eine Excelfrage, krieg das nicht hin, dafür helfen mir Andere im Excelbrett.
Usw., usw…
Finde ich persönlich fairer, als w-w-w nur als Antwortbox zu mißbrauchen.
Gruß
Reinhard