Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen löschen außer mit folgendem Inhalt


Betrifft: Zellen löschen außer mit folgendem Inhalt von: Christoph
Geschrieben am: 01.08.2017 15:05:09

Hallo zusammen,

ich versuche mich gerade ein wenig an VBA.

Ich wollte ein Makro erstellen, welches automatisch alle Zeilen löscht einer Datei außer die Zeile enthält eine Zelle mit folgendem Inhalt.

Folgendes habe ich erstellt:

Sub loeschen()
 Dim n As Integer
     n = 1
     
     Do
         If Not ActiveSheet.Range("A" & n) = "900" Then
             ActiveSheet.Range("A" & n).EntireRow.Delete
         Else
             n = n + 1
         End If
         
     Loop While ActiveSheet.Range("A" & n) <> ""

 End Sub
Soweit funktioniert es auch. Allerdings wollte ich nun eine weitere Bedingung einbauen. Quasi lösche alle Zeilen außer wenn eine Zelle mit "900" oder "800" enthalten ist.

Alles was ich nun versuche scheitert kläglich.

Könnt ihr mir hier helfen?

Vielen Dank!

LG

  

Betrifft: AW: Zellen löschen außer mit folgendem Inhalt von:  Matthias L
Geschrieben am: 01.08.2017 16:20:45

Hallo

Hast Du es mal mit OR versucht?
Zeilen sollte man eher rückwärts löschen.

Gruß Matthias


  

Betrifft: AW: Zellen löschen außer mit folgendem Inhalt von: Christoph
Geschrieben am: 01.08.2017 16:28:36

Hallo Matthias,

danke für deine Antwort.

Ich habe bereits versucht mit einer OR zu arbeiten. Leider bin ich auf VBA noch totaler Anfänger. Ich habe verschiedene Wege versucht, jedoch erhielt ich jedes mal eine Fehlermeldung sobald ich OR einsetzte.

Hast du einen Vorschlag wo ich die OR einbauen kann?

Danke.


  

Betrifft: AW: Zellen löschen außer mit folgendem Inhalt von: onur
Geschrieben am: 01.08.2017 16:34:19

Wenn du verrätst, was "OR" sein soll?


  

Betrifft: AW: Zellen löschen außer mit folgendem Inhalt von: Matthias L
Geschrieben am: 01.08.2017 16:36:40

Hallo

Ich habe Dir bereits ein Bsp. geschickt.
Zeilen löscht man normalerweise rückwärts!

Gruß Matthias


  

Betrifft: AW: Zellen löschen außer mit folgendem Inhalt von: onur
Geschrieben am: 01.08.2017 16:42:58

Hallo,
Matthias L: hat Recht - muss heissen:

Dim z, a
     For z = 1000 To 1 step -1
          a = ActiveSheet.Cells(z, 1)
          If a = "800" Or a = "900" Then
               ActiveSheet.Rows(z).EntireRow.Delete
          End If
     Next z



  

Betrifft: AW: Zellen löschen außer mit folgendem Inhalt von: Christoph
Geschrieben am: 01.08.2017 16:44:36

Danke euch beiden. Makro läuft. Besten Dank!


  

Betrifft: AW: Zellen löschen außer mit folgendem Inhalt von: onur
Geschrieben am: 01.08.2017 16:26:40

Sub Schaltfläche1_Klicken()
     Dim z, a
     For z = 1 To 1000
          a = ActiveSheet.Cells(z, 1)
          If a = "800" Or a = "900" Then
               ActiveSheet.Rows(z).EntireRow.Delete
          End If
     Next z
End Sub

Denk dran, dein code (deswegen auch meiner) reagiert nur auf 800 oder 900 als TEXT.
Sonst musst du die Gänsefüsschen weglassen.


  

Betrifft: hier (m)ein Beispiel ... von: Matthias L
Geschrieben am: 01.08.2017 16:29:46

https://www.herber.de/bbs/user/115159.xlsm

Gruß Matthias


Beiträge aus den Excel-Beispielen zum Thema "Zellen löschen außer mit folgendem Inhalt"