Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
136to140
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
136to140
136to140
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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!!

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

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige