Tabelle reinigen
#1
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


Angehängte Dateien
.xlsx   CF_Forum.xlsx (Größe: 11,28 KB / Downloads: 10)
Top
#2
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
.      \\\|///      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:
  • elamigo
Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an Niclaus für diesen Beitrag:
  • elamigo
Top
#4
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:
  • elamigo
Top
#5
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!
Top
#6
Hallöchen,
Sprich mal die Antworter an damit man weiß wen Du meinst..
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#7
(24.02.2021, 14:27)schauan schrieb: Hallöchen,
Sprich mal die Antworter an damit man weiß wen Du meinst..

wer ist Hallöchen? 17

Gruß Uwe
Top
#8
ah dachte ich zitiere sorry, erste war für Nicolaus und das 2. auf gast123 bezogen.
[-] Folgende(r) 1 Nutzer sagt Danke an elamigo für diesen Beitrag:
  • Gast 123
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste