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

Forumthread: VBA: Zeichen auf bestimmter Position ersetzen.

VBA: Zeichen auf bestimmter Position ersetzen.
30.03.2005 12:46:14
Horst
Hallo liebe VBA-Erfahrene,
ich möchte ein bestimmtes Zeichen auf einer definierten Position eines Zelleninhaltes ersetzen.
Beispiel: Zellinhalt = A*CD*FG
Nur der rechte Stern soll durch ein anderes Zeichen ersetzt werden. Dabei steht dieser Stern immer an der selben Position (3. von rechts). Mögliche weitere Sterne in dem String sollen erhalten bleiben.
Die Prozedur soll auch für numerische Werte funktionieren.
Hat jemand einen Vorschlag, wie ich das am elegantesten löse?
Herzlichen Dank im Voraus.
Gruß,
Horst
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zeichen auf bestimmter Position ersetzen.
30.03.2005 12:55:05
ANdreas
Hallo Horst,
hier mal ein Beispiel:

Sub ErsetzeStern()
Dim s$, c$
c = "x" ' das Zeichen, das für das * eingesetzt wird
With Range("A4") ' zu prüfende Zelle
s = .Value
If Len(s) >= 3 Then ' mind. 3 Zeichen lang
' Drittletztes Zeichen ein "*" ?
If Mid(s, Len(s) - 2, 1) = "*" Then _
.Value = Left(s, Len(s) - 3) & c & Right(s, 2) ' Ersetzen
End If
End With
End Sub

Hoffe das hilft weiter,
Andreas
Anzeige
AW: VBA: Zeichen auf bestimmter Position ersetzen.
30.03.2005 12:56:36
u_
Hallo,
ganz einfach mit Textfunktionen.
neuerString=left(zellinhalt,len(zellinhalt)-3) &neuesZeichen &right(zellinhalt,2)
Gruß
AW: VBA: Zeichen auf bestimmter Position ersetzen.
30.03.2005 12:59:12
c0bRa
hallo...
wieso VBA?
=LINKS(A1;LÄNGE(A1)-3)&"[zeichen]"&RECHTS(A1;2) sollts auch tun ;)

Rückmeldung nicht vergessen...
c0bRa
Anzeige
AW: VBA: Zeichen auf bestimmter Position ersetzen
30.03.2005 23:14:17
Horst
Hallo liebe "Fragenbeantworter",
leider habe ich noch nicht die Zeit gefunden, alle Eure Vorschläge auszuprobieren. Ich werde in jedem Falle eine Rückmeldung geben.
Vorest vielen Dank für die Unterstützung.
Bis dann,
Horst
AW: VBA: Zeichen auf bestimmter Position ersetzen.
30.03.2005 13:01:22
Fritz
Hallo Horst,
Hier wird das "*" durch ein "+" ersetzt
Cells(x, x) = Left(Cells(x, x), Len(Cells(x, x)) - 3) & Replace(Right(Cells(x, x), 3), "*", "+")
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeichen auf bestimmter Position in Excel VBA ersetzen


Schritt-für-Schritt-Anleitung

Um ein bestimmtes Zeichen an einer definierten Position in einer Excel-Zelle mithilfe von VBA zu ersetzen, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Füge ein neues Modul hinzu: Klicke im Projektfenster mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsm)“ und wähle „Einfügen“ > „Modul“.

  3. Füge den folgenden Code ein:

    Sub ErsetzeZeichen()
       Dim s As String
       Dim c As String
       c = "x" ' Das Zeichen, das für das zu ersetzende Zeichen eingesetzt wird
    
       With Range("A1") ' Zu prüfende Zelle
           s = .Value
           If Len(s) >= 3 Then ' Mindestens 3 Zeichen lang
               If Mid(s, Len(s) - 2, 1) = "*" Then _
                   .Value = Left(s, Len(s) - 3) & c & Right(s, 2) ' Ersetzen
           End If
       End With
    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 ErsetzeZeichen und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

Fehler: „Typenkonflikt“

  • Lösung: Stelle sicher, dass die Zelle, die Du überprüfst, tatsächlich einen Text- oder numerischen Wert enthält.

Fehler: „Index außerhalb des Bereichs“

  • Lösung: Prüfe, ob die Zelle mindestens 3 Zeichen enthält, bevor Du das Zeichen ersetzt.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch Excel-Formeln nutzen:

  • Verwende die folgende Formel in einer Zelle:

    =LINKS(A1;LÄNGE(A1)-3) & "x" & RECHTS(A1;2)

Diese Formel ersetzt das dritte Zeichen von rechts in der Zelle A1 durch „x“.


Praktische Beispiele

  1. Beispiel 1: Wenn der Zellinhalt A*CD*FG ist und Du den rechten Stern ersetzen möchtest:

    ' Resultat: A*CDxFG
  2. Beispiel 2: Bei einem Zellinhalt 123*456 wird der Stern durch ein Plus ersetzt:

    ' Resultat: 123+456

Tipps für Profis

  • Nutze Replace für komplexere Ersetzungen. Beispiel:

    Cells(x, y) = Replace(Cells(x, y).Value, "*", "+")
  • Kombiniere Left und Right, um spezifische Teile eines Strings dynamisch zu ersetzen.


FAQ: Häufige Fragen

1. Frage
Wie kann ich mehrere Zeichen an verschiedenen Positionen ersetzen?
Antwort: Du kannst mehrere If-Bedingungen oder Replace-Funktionen innerhalb Deiner VBA-Prozedur verwenden.

2. Frage
Funktioniert das auch mit numerischen Werten?
Antwort: Ja, die Methode funktioniert auch, solange die Zahlen in Form eines Strings behandelt werden. Achte darauf, dass die Zelle als Text formatiert ist, um unerwartete Ergebnisse zu vermeiden.

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