Folgendes Problem:
Ich möchte, dass ein Makro die Zeilen nach einem bestimmten Wort durchsucht. Wenn das Wort gefunden wurde, soll
- die Zeile gelöscht werden in der das Wort vorkommt,
- 8 Zeilen darunter gelöscht werden
Beispiel: Das Wort Flughafen steht in Zeile 10 nun sollen also die Zeilen 10 bis 18 gelöscht werden.
Vielleicht könnt Ihr mir weiterhelfen.
Bedanke mich im Voraus und wünsche einen angenehmen Tag.
Liebe Grüße
Um welches Programm handelt es sicht?
Um welches Programm handelt es sicht?
Sorry, um Excel 2007.
Folgende Schwierigkeit kommt noch hinzu,
Ich arbeite in einer Tabelle mit ca. 20.000 Zeilen und alle 40 - 50 Zeilen muss oben beschriebene Aktion durchgeführt werden.
Gruß
Segro
Also folgender Code sollte nach dem Wort test suchen und anschließend die aktive Zeile, in dem das Wort gefunden wird, löschen. Danach rückt die nächste Zeile nach und die For Schleife löscht weitere 7 mal die nachgerückte Zeile.
Dim i As Integer
Cells.Find(What:=„test“, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
For i = 0 To 7
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
Next
Der Code ist nicht schlecht, vielen Dank,aber wie oben schon erwähnt habe ich 20.000 Zeilen vor mir und alle 40 - 50 Zeilen muss der Code wiederholt werden. Irgendwie müsste da eine Schleife rein.
Viele Grüße
Segro
Diese Schleife sucht nun solange bis das wort nicht mehr gefunden wird.
Sub Makro1()
’
’ Makro1 Makro
’
Dim wort As String
'hier nun das zu suchende wort eingeben
wort = „Test“
Do While zeilen_loeschen(wort) = wort
Loop
MsgBox („FERTIG“)
End Sub
Function zeilen_loeschen(wort As String)
On Error GoTo errorhandler
Dim i As Integer
Cells.Find(What:=wort, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
For i = 0 To 7
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
Next
zeilen_loeschen = wort
Exit Function
errorhandler:
If Err.Number = 91 Then 'Programm findet das gesuchte Wort nicht mehr
zeilen_loeschen = „ende“
Else
MsgBox (Err.Number & " " & Err.Description)
End If
End Function
Daumen hoch!!! That’s it!!!
Vielen, Vielen Dank
LG
Segro
Hallo Segro Mota,
abgesehen davon, dass in deiner Anfrage wichtigen Details fehlen, kann ich dir wahrscheinlich nicht weiter helfen.
Viele Grüße
Stefan