Anzeige
Archiv - Navigation
1168to1172
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

Tabelleninhalte zusammenfassen

Tabelleninhalte zusammenfassen
Stefan
Hallo Liebe Excelfreunde,
habe ein kleines Problem, mit dem ich nicht weiter komme...
Habe in meiner XLS jede Menge Tabellen.
Ich möchte, dass alle Inhalte deren Tabellen mit dem Namen "Diff*..." beginnen
zusammenfassen in eine neuen Tabelle "Ges-Diff". und alle "Diff*..." löschen.
Kann mir jemand ne Hilfe geben wie ich das lösen kann ?
:-)
Stefan
AW: Tabelleninhalte zusammenfassen
11.08.2010 13:24:39
EvilRik
Hallo Stefan,
bitte näher erläutern.
XLS = Arbeitsmappe (workbook)?
Tabelle = Arbeitsblatt (worksheet)?
oder Tabelle = definierter Bereich auf bestimmten worksheet mit vergebenen Namen?
Inhalt = bestimmter Bereich auf worksheet?
z.B.

sub Stefan()
dim wks as worksheet
for each wks in thisworkbook.worksheets
if ucase(left(wks.name,4))="DIFF" then
with thisworkbook
.worksheets(wks.name).range(INHALT).copy
.worksheets("Ges-Diff").range(EINFÜGEBEREICH).insert  ' bzw. pastespecial
'.worksheets(wks.name).delete   ' Löschbefehl inaktiv
end with
end if
next
end sub

Voraussetzung: worksheet "Ges-Diff" vorhanden, ansonsten schau dir mal die worksheets.add hilfe an.
Gruß Henrik
Anzeige
AW: Tabelleninhalte zusammenfassen
11.08.2010 13:31:08
Stefan
Hallo Henrik,
danke für die schnelle Antwort...
Mit XLS hab ich die Excelliste Workbook gemeint
mit Tabelle worksheet
Inhalte sind unterschiedlich (es soll aber alles kopiert werden)
Worksheet "Ges-Diff" ist vorhanden...
:-)
Stefan
AW: Tabelleninhalte zusammenfassen
11.08.2010 13:49:30
EvilRik
Hallo Stefan,
z.B.
zu kopierender Bereich:
  • worksheets("Diff_Stef_01").Range( " HIER MUSS DER ZU KOPIERENDE BEREICH REIN ").copy

  • Alles kopieren? Folgendes Problem:
  • wenn ich ein ganzes worksheet kopiere, kann ich in worksheet("Diff-Ges") auch nur eins einfügen.
    (Wieviel Liter Milch bekomme ich in 1 Liter Milch? ;) )

  • Also, die zu kopierenden Bereiche müssen schon genauer definiert werden. z.b. Range("A2:D40")
    Wo sollen die denn auf dem worksheet("Ges-Diff") eingefügt werden?
    Henrik
    Anzeige
    AW: Tabelleninhalte zusammenfassen
    11.08.2010 13:59:25
    Stefan
    Hallo,
    wie schon gesagt die Bereiche kann ich leider nicht exakt definieren.
    Aber wenn ichs genau definieren soll dann ist auf jeden Fall ("A1:T30") ausreichend...
    Oder man kann im Ges-Diff immer an der nächsten leeren Zeile andoggen.
    Hier sollte aber dann der Name der Tabelle als Überschrift stehen...
    :-)
    Stefan
    AW: Tabelleninhalte zusammenfassen
    11.08.2010 14:29:12
    Klaus
    Hallo Stefan,
    ich hab mal was gebastelt. Vorher unbedingt backup ziehen!
    Gleich ne Anmerkung: es funktioniert nur, wenn in jeder Diff* Spalte A bis unten befüllt ist. Ich komm grad nicht drauf, wie ich unabhängig von der Spalte die letzte Zeile abfrage, aber das kann man bei Bedarf bestimmt schnell nachpflegen.
    Sub Konsolidieren()
    Dim wks As Worksheet
    For Each wks In ActiveWorkbook.Worksheets
    'MsgBox wks.Name
    If Left(wks.Name, 4) = "Diff" Then
    wks.UsedRange.Copy
    With Sheets("Ges-Diff")
    lrow = .Range("A65536").End(xlUp).Row + 1
    .Range("A" & lrow).PasteSpecial
    End With
    Application.DisplayAlerts = False
    wks.Delete
    Application.DisplayAlerts = True
    End If
    Next
    End Sub
    

    Anzeige
    AW: Tabelleninhalte zusammenfassen
    12.08.2010 07:41:42
    Stefan
    Hallo Klaus,
    es funktioniert so wie du es beschrieben hast. Danke nochmal !!!
    Hab schon selbst ein bisschen probiert wie man den Tabellennamen noch mit in die Zusammenfassung
    bekommt, komm aber nicht wirklich auf ne Lösung...
    Hast du da ne Idee wie ich das lösen kann ?
    Gruß
    Stefan
    AW: Tabelleninhalte zusammenfassen
    12.08.2010 07:54:07
    Stefan
    Ach ja habs so versucht (siehe 'stefan)...
    Funktioniert aber nicht (schreibt den Tabellennamen nicht mit rein)

    Dim wks As Worksheet
    Dim wksDiff As Worksheet ' stefan
    For Each wks In ActiveWorkbook.Worksheets
    'MsgBox wks.Name
    If Left(wks.Name, 4) = "Diff" Then
    wksDiff.Name = ActiveSheet.Name
    wks.UsedRange.Copy
    With Sheets("Ges-Diff")
    lrow = .Range("A65536").End(xlUp).Row + 1
    .Range("A" & lrow) = wksDiff.Name ' stefan
    .Range("B" & lrow).PasteSpecial
    End With
    Application.DisplayAlerts = False
    wks.Delete
    Application.DisplayAlerts = True
    End If
    Next
    Anzeige
    AW: Tabelleninhalte zusammenfassen
    12.08.2010 07:55:27
    Stefan
    P.s. hab auch nichts im Archiv gefunden...
    AW: Tabelleninhalte zusammenfassen
    12.08.2010 08:11:04
    Klaus
    Hi Steffan,
    ungetestet:
    schmeiss alles mit "wksDiff" raus. Das kann nicht gehen, da du dich mit wksDiff.Name = ActiveSheet.Name auf das aktive Sheet beziehst - aber die initiierende Schleife For Each wks In ActiveWorkbook.Worksheets aktiviert die einzelnen wks nicht, sie referenziert sie nur.
    Versuchs mal mit .Range("A" & lrow) = wks.Name vor dem Paste-Befehl.
    Grüße,
    Klaus M.vdT.
    AW: Tabelleninhalte zusammenfassen
    12.08.2010 08:53:31
    Stefan
    Hallo Klaus,
    so funktionierts prima !
    Vielen Dank
    :-)
    Stefan
    Danke für die Rückmeldung! m.w.T.
    12.08.2010 09:54:41
    Klaus
    Hallo Steffan,
    danke für die Rückmeldung, freut mich geholfen zu haben!
    Tip: vermeide "activesheet" wann immer möglich, da sauberer Code auf das aktivieren von Sheets weitestgehend verzichtet. Schau dir mal die beiden Beispiele im Schritt-für-Schritt Modus (F8) im Editor an (in einem leeren Blatt, auf Tabelle2!A1 schreibst du "hallo" oder sowas):
    Sub KopiereMitAktivieren()
    Sheets("Tabelle2").Activate
    Range("A1").Copy
    Sheets("Tabelle1").Activate
    Range("B1").PasteSpecial
    End Sub
    Sub KopiereOhneAktivieren()
    Sheets("Tabelle2").Range("A1").Copy
    Range("B1").PasteSpecial
    End Sub
    
    Das erste Makro aktiviert, das zweite Makro referenziert. Im zweiten Makro wird das Sheet("Tabelle2") nie angefasst, dass ist der Unterschied!
    Grüße,
    Klaus M.vdT.
    Anzeige
    AW: Tabelleninhalte zusammenfassen
    11.08.2010 14:38:19
    EvilRik
    Hallo Stefan,
    
    Sub Stefan()
    Dim wks As Worksheet
    Dim wksCopy, wksPaste, Zaehler1
    Set wksPaste = ThisWorkbook.Worksheets("Tabelle3")
    Zaehler1 = 1
    For Each wks In ThisWorkbook.Worksheets
    If UCase(Left(wks.Name, 4)) = "TABE" Then
    Set wksCopy = ThisWorkbook.Worksheets(wks.Name)
    wksPaste.Cells(Zaehler1, 1) = wks.Name
    wksCopy.Range("A1:T40").Copy
    wksPaste.Cells(Zaehler1 + 1, 1).Insert
    Zaehler1 = Zaehler1 + 41
    'wkscopy.delete   ' Löschbefehl inaktiv
    End If
    Next
    Application.CutCopyMode = False
    End Sub
    
    p.s. Lass dir nicht alles von anderen schreiben. Benutz mal F1 Hilfe. Irgendwann hilft dir sonst keiner mehr.
    Gruß Henrik
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige