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

Forumthread: Zellinhalt rechts ab bestimmten Zeichen löschen?

Zellinhalt rechts ab bestimmten Zeichen löschen?
Selma
Hallo Leute,
wie kann ich per VBA folgendes erreichen:
Wenn in Spalte B ab Zeile 3 in der Zelle diese Zeichen vorkommen ?l=, dann ab diesen Zeichen nach rechts den Zelltext entfernen.
Sub ZEntfernen()
Dim start As Long, letzte As Long, lngZ As Long, strW As String, rngD As Range
Application.ScreenUpdating = False          ' nach dem Test aktivieren
start = 3
letzte = ActiveSheet.Range("B65536").End(xlUp).Row
For lngZ = letzte To start Step -1
strW = Cells(lngZ, 2).Value
If strW Like "*?l=" Then Rows(lngZ).Delete 'hier stimmt es noch nicht :-)
Next
Application.ScreenUpdating = True
End Sub

Besten Dank im Voraus!
Viele Grüße,
Selma
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellinhalt rechts ab bestimmten Zeichen löschen?
02.07.2010 09:37:46
Harald
Hallo Selma,
z.B. so:
Sub ZEntfernen()
Dim start As Long, letzte As Long, lngZ As Long, strW As String, rngD As Range
'   Application.ScreenUpdating = False          ' nach dem Test aktivieren
start = 3
letzte = ActiveSheet.Range("B65536").End(xlUp).Row
For lngZ = letzte To start Step -1
strW = Cells(lngZ, 2).Value
Cells(lngZ, 2) = Left(strW, InStr(1, strW, "?l", vbTextCompare) - 1)
Next
Application.ScreenUpdating = True
End Sub
Gruß
Harald
Anzeige
AW: Zellinhalt rechts ab bestimmten Zeichen löschen?
02.07.2010 09:54:37
Selma
Hallo Harald,
ich bekomme diese Meldung:
Laufzeitfehler: 5 Ungültiger Prozeduraufruf oder ungültiges Argument
Cells(lngZ, 2) = Left(strW, InStr(1, strW, "?l", vbTextCompare) - 1)
Viele Grüße,
Selma
fehlender Test
02.07.2010 10:12:27
Harald
Bei mir hat es funktioniert. Allerdings haate ich nur Zellen mit entsprechendem Inhalt.
Ohne dass ich getestet habe, versuch' mal folgendes:
Sub ZEntfernen()
Dim start As Long, letzte As Long, lngZ As Long, strW As String, rngD As Range
'   Application.ScreenUpdating = False          ' nach dem Test aktivieren
start = 3
letzte = ActiveSheet.Range("B65536").End(xlUp).Row
For lngZ = letzte To start Step -1
strW = Cells(lngZ, 2).Value
if InStr(1, strW, "?l", vbTextCompare) >0 then
Cells(lngZ, 2) = Left(strW, InStr(1, strW, "?l", vbTextCompare) - 1)
end if
Next
Application.ScreenUpdating = True
End Sub

Harald
Anzeige
AW: fehlender Test
02.07.2010 10:18:46
Selma
Jetzt funktioniert es.
Vielen Dank Harald !
VG,
Selma
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalt rechts ab bestimmten Zeichen löschen


Schritt-für-Schritt-Anleitung

Um in Excel per VBA den Zellinhalt rechts von einem bestimmten Zeichen zu löschen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub ZEntfernen()
       Dim start As Long, letzte As Long, lngZ As Long, strW As String
       start = 3
       letzte = ActiveSheet.Range("B65536").End(xlUp).Row
    
       For lngZ = letzte To start Step -1
           strW = Cells(lngZ, 2).Value
           If InStr(1, strW, "?l", vbTextCompare) > 0 Then
               Cells(lngZ, 2) = Left(strW, InStr(1, strW, "?l", vbTextCompare) - 1)
           End If
       Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Drücke ALT + F8, wähle ZEntfernen aus und klicke auf Ausführen.

Mit diesem Makro wird der Zellinhalt ab dem Zeichen ?l= in der Spalte B ab Zeile 3 gelöscht.


Häufige Fehler und Lösungen

  • Laufzeitfehler: 5 Ungültiger Prozeduraufruf oder ungültiges Argument:

    • Dieser Fehler tritt auf, wenn das Zeichen ?l= nicht in der Zelle vorhanden ist. Stelle sicher, dass die Zelle diesen Inhalt hat oder füge eine Fehlerbehandlung hinzu.
  • Makro läuft nicht:

    • Überprüfe, ob die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Einstellungen für Makros.

Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch die Funktion TEXTVERKETTEN oder LINKS in Excel verwenden. Hier ein Beispiel:

  1. Verwende die Formel:
    =LINKS(B3;FINDEN("?l";B3)-1)
  2. Ziehe die Formel nach unten, um sie auf weitere Zellen anzuwenden.

Diese Methode ist einfach und erfordert keine Programmierung, hat aber ihre Grenzen im Vergleich zu VBA.


Praktische Beispiele

  • Beispiel 1:

    • Wenn in Zelle B3 der Wert https://example.com?l=test steht, wird der Inhalt nach der Ausführung des Makros auf https://example.com reduziert.
  • Beispiel 2:

    • Bei einer Liste von URLs in Spalte B kannst du mit dem VBA-Skript alle Inhalte rechts von ?l= auf einmal löschen.

Tipps für Profis

  • Effizienz steigern: Aktiviere Application.ScreenUpdating = False und Application.ScreenUpdating = True um die Ausführungsgeschwindigkeit des Makros zu erhöhen, besonders bei großen Datenmengen.

  • Verwende Debug.Print: Nutze diese Funktion, um während der Entwicklung den Status deiner Variablen zu überprüfen, was dir helfen kann, Fehler schneller zu identifizieren.


FAQ: Häufige Fragen

1. Kann ich das Makro anpassen, um auch andere Zeichen zu löschen?
Ja, du kannst das Zeichen ?l im Code durch jedes andere Zeichen ersetzen, um es an deine Bedürfnisse anzupassen.

2. Ist dieses Makro in allen Excel-Versionen kompatibel?
Das Makro sollte in den meisten Excel-Versionen ab 2007 funktionieren. Stelle sicher, dass du die VBA-Funktionalität aktiviert hast.

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