Makro: Zeilen mit bestimmten Inhalt löschen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox


Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Makro: Zeilen mit bestimmten Inhalt löschen
von: Markus Gerhartz
Geschrieben am: 18.07.2002 - 13:02:28

Hallo nochmal,

also es wäre wirklich ziemlich wichtig für mich.

Ich benötige ein Makro zum löschen von Zeilen mit bestimmten unterschiedlichen Inhalten.

Z. B.

Anzahl: Name:
33 Cvs
3423 images
664 js

usw

Ich möchte nun zum Beispiele alle Zeilen mit dem Inhalt "Cvs" und dem Inhalt "images" automatisch gelöscht haben. Wer kann mir helfen?

Bitte, bitte, bitte !!!!

Gruss

Markus

nach oben   nach unten

Re: Makro: Zeilen mit bestimmten Inhalt löschen
von: Folker
Geschrieben am: 18.07.2002 - 13:30:11

Mach doch einfach "Ersetzen" "CVS" gegen "" nichts und dann "images" gegen nichts. Kann man einfach aufzeichnen.

nach oben   nach unten

Re: Makro: Zeilen mit bestimmten Inhalt löschen
von: axel.meyer
Geschrieben am: 18.07.2002 - 14:11:49

hi markus,

das sollte es doch sein, oder?

gruß, axel


Sub t()

Dim As Range
Dim bereich As Range
'bereich mit beschriebenen zellen finden
Sheets(1).Select
ActiveSheet.UsedRange.Select
reihe = ActiveSheet.UsedRange.Rows.Count
spalte = ActiveSheet.UsedRange.Columns.Count
ActiveCell.Offset(1, 1).Select
ActiveCell.Offset(-1, -1).Select
If ActiveCell.Address <> "a1" Then
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
End If
reihe = reihe + Selection.Rows.Count - 1
spalte = spalte + Selection.Columns.Count - 1
Range("a1").Select
' löschzeilenwert festlegen
eingabe = InputBox("Was finden & löschen?")
'durchsuchen & löschen
Set bereich = Sheets(1).UsedRange
For Each c In bereich
    If c = eingabe Then
            MsgBox "gefunden in: reihe" & reihe & "   spalte" & spalte & vbCr & "Zeile wird gelöscht"
            reihe = c.Row
            spalte = c.Column
            Rows(reihe).Delete
            End If
Next c

End Sub


nach oben   nach unten

Re: Makro: Zeilen mit bestimmten Inhalt löschen
von: Markus
Geschrieben am: 18.07.2002 - 14:18:29

Hi Folker,

wo muss ich denn die Funktion eingeben? Etwa im VB Editor? Habe leider null Ahnung, wie ich das Teil bediene. Meine Theorie wäre ja, eine Aufzeichnung zu starten und eben diese Veränderungen manuell einsetzen.

Muss der gesuchte Wert "Cvs" immer in der gleichen Spalte sein, oder kann man in der Suchfunktion auch einstellen, dass das komplette Blatt durchsucht wird?


nach oben   nach unten

Re: Makro: Zeilen mit bestimmten Inhalt löschen
von: Markus
Geschrieben am: 18.07.2002 - 14:28:03

Hi Axel,

erst einmal vielen Dank, dass Du Dir die Mühe gemacht hast. Wenn Dein Makro auf einem leeren sheet ausprobiere funktioniert alles einwandfrei. Ich werde aufgefordert, den zu löschenden Namen einzutragen. Kopiere ich jedoch Dein Makro in die betreffende Arbeitmappe, kommt der Fehlerhinweis "Code kann im Haltepunkt nicht ausgeführt werden".

Ich muss nochmals betonen, dass ich bisher noch nicht selbst mit der Makrofunktion gearbeitet habe.

Grüsse

Markus


nach oben   nach unten

Re: Makro: Zeilen mit bestimmten Inhalt löschen
von: axel.meyer
Geschrieben am: 18.07.2002 - 14:49:38

hi markus,

hier eine abgespeckte version. ich habe für mich ein kleines archiv eingerichtet und ein makro daraus angepaßt. die erste version war nicht ausreichend an deine belange angepaßt, vielleicht arbeitet diese version besser.

