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

Datensätze aus Tabellen in Gesamt

Datensätze aus Tabellen in Gesamt
02.12.2003 15:15:27
Tanja
Hallo Profis,

für euch wahrscheinlich kein Problem - für mich VBA-Neuling schon...:

Ich würde gerne in meinem vorletzten Blatt alle Datensätze, die in den vorangegangen Tabellenblättern (ausser dem ersten) eingegeben wurden, auflisten.
In den Blättern kann eine unterschiedliche Anzahl an Datensätzen (resp. Zeilen) eingetragen sein, aber im Gesamtblatt sollten keine Lücken entstehen - lieber jeweils eine Leerzeile...

Kann man das mit VBA hinbekommen?

Vielen Dank für die Bemühungen schon im Voraus!

Gruß
Tanja

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datensätze aus Tabellen in Gesamt
02.12.2003 15:38:46
Nike
Hi,
eine kleine Fingerübung zur Abwechslung ;-)


Sub Gesamt()
Dim wks As Worksheet
Dim wksGesamt As Worksheet
Dim lngZzeil As Long
Dim lngZeil As Long
Set wksGesamt = Worksheets(Worksheets.Count - 2)
lngZzeil = 1
For i = 2 To Worksheets.Count - 3
Set wks = Worksheets(i)
lngZeil = 1
Do Until wks.Cells(lngZeil, 1) = ""
wks.Rows(lngZeil).Copy wksGesamt.Rows(lngZzeil)
lngZzeil = lngZzeil + 1
lngZeil = lngZeil + 1
Loop
Next
End Sub


Bye

Nike
Funktioniert Nicht! Datensätze aus Tabellen Ges.
02.12.2003 15:58:58
Tanja
äähm, sorry, da is jetz grad mal gar nix passiert :-(

vielleicht sollte ich noch sagen, dass alle Tabellenblätter (auch das Gesamt) eine (identische) Kopfzeile haben...

Kann mir jemand helfen?
Anzeige
AW: test...
02.12.2003 16:23:31
Nike
Hi,

die Kopfzeile hat eigentlich keinen Einfluß
im Script wird halt auf den Inhalt in Spalte A geprüft,
solange voll dann kopiere, bis die erste leere Zelle kommt.
ich hab die Startzeile jetzt mal auf 2 erhöht, schaun mer mal ;-)
Ansosnten einfach mal ein Beispiel posten,
dann kann man ggf noch andere Fallen sehen...

Bye

Nike


Sub Gesamt()
Dim wks As Worksheet
Dim wksGesamt As Worksheet
Dim lngZzeil As Long
Dim lngZeil As Long
Set wksGesamt = Worksheets(Worksheets.Count - 2)
lngZzeil = 2 ' Startzeile in Gesamttabelle
For i = 2 To Worksheets.Count - 3 ' von der 2ten bis zur vorvorletzten Tabelle
Set wks = Worksheets(i)
lngZeil = 2 ' Startzeile
Do Until wks.Cells(lngZeil, 1) = ""
wks.Rows(lngZeil).Copy wksGesamt.Rows(lngZzeil)
lngZzeil = lngZzeil + 1
lngZeil = lngZeil + 1
Loop
Next
End Sub

Anzeige
AW: test... - negativ!
02.12.2003 17:02:28
Tanja
wo im code wird denn festgelegt, dass in die vorletzte tabelle alle datensätze geschrieben werden sollen?
bislang schreibt es die daten in das 4.letzte Blatt...

ich werd morgen weiter dran rum probieren - auf weitere hilfestellung freu ich mich schon :-)

gruß
tanja
AW: test... - negativ!
02.12.2003 17:14:56
Nike
Hi,

>wo im code wird denn festgelegt, dass in die vorletzte tabelle
>alle datensätze geschrieben werden sollen?
hier:
Set wksGesamt = Worksheets(Worksheets.Count - 2)

Bye

Nike
AW: es geht! - jetzt Zusatzfrage!!!
03.12.2003 09:44:36
Tanja
Guten Morgen Nike und alle anderen Profis,

könnte man die Datensätze jeweils noch um eine Spalte nach rechts verrücken und dann in der ersten Spalte jeweils den Tabellennamen einfügen, aus dem der jeweilige Datensatz stammt?

Bin gespannt!

Vielen Dank im voraus :-)

Gruß
Tanja
Anzeige
AW: es geht! - jetzt Zusatzfrage!!!
03.12.2003 09:59:09
Nike
Hi,
woran hat es denn gelegen, das es jetzt geht?


Sub Gesamt()
Dim wks As Worksheet
Dim wksGesamt As Worksheet
Dim lngZzeil As Long
Dim lngZeil As Long
Set wksGesamt = Worksheets(Worksheets.Count - 2)
lngZzeil = 2 ' Startzeile in Gesamttabelle
For i = 2 To Worksheets.Count - 3 ' von der 2ten bis zur vorvorletzten Tabelle
Set wks = Worksheets(i)
lngZeil = 2 ' Startzeile
Do Until wks.Cells(lngZeil, 1) = ""
wks.Rows(lngZeil).Copy wksGesamt.Rows(lngZzeil)
With wksGesamt.Cells(lngZzeil, 1)
.Insert xlToRight
.Value = wks.Name
End With
lngZzeil = lngZzeil + 1
lngZeil = lngZeil + 1
Loop
Next
End Sub


Bye

Nike
Anzeige
AW: es geht! - jetzt Zusatzfrage!!!
03.12.2003 11:33:19
Tanja
Mein letztes Blatt war keine Tabelle sondern ein Diagramm, deshalb musst ich

Set wksGesamt = Worksheets(Worksheets.Count)

statt der obigen Zeile einsetzen.

Zu dem neuen Problem:
Es wurden korrekt alle Daten eine spalte nach rechts verschoben - nur kommen anstatt der daten aus spalte a (die in gesamt in spalte b erscheinen sollten) gar nicht mehr in gesamt. sie sind durch den tabellennamen ersetzt - der sollte nun aber in spalte a auftauchen.

Kann man das so verstehen?

Vielen Dank für deine Unterstützung :-)
Gruß
Tanja
AW: Kann man das so verstehen? - Nö ;-)
03.12.2003 13:22:37
Nike
Hi,
>Kann man das so verstehen?
Ehrlich gesagt, weniger ;-)

Eigentlich wird hier eine Zelle in Gesamt eingefügt
With wksGesamt.Cells(lngZzeil, 1)
.Insert xlToRight

und hier der Wert in Spalte 1 geschrieben
.Value = wks.Name
End With

Bye

Nike
Anzeige
AW: Kann man das jetzt verstehen?
04.12.2003 16:51:45
Tanja
Okay, ich versuch's nochmal:

so sieht gesamt jetzt aus:
spalte A ist leer
spalte B enthält die Tabellennamen aus denen die Datensätze kommen - die daten, die in den ursprünglichen datensätzen in spalte A standen - jetzt also in b sein sollen - sind überschrieben
ab spalte c ist alles richtig, d. h. b aus datensätzen ist in c, c aus datensätzen steht in d usw.

kann man da noch was machen?

vielen dank und einen gruss
tanja

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige