Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
612to616
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
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen löschen

Zellen löschen
19.05.2005 11:03:59
Holger
Hallo,
ich importiere immer wieder Listen in Excel. Diese Listen enthalten verschiedene Zeilen die ich gerne löschen würde. Ist es möglich ein Makro zu erstellen das alle Zeilen löscht die folgende Wörter enthalten: 1. "OEM", 2. "Eingestellt".
Vielen Dank im voraus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen löschen
19.05.2005 11:18:48
Dani
Hallo Holger,
versuchs mal mit folgendem Code:


      
Private Sub Zeile löschen()
Dim Suchwert As String
Dim Fundort As Range
Dim Spaltenlänge, i As Long
Spaltenlänge = Cells(Rows.Count, 1).End(xlUp).Row 
'Spalte A länge ermitteln
For i = 1 To Spaltenlänge
Suchwert = "OEM"
Set Fundort = Range(i & ":" & i).Find(Suchwert, , , xlWhole)
If Not Fundort Is Nothing Then Rows(i).Delete
Suchwert = "Eingestellt"
Set Fundort = Range(i & ":" & i).Find(Suchwert, , , xlWhole)
If Not Fundort Is Nothing Then Rows(i).Delete
Next
End Sub 


Ich hoffe dass dir das weiterhilft
Gruss
Dani
Anzeige
AW: Zellen löschen
19.05.2005 11:38:48
Ralf
Hallo Dani,
sorry, wenn ich nerve - aber folgende Zeile muss getauscht werden:
For i = 1 To Spaltenlänge
mit:
For i = Spaltenlänge To 1 Step -1
Denn wenn der gesuchte Begriff doppelt oder mehrfach untereinander steht, wird er nur einmal gelöscht.
Gruß
Ralf
Danke für deine Aufmerksamkeit! o.T.
19.05.2005 12:36:46
Dani
AW: Zellen löschen
19.05.2005 12:00:40
WernerB.
Hallo Holger,
wie gefällt Dir das?
Ich bin davon ausgegangen, dass die Zeile gelöscht werden soll, wenn einer der beiden (oder alle beide) Suchbegriffe in der Zeile steht/stehen.

Sub Holger()
Dim rng As Range, _
i As Long, laR As Long, Anz1 As Long, Anz2 As Long
Const s1 As String = "OEM", s2 As String = "Eingestellt"
Application.ScreenUpdating = False
On Error Resume Next
laR = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
On Error GoTo 0
If laR > 0 Then
For i = laR To 1 Step -1
Anz1 = 0
Anz2 = 0
Set rng = ThisWorkbook.ActiveSheet.Range("A" & i & ":IV" & i)
Anz1 = Application.Evaluate("=SUM(LEN(" & rng.Address(True, True, _
xlA1, True) & ")-LEN(SUBSTITUTE(" & rng.Address(True, True, _
xlA1, True) & ",""" & s1 & ""","""")))/LEN(""" & s1 & """)")
Anz2 = Application.Evaluate("=SUM(LEN(" & rng.Address(True, True, _
xlA1, True) & ")-LEN(SUBSTITUTE(" & rng.Address(True, True, _
xlA1, True) & ",""" & s2 & ""","""")))/LEN(""" & s2 & """)")
If (Anz1 + Anz2) > 0 Then
Rows(i).Delete
End If
Next i
Set rng = Nothing
End If
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Zellen löschen
19.05.2005 12:11:33
Holger
Hallo Werner,
Danke für den Tip. Hat funktioniert!!
Bei den anderen 2 Vorschlägen habe ich immer eine Fehlermeldung erhalten.
Gruß Holger
AW: Zellen löschen
19.05.2005 12:20:52
Ralf
Hallo Holger,
der Vollständigkeit halber würde mich die Fehlermeldung interessieren. Was wir denn angemeckert?
Gruß
Ralf
AW: Zellen löschen
19.05.2005 13:53:48
Holger
Hallo Ralf,
ist wahrscheinlich mein Fehler. Habe leider keine Ahnung von VBA. Er sagt er macht einen Fehler beim Kompilieren. Erwartet: Anweisungsende. Kann damit leider nichts anfangen.
Gruß Holger
AW: Zellen löschen
19.05.2005 14:08:49
Ralf
Hallo Holger,
nein, ist nicht dein Fehler. Die erste Zeile ist falsch. Der Name darf keine Leerzeichen enthalten. Also falsch ist:

Private Sub Zeile löschen()
Richtig:

Private Sub Zeile_löschen()
Durch das Private wird dein Makro allerdings auch nicht unter Extras - Makros... angezeigt. Also hier nun nochmal der ganze Code:
Sub Zeile_loeschen()
Dim Suchwert As String
Dim Fundort As Range
Dim Spaltenlänge, i As Long
Spaltenlänge = Cells(Rows.Count, 1).End(xlUp).Row 'Spalte A länge ermitteln
For i = Spaltenlänge To 1 Step -1
Suchwert = "OEM"
Set Fundort = Range(i & ":" & i).Find(Suchwert, , , xlWhole)
If Not Fundort Is Nothing Then Rows(i).Delete
Suchwert = "Eingestellt"
Set Fundort = Range(i & ":" & i).Find(Suchwert, , , xlWhole)
If Not Fundort Is Nothing Then Rows(i).Delete
Next
End Sub

Gruß
Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige