Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

String prüfen (kein Minus-Zeichen am Anfang)

Forumthread: String prüfen (kein Minus-Zeichen am Anfang)

String prüfen (kein Minus-Zeichen am Anfang)
ing.grohn
Hallo Forum,
mit folgender Funktion prüfe ich Strings:
Public Function erlaubt1(strText As String)
Dim RegEx
Set RegEx = CreateObject("Vbscript.regexp")
With RegEx
.Pattern = "[^0-9A-Za-z-_\.\\:]+"
.Global = True
erlaubt1 = .Replace(strText, "")
End With
End Function

Ich möchte nun, dass das Minus-Zeichen zwar grundsätzlich erlaubt ist aber an "erster" Stelle entfernt wird.
Wie muss das Suchmuster aussehen?
La ringrazio fin d'ora für die Hilfe
Mit freundlichen Grüßen
Albrecht
Anzeige
Dafür brauchst du doch kein Extra-Muster, ...
17.01.2012 19:51:14
Luc:-?
…Albrecht;
es soll doch entfernt wdn → also tue es doch einfach!
Gruß Luc :-?
AW: Dafür brauchst du doch kein Extra-Muster, ...
17.01.2012 20:01:58
ing.grohn
Hallo Luc,
klar kann ich das entfernen!
würd aber schon gern wissen, wie so ein Suchmuster ausschaeun tät!
Frohes neues und schönen Abend
Albrecht
Suchmuster suchen, aber entfernen nichts, ...
17.01.2012 20:14:45
Luc:-?
…Albrecht,
allerdings kommt so etwas in praxi durchaus vor, zB bei Namenskonventionen; also sollte es dazu auch ein (positionsorientiertes) Muster geben. Mit Like wäre das ungefähr so "[!-][…".
Dito GutNeu+schönAb! Luc :-?
Anzeige
AW: Suchmuster suchen, aber entfernen nichts, ...
17.01.2012 20:34:54
ing.grohn
Hallo Luc,
der String sieht so aus:
-§&G%r/o(h§n)

mit Deinem Vorschlag kommt das raus:
G%ro(h§n)

eigentlich sollten aber fast alle Sonderzeichen verschwunden sein!
MfG
Albrecht
Das war kein Vorschlag für RedExp, ...
18.01.2012 02:36:40
Luc:-?
…Albrecht,
sondern für den Like-Operator, der demonstrieren sollte, dass so etwas prinzipiell geht und deshalb sicher auch in RegExp vorkommt. Nur habe ich keine Zeit, mich jetzt damit auseinanderzusetzen.
Ciao, Luc :-?
Anzeige
Ogottogott, blind -> RegExp! Sorry! owT
18.01.2012 17:31:03
Luc:-?
:-?
AW: Suchmuster suchen, aber entfernen nichts, ...
17.01.2012 20:41:52
ing.grohn
das Suchmuster nicht!
Aber Replace
Albrecht
AW: String prüfen (kein Minus-Zeichen am Anfang)
17.01.2012 21:37:43
Christian
Hallo Albrecht,
mit deinem Pattern "[^0-9A-Za-z-_\.\\:]+" schließt du sowohl Zahlen, Buchstaben als auch Bindestrich, Unterstrich, Punkt, Backslash und Doppelpunkt aus.
Wenn du Strings mit Bindestrich am Anfang auschließen willst, dann zB. so:
.Pattern = "^[^-].+"
heißt: Am Anfang ^ kein Minus [^-] und dann mindestens ein beliebiges Zeichen .+.
Wenn du Minus-Zeichen am Anfang ignorieren willst, dann zB. so:
.Pattern = "^-*(.+)"
heißt: Am Anfang ^ können Minuszeichen vorkommen -* (beachte: * ist "begierig"), und die im Anschluss vorkommenden Zeichen .+ willst du weiter verarbeiten (daher in Klammern)
Bei den regular expressions von VBS bin ich immer etwas vorsichtig, Zur Verarbeitung von Strings ist Perl sicher die geiegnetste Sprache. Hier sind Regex in den einschlägigen Tutorials auch bestens erklärt.
Gruß
Christian
Anzeige
AW: String prüfen (kein Minus-Zeichen am Anfang)
17.01.2012 22:23:21
ing.grohn
Hallo Christian,
mit Deiner ersten Aussage bin ich nicht einverstanden!
ich eleminiere ALLES ausser das was da steht.
Mit dem Rest muß ich mich beschäftigen.
Vielen Dank
Mit freundlichen Grüßen
Albrecht
AW: String prüfen (kein Minus-Zeichen am Anfang)
18.01.2012 20:10:13
Christian
hi Albrecht,
da hast du mich wohl missverstanden, ...
ich eleminiere ALLES außer das was da steht.
Ja, das stimmt, bei "Replace" wird alles, was nicht ausgeschlossen ist, ersetzt. Und die ausgeschlossenen Zeichen hab ich dir genannt...
Tipp:
-?[^0-9A-Za-z-_\.\\:]+
bzw:
-*[^0-9A-Za-z-_\.\\:]+
Gruß
Christian
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

String Prüfung in Excel: Minus-Zeichen am Anfang entfernen


Schritt-für-Schritt-Anleitung

Um ein Minus-Zeichen am Anfang eines Strings in Excel zu entfernen, kannst Du die folgende VBA-Funktion verwenden. Diese Funktion nutzt reguläre Ausdrücke (Regex), um das Minus-Zeichen zu identifizieren und zu entfernen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Public Function entferneMinus(strText As String) As String
    Dim RegEx As Object
    Set RegEx = CreateObject("Vbscript.regexp")
    With RegEx
        .Pattern = "^-*(.+)"
        .Global = False
        entferneMinus = .Replace(strText, "$1")
    End With
End Function
  1. Schließe den VBA-Editor und gehe zurück zu Deinem Excel-Blatt.
  2. Verwende die Funktion =entferneMinus(A1), um das Minus-Zeichen aus dem Text in Zelle A1 zu entfernen.

Diese Methode stellt sicher, dass das Minus-Zeichen am Anfang entfernt wird, während der Rest des Strings erhalten bleibt.


Häufige Fehler und Lösungen

Fehler: Die Funktion entfernt nicht nur das Minus-Zeichen am Anfang, sondern auch andere Zeichen.

Lösung: Stelle sicher, dass Du das korrekte Regex-Muster verwendest. Das Muster ^-*(.+) entfernt nur Minus-Zeichen am Anfang des Strings und lässt den Rest des Strings unverändert.

Fehler: Die Funktion gibt einen Fehler zurück, wenn der String leer ist.

Lösung: Du kannst eine Überprüfung hinzufügen, um sicherzustellen, dass der übergebene String nicht leer ist:

If Len(strText) = 0 Then
    entferneMinus = ""
    Exit Function
End If

Alternative Methoden

Falls Du keine VBA-Funktionen verwenden möchtest, kannst Du auch die Funktion TEXT in Kombination mit WENN verwenden, um Strings zu prüfen. Diese Methode hat jedoch Einschränkungen und funktioniert nicht so flexibel wie Regex.

Ein Beispiel:

=WENN( LINKS(A1, 1) = "-", RECHTS(A1, LEN(A1)-1), A1 )

Diese Formel prüft, ob das erste Zeichen ein Minus-Zeichen ist, und entfernt es, wenn dies der Fall ist.


Praktische Beispiele

  • Beispiel 1: Wenn in Zelle A1 der Wert -Beispieltext steht, gibt die Funktion =entferneMinus(A1) den Wert Beispieltext zurück.

  • Beispiel 2: Bei einem String wie --Text mit Minus gibt die Funktion =entferneMinus(A1) den Wert Text mit Minus zurück.

Diese Beispiele zeigen, wie Du mit der Funktion das Minus-Zeichen aus einem String entfernen kannst.


Tipps für Profis

  • Nutze die Funktion entferneMinus in Kombination mit anderen Textfunktionen, um komplexe Textanalysen in Excel durchzuführen.
  • Achte darauf, dass die Regex-Muster an Deine spezifischen Anforderungen angepasst werden, insbesondere wenn Du mehr als nur Minus-Zeichen entfernen möchtest. Das Muster kann leicht erweitert werden, um auch andere unerwünschte Zeichen zu entfernen.
  • Verwende die Funktion in Datenbereinigungsprozessen, um sicherzustellen, dass Deine Daten konsistent und fehlerfrei sind, besonders wenn Du mit Namenskonventionen arbeitest.

FAQ: Häufige Fragen

1. Kann ich die Funktion auch ohne VBA verwenden? Ja, Du kannst eine Kombination aus Excel-Funktionen verwenden, aber die Flexibilität von Regex ist in der Regel vorteilhafter.

2. Funktioniert die Regex-Funktion in jeder Excel-Version? Die Verwendung von VBA und Regex sollte in den meisten modernen Excel-Versionen funktionieren. Stelle sicher, dass Du die Makros aktiviert hast.

3. Was passiert, wenn der String nur aus Minus-Zeichen besteht? Die Funktion entfernt alle Minus-Zeichen und gibt einen leeren String zurück.

4. Kann ich das Minus-Zeichen auch als Text behandeln? Ja, Du kannst das Minus-Zeichen als Text behandeln, indem Du es in Anführungszeichen setzt, z.B. "-".

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