sonst: versuche mal den teil
eingabe = InputBox("Was finden & löschen?")
durch
eingabe = "meinText"
zu ersetzen. Daran sollte es aber eigentlich nicht liegen.

gruß, axel


Sub t() 
Dim As Range
Dim bereich As Range
' löschzeilenwert festlegen
eingabe = InputBox("Was finden & löschen?")
'durchsuchen & löschen
Set bereich = Sheets(1).UsedRange
For Each c In bereich
    If c = eingabe Then
            MsgBox "gefunden in: reihe" & reihe & "   spalte" & spalte & vbCr & "Zeile wird gelöscht"
            reihe = c.Row
            spalte = c.Column
            Rows(reihe).Delete
            End If
Next 
End Sub



nach oben   nach unten

PS
von: axel.meyer
Geschrieben am: 18.07.2002 - 14:50:42

..lösch die zeile:

MsgBox "gefunden in: reihe" & reihe & " spalte" & spalte & vbCr & "Zeile wird gelöscht"

nach oben   nach unten

Re: PS
von: Markus
Geschrieben am: 18.07.2002 - 15:35:02

Hey Axel,

ein Wunder ist geschehen, es funktioniert einwandfrei. Jetzt noch ein klitzeklein Bitte, äh! Was muss ich im Makro verändern, damit ich mehr als ein Suchkriterium löschen kann? Oder noch besser, kann ich die Suchkriterien vorher festlegen und bei Aktivierung des Makros werden diese automatisch gelöscht?

Nerv....

Trotzdem schon einmal vielen Dank für Deine Hilfe.

Grüsse

Markus


nach oben   nach unten

mehr als ein suchkriterium
von: axel.meyer
Geschrieben am: 18.07.2002 - 16:30:06

teil 1...


Sub t()

Dim As Range
Dim bereich As Range
Dim eingabe(10)
' löschzeilenwert festlegen
anzahl = InputBox("Anzahl der zu findenden löschenden Strings?")
For i = 1 To anzahl
    eingabe(i) = InputBox("Was finden & löschen?")
Next i
'durchsuchen & löschen

For j = 1 To 10
Set bereich = Sheets(1).UsedRange
    For Each c In bereich
            If c = eingabe(j) And eingabe(j) <> "" Then
                  reihe = c.Row
                  spalte = c.Column
                  Rows(reihe).Delete
            End If
       
    Next c
Next j
End Sub


nach oben   nach unten

Re: PS
von: axel.meyer
Geschrieben am: 18.07.2002 - 16:34:24

teil 2...

Sub t()
Dim As Range
Dim bereich As Range
Dim eingabe(10)
' löschzeilenwert festlegen

eingabe(1) = "hierLöschText1"
eingabe(2) = "hierLöschText2"
eingabe(3) = "hierLöschText3"
' usw.
eingabe(4) = ""
eingabe(5) = ""
eingabe(6) = ""
'nicht mehr als 10, oder Dim eingabe(10) ensprechend ändern
For j = 1 To 10
Set bereich = Sheets(1).UsedRange
    For Each c In bereich
            If c = eingabe(j) And eingabe(j) <> "" Then
                  reihe = c.Row
                  spalte = c.Column
                  Rows(reihe).Delete
            End If
    Next c
Next j
End Sub


nach oben   nach unten

suchkriterium innerhalb vom string verschachtelt
von: axel.meyer
Geschrieben am: 19.07.2002 - 16:45:50


Sub t()
Dim As Range
Dim bereich As Range
Dim eingabe(10)
' löschzeilenwert festlegen
eingabe(1) = "axel"
eingabe(2) = "fe"
eingabe(3) = "axel"
' usw.

'nicht mehr als 10, oder Dim eingabe(10) ensprechend ändern
For i = 1 To 10
    On Error Resume Next
    Cells.Find(What:=eingabe(i), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False).Activate
    reihe = ActiveCell.Row
    Rows(reihe).Delete
    On Error Resume Next
    Cells.FindNext(After:=ActiveCell).Activate
Next i
End Sub


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Makro: Zeilen mit bestimmten Inhalt löschen"