Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro: Zeile mit bestimmten Inhalt löschen

Forumthread: Makro: Zeile mit bestimmten Inhalt löschen

Makro: Zeile mit bestimmten Inhalt löschen
22.07.2002 13:29:57
Markus
Hi,

ich bräuchte da noch mal ein wenig Hilfe mit einem Makro. Hier eine kurze Erläuterung:

Ich habe eine Menge Logfiles auszuwerten und muss Zeilen mit bestimmten Inhalten rauslöschen, da sie unrelevant sind. Über das Forum konnte ich schon verschiedene Makros ausprobieren, die im Grund nicht schlecht sind, mir jedoch nicht genau weiterhelfen konnten.

Also:

In der Zeile steht z. B." oder "/images/people/"

Ich brauche ein Makro, dass soweit flexibel ist, dass es Zeilen durchsucht mit dem Inhalt "images". Unabhängig davon, ob ein "/" davor steht oder nicht und unabhängig davon an welcher position das Suchwort steht "images" davor oder dahinter. Mit Filtern komme ich nicht richtig weiter, mit der Ersetz-Funktion komme ich nicht weiter und würde deshalb gerne mit einem Makro arbeiten.

Ganz wichtig ist auf jeden Fall, dass sich das Makro nicht daran stört, dass vor oder hinter dem Wort ein "/" steht.

Ach ja, noch was: Ich müsste mehrere Suchbegriffe eingeben können, nach denen gesucht werden soll.

Anbei schicke ich mal die bisherigen Lösungsvorschläge:

Sub t()
Dim c 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

Teil 2


Sub t()
Dim c 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


Vielen Dank im voraus schon einmal

Grüsse

Markus Gerhartz

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro: Zeile mit bestimmten Inhalt löschen
22.07.2002 13:34:18
Otto Ecker
Hallo Markus,

der nachfolgende Code sucht nach Eingabe das entsprechende Wort, egal an welcher Stelle. Nur das Löschen ergänzen.

Sub suche1()

Dim sBegriff As String, Zelle As Range, Kontrolle%, Frage
Dim jetzigesBlatt As String
jetzigesBlatt = ActiveSheet.Name
sBegriff = InputBox("Bitte wählen Sie einen Suchbegriff ", "Suchen")
If sBegriff = "" Then Exit Sub

For i = 1 To Sheets.Count
Sheets(i).Activate
For Each Zelle In Sheets(i).UsedRange
If Not IsEmpty(Zelle) Then
If Zelle.Value = sBegriff Or Zelle.Value Like "*" & sBegriff & "*" Then
Zelle.Select
Kontrolle = 1
Frage = MsgBox("Gefunden: " & Zelle.Value & " weitersuchen ?", vbInformation + vbYesNo, "Achtung")
If Frage = vbNo Then Exit Sub
End If
End If
Next
Next i
If Kontrolle <> 1 Then
Worksheets(jetzigesBlatt).Activate
MsgBox "Suchbegriff wurde nicht gefunden", vbCritical, "Gesucht aber nicht gefunden"
End If
End Sub

Gruß Otto

Anzeige
Re: Makro: Zeile mit bestimmten Inhalt löschen
22.07.2002 14:17:46
Markus
Hallo Otto,

erst einmal vielen Dank für Deine schnelle Hilfe. Funktioniert einwandfrei. An welcher Stelle muss ich denn die Löschung im Code einsetzen? Bin leider ziemlich unbedarft in VB.

Gruesse

markus

Re: Makro: Zeile mit bestimmten Inhalt löschen
22.07.2002 14:22:18
Otto Ecker
Hallo Markus,

schreibe nach "Kontrolle=1" ActiveCell.EntireRow.Delete

Gruß Otto

PS Aber Achtung: Meine Prozedur durchläuft alle Blätter!!

Anzeige
Re: Makro: Zeile mit bestimmten Inhalt löschen
22.07.2002 14:38:17
Markus
Sobald ich

ActiveCell.EntireRow.Delete

eingeben kommt eine Fehlermeldung: Laufzeitfehler: 424, Objekt erforderlich

Re: Makro: Zeile mit bestimmten Inhalt löschen
22.07.2002 14:46:00
Otto Ecker
Hallo Markus,

mein Fehler. Die Zeile wurde etwas zu früh gelöscht :-) Hier die korrekte Version

Option Explicit
Option Base 1
Option Compare Text


Sub suchen()
Dim i As Long
Dim sBegriff As String, Zelle As Range, Kontrolle%, Frage
Dim jetzigesBlatt As String
jetzigesBlatt = ActiveSheet.Name
sBegriff = InputBox("Bitte wählen Sie einen Suchbegriff ", "Suchen")
If sBegriff = "" Then Exit Sub

For i = 1 To Sheets.Count
Sheets(i).Activate
For Each Zelle In Sheets(i).UsedRange
If Not IsEmpty(Zelle) Then
If Zelle.Value = sBegriff Or Zelle.Value Like "*" & sBegriff & "*" Then
Zelle.Select
Kontrolle = 1
Frage = MsgBox("Gefunden: " & Zelle.Value & " weitersuchen ?", vbInformation + vbYesNo, "Achtung")
If Frage = vbNo Then Exit Sub
ActiveCell.EntireRow.Delete
End If
End If
Next
Next i
If Kontrolle <> 1 Then
Worksheets(jetzigesBlatt).Activate
MsgBox "Suchbegriff wurde nicht gefunden", vbCritical, "Gesucht aber nicht gefunden"
End If
End Sub

Gruß Otto

Anzeige
Re: Makro: Zeile mit bestimmten Inhalt löschen
22.07.2002 14:52:00
Markus
Hey Otto,

coole Sache! Nochmals vielen Dank für die Hilfe. Das sollte es jetzt aber wirklich gewesen sein.

Grüsse

markus

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige