ich suche ein Makro, welches mir die aktuelle Tabelle bereinigt. Bereinigt meint in diesem Zusammenhang, dass alle Daten welche nicht sichtbar sind gelöscht werden. Die Tabelle ist hierbei immer unterschiedlich lang, die Spalten bleiben. Beispielsweise wie in der Datei: Berlin wird als Ort raus gefiltert, nun möchte ich auf den Button klicken und in der Tabelle ist der Datensatz von "Peter" nicht mehr finden.
Zitat:dass alle Daten welche nicht sichtbar sind gelöscht werden
drehe die Bedingung mal so um, dass die sichtbaren unsichtbar werden und die unsichtbaren sichtbar. Dann löschst Du die sichtbaren. Den Code zum Löschen kannst Du aufzeichnen bzw. Du nimmst die SpecialCells - xlCellTypeVisible
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • elamigo
Application.DisplayAlerts = False Sheets("Tabelle1").Delete Application.DisplayAlerts = True Sheets("azbycx").Name = "Tabelle1" End Sub
Das Makro kopiert Deine aktive Tabelle (ohne die nicht-sichtbaren Zeilen) und den Button in eine neue Tabelle. Die "alte" Tabelle wird gelöscht und die neue erhält den Namen der alten.
Es empfiehlt sich, vor dem Testen eine Kopie der Original-Datei zu machen!
Es gibt sicher eine viel elegantere Variante für ein solches Makro. Ich hoffe, mein Makro hilft Dir fürs erste. Grüsse Niclaus
Folgende(r) 1 Nutzer sagt Danke an Niclaus für diesen Beitrag:1 Nutzer sagt Danke an Niclaus für diesen Beitrag 28 • elamigo
23.02.2021, 22:21 (Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2021, 17:08 von Glausius.)
Hallo
eleganter ist es nur die Zeilen zu löschen und nicht eine neue Tabelle erstellen. Man beachte bitte das hier unbedingt erforderliche Rückwaerts löschen mit Step -1 !! Sonst stimmt der Zeilenzahler nicht!!
mfg Gast 123
Code:
Sub Makro1_löschen() Dim j As Long, lz1 As Long 'LastZell in Spalte A suchen lz1 = Cells(Rows.Count, 1).End(xlUp).Row 'unsichbare Zeilen Rückwaerts löschen For j = lz1 To 2 Step -1 If Rows(j).EntireRow.Hidden = True Then Rows(j).Delete shift:=xlUp End If Next j End Sub
Hinwes: Mein Makro prüft NICHT ob das was du da löschst auch richtig ist?? Sonst müsste man diese Namen vorher per MsgBox anzeigen!
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • elamigo
24.02.2021, 13:59 (Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2021, 13:59 von elamigo.)
Das hätte leider nicht geklappt, weil es Referenzen auf das Tabellenblatt gibt, daher darf nur neu gespeichert oder umbenannt werden, zudem sind die Tabellenblattnamen immer anders...ansonsten danke für deine Idee! Kann den Code glaub ich tatsächlich für etwas anderes nutzen here go, exakt was ich brauche, danke! Ausgabe was gelöscht wird ist nicht wichtig. danke!