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

Inhalt mehrere Arbeitsblatter automatisch in neues

Inhalt mehrere Arbeitsblatter automatisch in neues
07.07.2004 11:38:17
Jan
Hallo Zusammen,
ich habe folgendes Problem.
Ich habe mehrere Arbeitsblätter, die unterschiedlich mit Inhalten gefüllt sind und regelmäßig erweitert werden. Von der Struktur her sind die Arbeitsblätter aber alle gleich aufgebaut. Jetzt muss ich diese Blätter - in Abhängigkeit von der Anzahl der Elemente (also immer alle) - alle in ein neues Arbeitsblatt kopieren (untereinander, alles zusammen).
Hat da jemand eine Lösung parat?
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
Ramses
Hallo
schau dir mal die Funktion "Daten - Konsolidieren" an.
Ist in der Hilfe auch ganz gut erklärt. Damit kannst du abhängige Daten mit gleicher Struktur einfach zusammenfassen.
Gruss Rainer
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
Jan
Wenn ich das über die Datenkonsolidierung mache, wie es in der Hilfe beschrieben ist, rechnet der mir ja summen etc. aus (also konsolidierte Daten). Ich möchte aber nichts konsolidieren, ich will einfach eine Liste mit allen Einträgen aller Arbeitsblätter übereinander.
Bsp:
Blatt 1: 5 Spalten mit 20 Datensätzen
Blatt 2: 5 Spalten mit 9 Datensätzen
Zusammenfassendes Blatt: 5 Spalten, Datensatz 1-20 (= Blatt 1), Datensatz 21-30 (= Blatt 2)
Anzeige
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
Ramses
Hallo
Option Explicit

Sub Bind_Data()
Dim i As Long
Dim q1 As Worksheet, q2 As Worksheet
Dim tarWks As Worksheet
'Quelldaten
Set q1 = Worksheets("Tabelle1")
Set q2 = Worksheets("Tabelle2")
'Zieltabelle wird erstellt
Set tarWks = Worksheets.Add
With q1
For i = 2 To .Cells(65536, 1).End(xlUp).Row
.Rows(i).Copy Destination:=tarWks.Rows(tarWks.Cells(65536, 1).End(xlUp).Row + 1)
Next i
End With
With q2
For i = 2 To .Cells(65536, 1).End(xlUp).Row
.Rows(i).Copy Destination:=tarWks.Rows(tarWks.Cells(65536, 1).End(xlUp).Row + 1)
Next i
End With
End Sub

