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

mit VBA bestimmte Zellen suchen, ersetzen

mit VBA bestimmte Zellen suchen, ersetzen
AndreasK
Hallo zusammen, ich hab folgendes Problem und komm mal wieder nicht weiter.
Ich möchte im aktiven Arbeitsblatt den Inhalt aller Zellen die die Zeichenfolge "gs" enthalten löschen.
Ebenso den Inhalt der 5 benachbarten rechten Zellen.
Wenn also z.B. in der Zelle F17 der Inhalt gs ist soll die Zelle F17 bis K17 geleert werden.
Die Tabelle hat im moment die Größe A1..EN1000 wächst aber noch.
Hoffe auf eure Hilfe.
Grüße Andreas
AW: mit VBA bestimmte Zellen suchen, ersetzen
10.07.2009 10:34:09
AndreasK
Ich habe diesen Code zurechtgebastelt, löscht halt nur die Zellen mit Inhalt "GS" aber nicht die 5 Zellen rechts daneben.
Sub Zellen_mit_inhalt_GS_löschen()
ActiveSheet.Select
Range("A1..EN1000").Select
Selection.Replace What:="gs", Replacement:="", LookAt:=xlPart
End Sub
Grüße Andreas
AW: mit VBA bestimmte Zellen suchen, ersetzen
10.07.2009 11:06:15
Wolli
Hallo Andreas,
dieses Makro macht das gewünschte im ganzen Arbeitsblatt:
Sub Zellen_mit_Inhalt_gs_löschen()
Dim c As Range
For Each c In ActiveSheet.UsedRange.Cells
If InStr(LCase(c.Value), "gs")  0 Then
Range(c, c.Offset(0, 5)).ClearContents
End If
Next c
End Sub
Wenn aber "gs" nur in Spalte F auftauchen kann, kannst Du auch dieses Makro verwenden, es dürfte bei großen Datenmengen deutlich schneller sein, da es nicht alle Zeilen untersucht. Die Spalte kannst Du vorgeben: Columns(6) bedeutet Spalte F.
Sub Zellen_mit_Inhalt_gs_löschen2()
Dim c As Range
For Each c In Intersect(ActiveSheet.UsedRange.Cells, Columns(6))
If InStr(LCase(c.Value), "gs")  0 Then
Range(c, c.Offset(0, 5)).ClearContents
End If
Next c
End Sub
Geht's? Gruß, Wolli
Anzeige
AW: mit VBA bestimmte Zellen suchen, ersetzen
10.07.2009 11:25:28
AndreasK
Hallo Wolli, danke für die Schnelle Antwort,
Wie es halt so ist habe ich vergessen das die Tabelle geschützt ist und nur die Freigegebenen Zellen geleert / gelöscht werden sollen. Wenn ich dein Makro ausführe kommt die Meldung Laufzeitfehler 1004 Zelle ist schreibgeschützt. In den geschützten Zellen steht teilweise auch "gs", darf dort aber auch nicht gelöscht werden. Vielleicht fällt dir ja noch was ein. PS: in meinem Code kam diese Meldung nicht.
Grüße Andreas
AW: mit VBA bestimmte Zellen suchen, ersetzen
10.07.2009 11:30:27
AndreasK
Und nochmal Hallo Wolli,
ich habe eben mal den Blattschutz aufgehoben und jetzt kommt noch eine Fehlermeldung:
Wieder Laufzeitfehler 1004 mit dem Text Kann "Teil einer verbundenen Zelle nicht ändern"
Grüße Andreas
Anzeige
AW: mit VBA bestimmte Zellen suchen, ersetzen
10.07.2009 11:42:47
Wolli
Hallo Andreas, dass der Fehler bei Dir nicht kam, liegt daran, dass Dein Code aus der Zelle die Buchstaben "gs" herauslöscht. Mein Code löscht den gesamten Inhalt der Zelle.
Du müsstest jetzt bitte definieren, was passieren soll, wenn
- die Zelle mit "gs" geschützt ist
- eine oder mehrere Zellen daneben geschützt sind
- die Zellen daneben zu einem Zellverbund gehören, der aus dem zu löschenden Bereich herausragt.
Aber vielleicht ist es einfacher, die Fehlermeldung zu ignorieren und das machen zu lassen, was geht. So:
Sub Zellen_mit_Inhalt_gs_löschen()
Dim c As Range
On Error Resume Next
For Each c In ActiveSheet.UsedRange.Cells
If InStr(c.Value, "gs")  0 Then
Range(c, c.Offset(0, 5)).ClearContents
End If
Next c
On Error GoTo 0
End Sub
bzw.
Sub Zellen_mit_Inhalt_gs_löschen2()
Dim c As Range
On Error Resume Next
For Each c In Intersect(ActiveSheet.UsedRange.Cells, Columns(6))
If InStr(LCase(c.Value), "gs")  0 Then
Range(c, c.Offset(0, 5)).ClearContents
End If
Next c
On Error GoTo 0
End Sub
Gruß, Wolli
Anzeige
AW: mit VBA bestimmte Zellen suchen, ersetzen
10.07.2009 11:57:42
AndreasK
Hallo Wolli,
danke dir vielmals für deine Hilfe.
Läuft wie gewünscht :-)
Ach ja da sieht man mal wieder was man noch so alles lernen und verstehen muß
Grüße
Andreas
Hoffentlich läuft's auch richtig!
10.07.2009 12:19:59
Wolli
Schön dass es geht, aber etwas unbefriedigend. Bist Du sicher, dass das Makro Dir nicht eventuell Daten zerschießt, die Du noch brauchst? Oder dass etwas, das gelöscht werden sollte, übergangen wird? Aber das kann man nur beheben, wenn man sich die Mühe macht, die Bedingungen sauber zu definieren.
Gutes Gelingen, Gruß, Wolli

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige