caffebone11

Löschen der Zeile, wenn Zelle einen bestimmten Wert beinhaltet

Löschen der Zeile, wenn Zelle einen bestimmten Wert beinhaltet

Hallo,

ich habe eine Software-Liste als eine Excel-Datei:
(A-Softwarebezeichnung, B-Hersteller, C-Kommentar usw.)
...
eDrawings 2008 SolidWorks
GNU Ghostscript 7.05
...
Hotfix für Windows XP (KB979306) Microsoft Corporation
Hotfix für Windows XP (KB981793) Microsoft Corporation
...
Sicherheitsupdate für Windows Internet Explorer 7 (KB972260)
Sicherheitsupdate für Windows Internet Explorer 7 (KB972295)
...
Update für Windows XP (KB2467659)
Update für Windows XP (KB2469664)
..
Nun möchte ich die komplette Zeilen, die in A mit "Hotfix" und "Sicherheitsupdate" sowie "Update" beginnen, löschen, also von "Müll-Einträgen" bereinigen.

Es Beispiel habe ich:
Alle leeren Zellen löschen:
Sub DeleteEmptys() 
   Dim rng As Range   
   Application.ScreenUpdating = False 
   For Each rng In ActiveSheet.UsedRange    
      If IsEmpty(rng) Then rng.Delete xlShiftUp  
   Next rng 
   Application.ScreenUpdating = True 
End Sub 
bzw.Löschen aller Zellen in Spalte A mit "hallo" im Text:
Sub DeleteQueryCells() 
   Dim var As Variant   
   Do While Not IsError(var)     
      var = Application.Match("hallo", Columns(1), 0)  
      If Not IsError(var) Then Cells(var, 1).Delete xlShiftUp     
   Loop 
End Sub  
 


Das ist aber nicht das ich brauche.
Für Hilfe Danke!!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 177646

Url: https://administrator.de/forum/loeschen-der-zeile-wenn-zelle-einen-bestimmten-wert-beinhaltet-177646.html

Ausgedruckt am: 08.06.2025 um 19:06 Uhr

cse
cse 13.12.2011 um 17:08:07 Uhr
Goto Top
So schwer isses gar nicht face-smile:


Sub DeleteQueryCells()
Dim var As Variant
Do While Not IsError(var)
var = Application.Match("*hallo*", Columns(1), 0)
If Not IsError(var) Then Cells(var, 1).Delete xlShiftUp
Loop
End Sub

vielleicht findest du es ja :D
bastla
bastla 13.12.2011 um 17:10:11 Uhr
Goto Top
Hallo caffeebone11 und willkommen im Forum!

Für ein Suchwort zB so:
Sub DeleteQueryCells()
   Do While Not IsError(var)
      var = Application.Match("Sicherheitsupdate*", Columns(1), 0)  
      If Not IsError(var) Then Rows(var).Delete
   Loop
End Sub
Um alle Begriffe durchzugehen, könntest Du das Sub mit Übergabe des Suchwortes als Parameter aufrufen ...

Grüße
bastla
caffebone11
caffebone11 13.12.2011 um 17:29:28 Uhr
Goto Top
Das ging aber schnell. Vielen Dank!!!

Ich habe eigentlich so um 10 Begriffen, die ich gerne löschen möchte.
Mehrere var-Variablen helfen an der Stelle nicht oder?
...
Do While Not IsError(var)
      var = Application.Match("Sicherheitsupdate*", Columns(1), 0)   
      var1 = Application.Match("Hotfix*", Columns(1), 0)   
      If Not IsError(var) Then Rows(var).Delete
      If Not IsError(var1) Then Rows(var1).Delete
Loop
...

Grüße
caffeebone11
bastla
bastla 13.12.2011 um 17:36:41 Uhr
Goto Top
Hallo caffebone11!
Mehrere var-Variablen helfen an der Stelle nicht oder?
Genau deswegen gibt es Schleifen ...

... etwa (ungetestet):
Sub WegDamit()
Begriffe = Array("Sicherheitsupdate*", "Hotfix*", "Update*")  

For Each Begriff In Begriffe
   Do While Not IsError(var)
      var = Application.Match(Begriff, Columns(1), 0)
      If Not IsError(var) Then Rows(var).Delete
   Loop
Next
End Sub
Den "*" müsstest Du nicht unbedingt für jeden Suchbegriff mit eingeben, wenn in allen Fällen das gesuchte Wort am Anfang der Zelle steht - dann könntest Du die Zeile 6 auch so schreiben:
var = Application.Match(Begriff & "*", Columns(1), 0)
Grüße
bastla
caffebone11
caffebone11 14.12.2011 um 13:52:34 Uhr
Goto Top
Hallo Bastla,

erst mal vielen Dank!
Mit der Schleife funktioniert es noch nicht ganz. Gelöscht wird nur der erste Begriff....
Hättest Du eine Idee?

Grüße
caffebone11
76109
76109 14.12.2011 um 20:46:56 Uhr
Goto Top
bastla
bastla 14.12.2011 um 21:51:51 Uhr
Goto Top
Hallo caffeebone11!

Füge vor Zeile 5 noch ein:
var = 0
damit "var" einen "Nicht-Fehler-Wert" enthält und die "While"-Schleife (neuerlich) durchlaufen werden kann ...

Grüße
bastla
caffebone11
caffebone11 15.12.2011 um 08:01:06 Uhr
Goto Top
Hallo Bastla,

jetzt läuft das Script bestens! Vielen Dank!!!!!!


Viele Grüße
cafeebone11