Clever-Excel-Forum

Normale Version: Tabelle reinigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag zusammen,

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.




danke  Blush
Hallöchen,

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
Hallo amigo
So ein Makro könnte lauten:
Code:
Sub Makro1()
    asn = ActiveSheet.Name
    Sheets.Add
    ActiveSheet.Name = "azbycx"
    Sheets(asn).Select
    Cells.Copy
    Sheets("azbycx").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
   
    Sheets(asn).Select
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    Selection.Copy
    Sheets("azbycx").Select
    Range("F1").Select
    ActiveSheet.Paste
    Range("A1").Select
   
    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
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!
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  19

here go, exakt was ich brauche, danke! Ausgabe was gelöscht wird ist nicht wichtig. danke!
Hallöchen,
Sprich mal die Antworter an damit man weiß wen Du meinst..
(24.02.2021, 13:27)schauan schrieb: [ -> ]Hallöchen,
Sprich mal die Antworter an damit man weiß wen Du meinst..

wer ist Hallöchen? 17

Gruß Uwe
ah dachte ich zitiere sorry, erste war für Nicolaus und das 2. auf gast123 bezogen.