Gruss Rainer
Anzeige
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
07.07.2004 13:08:17
Jan
Hallo,
vielen Dank. Die Funktion geht mit Testdaten, in denen nur Werte drinstehen.
Mit meinen Daten funktioniert sie leider noch nicht.
Vlt liegt das an der Formatierung?
Ich habe immer die ersten 3 Spalten eines Arbeitsblatts vertikal verbunden (die kann man zur Not auch weglassen, wenn das mit der Kopierfunktion nicht geht).
Ausserdem habe ich berechnete Werte.
Und noch eine andere Frage - kann man das Arbeitsblatt, das erstellt wird automatisch immer denselben Namen zuweisen (und wenn es schon vorhanden ist, überschreiben)?
Gruss
Jan
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
07.07.2004 13:13:53
Jan
also im Prinzip könnte das kopieren immer von Spalte D aus starten, die übrigen Felder sind alle nicht verbunden (aber teilweise berechnet).
Anzeige
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
Ramses
Hallo
Deine Frage wurde beantwortet.
Ehrlich gesagt habe ich keine Lust ständig irgendwas neues zu machen weil die Rahmenbedingungen nicht klar sind.
Mit verbundenen Zellen geht das grundsätzlich nicht.
Ändere die Zeile
Set tarWks = Worksheets.Add
in
Set tarWks = Worksheets("Zieltabelle")
tarwks.cells.clearcontents
Wenn du nur Werte haben willst kannst du die Codezeile
.Rows(i).Copy Destination:=tarWks.Rows(tarWks.Cells(65536, 1).End(xlUp).Row + 1)
dahingehend ändern
.Rows(i).Copy
tarWks.Rows(tarWks.Cells(65536, 1).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
Gruss Rainer
Anzeige
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
07.07.2004 14:54:45
Jan
Hallo, vielen Dank.
Soweit funktioniert alles.
Kann man die Formel evtl. noch so anpassen, das der erst bei der vierte Spalte in jedem Arbeitsblatt kopiert, dann würde alles funktionieren?
Gruss
Jan
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
Ramses
Hallo
ändere die Zeile
Rows(i).Copy Destination:=tarWks.Rows(tarWks.Cells(65536, 1).End(xlUp).Row + 1)
in
Range(.Cells(i,4),.Cells(i,.Cells(i, 255).End(xltoleft).Column)).Copy Destination:=tarWks.Rows(tarWks.Cells(65536, 1).End(xlUp).Row + 1)
sollte gehen.
Gruss Rainer
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
07.07.2004 15:29:10
Jan
er kopiert ab Spalte 4, da aber nicht alle "255" gefüllt sind fängt er immer wieder von neuem an, bis die ganze Zeile x-mal mit denselben Daten zugeschrieben ist?
Vielen Dank für Deine beständige Hilfe!!!
Gruss
Jan
Anzeige
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
Ramses
Hallo
so funktioniert es
Range(.Cells(i, 4), .Cells(i, .Cells(i, 255).End(xlToLeft).Column)).Copy Destination:=tarwks.Cells(tarwks.Cells(65536, 1).End(xlUp).Row + 1, 1)
Gruss Rainer
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
07.07.2004 16:06:00
Jan
Jap, das funktioniert...komischerweise kopiert die Funktion nicht das gesamte Tabellenblatt, sondern nur immer gleichbleibende Bereiche.
Wenn Cells(65536, 1 ) gesetzt ist, kopiert er immer aus Datenblatt 1 und 2 nur den ersten Datensatz und dann ne bestimmte Menge aus Datenblättern 3-5 (aber nie gesamt)
Wenn Cells(65536, 2) gesetzt ist, kopiert er 34 Elemente aus Datenblatt 1, 31 aus Datenblatt 2 und weiter abnehmen aus Datenblatt 2-5
liegt das vielleicht an "i" ?
----

Sub KriKa_Blaupause_erstellen()
Dim i As Long
Dim q1 As Worksheet, q2 As Worksheet, q3 As Worksheet, q4 As Worksheet, q5 As Worksheet
Dim tarWks As Worksheet
'Quelldaten
Set q1 = Worksheets("Tabelle1")
Set q2 = Worksheets("Tabelle2")
Set q3 = Worksheets("Tabelle3")
Set q4 = Worksheets("Tabelle4")
Set q5 = Worksheets("Tabelle5")
'Zieltabelle wird erstellt
Set tarWks = Worksheets("Gesamt")
tarWks.Cells.ClearContents
With q1
For i = 2 To .Cells(65536, 1).End(xlUp).Row
Range(.Cells(i, 4), .Cells(i, .Cells(i, 255).End(xlToLeft).Column)).Copy Destination:=tarWks.Cells(tarWks.Cells(65536, 1).End(xlUp).Row + 1, 1)
Next i
End With
With q2
For i = 2 To .Cells(65536, 1).End(xlUp).Row
Range(.Cells(i, 4), .Cells(i, .Cells(i, 255).End(xlToLeft).Column)).Copy Destination:=tarWks.Cells(tarWks.Cells(65536, 1).End(xlUp).Row + 1, 1)
Next i
End With
With q3
For i = 2 To .Cells(65536, 1).End(xlUp).Row
Range(.Cells(i, 4), .Cells(i, .Cells(i, 255).End(xlToLeft).Column)).Copy Destination:=tarWks.Cells(tarWks.Cells(65536, 1).End(xlUp).Row + 1, 1)
Next i
End With
With q4
For i = 2 To .Cells(65536, 1).End(xlUp).Row
Range(.Cells(i, 4), .Cells(i, .Cells(i, 255).End(xlToLeft).Column)).Copy Destination:=tarWks.Cells(tarWks.Cells(65536, 1).End(xlUp).Row + 1, 1)
Next i
End With
With q5
For i = 2 To .Cells(65536, 1).End(xlUp).Row
Range(.Cells(i, 4), .Cells(i, .Cells(i, 255).End(xlToLeft).Column)).Copy Destination:=tarWks.Cells(tarWks.Cells(65536, 1).End(xlUp).Row + 1, 1)
Next i
End With
End Sub

Anzeige
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
Ramses
Hallo
ersetze mal
For i = 2 To .Cells(65536, 1).End(xlUp).Row
durch
For i = 2 To .Cells(65536, 4).End(xlUp).Row
Ich bin davon ausgegangen, dass die Spalte A durchgehend mit Daten gefüllt ist.
Gruss Rainer
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
07.07.2004 16:22:30
Jan
es geht, es geht :-)) Vielen, vielen Dank.
Eine kleine Frage habe ich noch. Ich suche eine Funktion, die mir die Anzahl der ausgefüllten Zeilen einer Spalte meines Tabellenblatt zurückliefert.
(In Spalte F z.b sind durchgängig alle Zeilen ausgefüllt und da brauche ich die Anzahl)
Vielen Dank nochmal, Du hast mir sehr mit Deiner Lösung geholfen.
Gruss
Jan
Anzeige
AW: Inhalt mehrere Arbeitsblatter automatisch in neues
Ramses
Hallo
X = worksheets("Zieltabelle").Cells(65536, 6).End(xlUp).Row
oder als Formel in der Tabelle
=Anzahl2(F:F)
Gruss Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige