Hallo, ich weiß leider nicht, ob der Titel passend ist, es ist aber, ohne einen Screenshot zu sehen, schwierig zu beschreiben.
Bitte schaut euch einmal den Screenshot an - ich habe eine Tabelle, im Screenshot seht ihr 3 Oberpunkte von 20 (die grau eingefärbten Überschriften), die Tabelle geht also nach unten weiter. Leider musste ich aus Datenschutzgründen die Inhalte verpixeln.
Diese Tabelle wird automatisch generiert und die Oberpunkte und Inhalte sind immer unterschiedliche. Alle Inhalte der Oberpunkte sind 15 Zellen lang. Wenn der Inhalt weniger ist, wird die 0 ausgegeben.
Mein Ziel ist jetzt, diese Inhalte der Oberpunkte in einer neuen Tabelle untereinander wiederzugeben, ohne die leeren Zellen dazwischen. Ich muss Excel also irgendwie dazu bringen, die Inhalte untereinander in einem neuen Tabellenblatt zu listen, dabei die 0-Zellen aber zu ignorieren.
hier mal eine VBA Lösung im Angebot. In ein normales Modulblatt kopieren und starten. PS Für Worksheet "Tabelle 1+2" musst du im Makro bitte deine Tabellen Namen angeben!
mfg Gast 123
Code:
'** Bitte für Tabelle 1+2 deine Tabellen Namen angeben!
Sub Kopieren_löschen() '** Zieltabelle hier Tabelle2 With Worksheets("Tabelle2") 'UsedRange Tabelle1 in Tabelle2 kopieren Worksheets("Tabelle1").UsedRange.Copy .Range("A1").PasteSpecial xlPasteAll 'Alle Nullen mit Replace löschen .Columns("A:N").Replace 0, "", xlWhole Application.CutCopyMode = False
On Error Resume Next lz1 = .UsedRange.Rows.count
'Rückwärts Schleife zum löschen For j = lz1 To 2 Step -1 If .Cells(j, 1).Interior.ColorIndex > 0 Then j = j - 2 'Innenfarbe -2 Zahl = .Cells(j, 1).Resize(1, 14).SpecialCells(xlCellTypeConstants).count If Zahl = 0 Then .Rows(j).Delete shift:=xlUp 'Leerzeilen löschen Next j End With End Sub
danke für deine Antwort, ich habe das probiert aber das Ergebnis sieht so aus, wie im Anhang zu sehen. Es werden zwar die Überschriften aufgelistet, der weitere Inhalt, der in der Quelle darunter ist, wird aber nicht mit gelistet.
31.07.2023, 14:23 (Dieser Beitrag wurde zuletzt bearbeitet: 31.07.2023, 14:24 von Gast 123.)
Hallo
Upps, das verwundert mich sehr, motviert mich aber auch nach dem Fehler zu suchen. Setze bitte hinter With Worksheets() mal eine MsgBox und schau bitte welcher Range angezeigt wird?? Stimmt der Range?? Dann schauen wir weiter. With Worksheets("Tabelle2") MsgBox .UsedRange.Address
mfg Gast 123 Nachtrag Dein Bild konnte ich leider nicht öffnen. Alter PC mit Excel 2003 System.
Hallo, ich habe mittlerweile eine Lösung gefunden und möchte noch kurz davon berichten, falls in Zukunft mal jemand die gleiche Fragestellung hat.
Eigentlich ist die Lösung recht simpel, ich habe die Tabelle auf einem neuen Tabellenblatt wiedergegeben (mit =A1 etc) und dort dann bei den Spalten über Daten einen Filter gesetzt. In dem Filter habe ich die 0 und Leerzeichen raus genommen und somit habe ich die Tabelle untereinander, wie es mein Ziel war.