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

Forumthread: Erste Zahl von rechts aus einem String extrahieren

Erste Zahl von rechts aus einem String extrahieren
11.05.2016 21:33:57
rechts
Hallo Zusammen,
ich habe in einer Zelle Cells(8,3) einen String 55 bis 60.
Nun sollen beide Zahlen einer Veriablen als Zahl
Zahl1=55
Zahl2=60
zugeordnet werden
Wie müsste der VBA-Befehl dazu aussehen?
Luc hat in einer Antwort auf ähnliche Anfrage geschrieben, dass dazu UDF geschrieben werden sollen. Leider scheitere ich an dieser Herausforderung.
Anbei eine Bsp-Datei:
https://www.herber.de/bbs/user/105490.xlsx
Vielen Dank für Eure Hilfe im voraus,
Peter

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Erste Zahl von rechts aus einem String extrahieren
12.05.2016 01:01:37
rechts
Hi
beispielsweise so, wenn in C8 der Text "55-60" steht
dim Zahl1 as Double
dim Zahl2 as Double
Zahl1 = CDbl(Split(Range("C8").value, "-")(0))
Zahl2 = CDbl(Split(Range("C8").Value, "-")(1))
Gruß Daniel

AW: Erste Zahl von rechts aus einem String extrahieren
12.05.2016 12:37:56
rechts
Hallo Zusammen,
vielen Dank für Eure Antworten.
Die Herausforderung ist, dass in der Tabelle1 sowohl die Anzahl der Untersuchungen und der Spezifikationen als auch die Untersuchungsarten und somit die Spezifikationen sich immer ändern.
Ich benötige die Zahlenwerte, damit ich sie per VBA weiter verarbeiten kann.
Bei einer Spezifikation z.B. "50% bis 70%" werden beide Werte benötigt damit der Untersuchungsswert geprüft werden kann, ob er innerhalb oder außerhalb der Grenzen von 50 bis 70 liegt. (hier steht manchmal "50-90" und manchmal "40% bis 45%"
Leider überschreitet diese Aufgabe meine VBA-Grenzen. Durch eure Antworten habe ich dazugelernt, aber leider komme ich bei der Lösung nicht weiter.
Darf ich euch noch einmal um weitere Hilfe bitten?
Vielleicht könnte der Code hier eingestellt werden.
LG,
Peter

Anzeige
AW: Erste Zahl von rechts aus einem String extrahieren
12.05.2016 16:27:46
rechts
Hi
schwierig.
du brauchst da im Prinzip nicht nur eine Funktion, die die Zahlen extrahiert, sondern auch erkennen kann, ob jetzt ein "grösser", "kleiner" oder "zwischen"-Vergleich erforderlich ist.
das wird dann etwas aufwendiger.
dazu müsste man noch wissen, was noch alles an Beschreibung vorkommen kann (z.B. ob auch mal negative Werte vorkommen können)
auch würde es die ganze Sache vereinfachen, wenn Zahlen immer von Leerzeichen vom restlichen Text getrennt sind.
Gruß Daniel

Anzeige
Du musst die UDF ja nicht selber schreiben, ...
12.05.2016 02:58:31
Luc:-?
…Peter,
sie ist ja schon im Archiv vorhanden (Kopf-Button RECHERCHE und VSplit im oberen Feld eingeben). Dabei auf die Version achten. Die letztpublizierte ist 1.4 und nur in mehreren hochgeladenen BspDateien enthalten! Damit kannst du dann noch viel mehr splitten als im auf dein spezifisches Problem ausgerichteten Bsp von Daniel, das nur das GrundPrinzip wiedergibt.
Gruß + FroPf, Luc :-?

Anzeige
AW: Erste Zahl von rechts aus einem String extrahieren
12.05.2016 16:34:00
rechts
Hallo Zusammen,
habe die Aufgabe lösen können. Nochmals vielen Dank. Ohne Eure Hilfe hätte ich es nicht geschafft.
Wahrscheinlich lässt sich der Code noch verkürzen aber so funktioniert es schon mal.
LG, Peter

Sub ZahlAuslesen()
Dim Zahl1 As Double
Dim Zahl2 As Double
Dim Zahl
For i = 5 To 8
' Überprüfung ob in der Zelle "entspricht" steht
If Cells(i, 4) = "entspricht" Then
Cells(i, 5) = "OK"
Else
Cells(i, 5) = "NOK"
End If
' Überprüfung ob in der Zelle "-" steht und beide Zahlen auslesen
If InStr(Cells(i, 3).Text, "-") > 0 Then
Text = "-"
Zahl1 = CDbl(Split(Cells(i, 3).Value, Text)(0))
Zahl2 = CDbl(Split(Cells(i, 3).Value, Text)(1))
If Cells(i, 4) >= Zahl1 And Cells(i, 4)  0 Then
Zahl = Zahl * 1
If Cells(i, 4)  0 Then
Zahl = Zahl * 1
If Cells(i, 4) 

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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

Erste Zahl von rechts aus einem String in Excel extrahieren


Schritt-für-Schritt-Anleitung

Um die erste Zahl von rechts aus einem String in Excel zu extrahieren, kannst Du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie Du dies umsetzen kannst:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" -> Einfügen -> Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub ZahlAuslesen()
        Dim Zahl1 As Double
        Dim Zahl2 As Double
        Dim Text As String
        For i = 5 To 8
            ' Überprüfung ob in der Zelle "entspricht" steht
            If Cells(i, 4) = "entspricht" Then
                Cells(i, 5) = "OK"
            Else
                Cells(i, 5) = "NOK"
            End If
            ' Überprüfung ob in der Zelle "-" steht und beide Zahlen auslesen
            If InStr(Cells(i, 3).Text, "-") > 0 Then
                Text = "-"
                Zahl1 = CDbl(Split(Cells(i, 3).Value, Text)(0))
                Zahl2 = CDbl(Split(Cells(i, 3).Value, Text)(1))
                ' Hier kannst Du weitere Logik hinzufügen
            End If
        Next i
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle ZahlAuslesen und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"

    • Lösung: Stelle sicher, dass Du die Variablen Zahl1 und Zahl2 als Double deklariert hast.
  • Fehler: Zelle enthält nicht den erwarteten Text

    • Lösung: Überprüfe, ob der Text in den Zellen der Tabelle wie erwartet formatiert ist. Der Code erwartet, dass die Zahlen durch einen Bindestrich getrennt sind.
  • Fehler: "Subscript out of range"

    • Lösung: Achte darauf, dass Du die richtigen Zelladressen und den richtigen Bereich verwendest.

Alternative Methoden

Eine Alternative zur Verwendung von VBA ist die Verwendung von Excel-Formeln. Hier ist ein Beispiel, wie Du die Funktion TEXT und SPLIT in Excel verwenden kannst:

  1. Angenommen, Dein Text steht in Zelle C8:
  2. Verwende folgende Formeln:
    • Für die erste Zahl:
      =WERT(LINKS(C8;SUCHEN("-";C8)-1))
    • Für die zweite Zahl:
      =WERT(RECHTS(C8;LÄNGE(C8)-SUCHEN("-";C8)))

Diese Formeln extrahieren die Zahlen, ohne VBA zu verwenden.


Praktische Beispiele

Hier sind einige Beispiele, wie Du den oben genannten VBA-Code in verschiedenen Szenarien verwenden kannst:

  1. Beispiel 1: Wenn in Zelle C5 der Text "30-50" steht, wird Zahl1 den Wert 30 und Zahl2 den Wert 50 zugewiesen.
  2. Beispiel 2: Bei einer Spezifikation wie "40% bis 60%" kannst Du den Text vor dem Bindestrich extrahieren, indem Du die Formel anpasst.

Tipps für Profis

  • Verwende Fehlerbehandlung: Integriere On Error Resume Next, um mögliche Laufzeitfehler zu vermeiden.
  • Erweitere die Funktionalität: Füge Bedingungen hinzu, um mit verschiedenen Textformaten umzugehen, wie z.B. "50% bis 70%" oder "40-60".
  • Nutze benutzerdefinierte Funktionen (UDF): Erstelle eine UDF, um die Wiederverwendbarkeit Deines Codes zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Funktion für andere Zellbereiche anpassen? Du kannst die For-Schleife im VBA-Code anpassen, um andere Zellbereiche zu durchlaufen.

2. Was mache ich, wenn der Text nicht immer die gleiche Struktur hat? Du kannst zusätzliche Bedingungen im VBA-Code hinzufügen, um verschiedene Textformate zu erkennen und zu verarbeiten.

3. Ist dieser Code in allen Excel-Versionen anwendbar? Ja, der VBA-Code ist in den meisten Excel-Versionen anwendbar, die VBA unterstützen (Excel 2007 und später).

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