Anzeige
Archiv - Navigation
1504to1508
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahl aus einem String auslesen

Zahl aus einem String auslesen
26.07.2016 16:07:02
Peter
Hallo Zusammen,
ich bitte wieder um Eure Hilfe.
In einer Zelle befindet sich folgender Text max. 0,1 .
In einem VBA-Makro soll die Zahl 0,1 ausgelesen werden. Mit meinem Makro wird jedoch 01 ausgelesen. Wie müsste mein Makro verändert werden damit die Zahl 0,1 erhalten wird?

For i=1 to 30
Zahl = NurZahlen(Cells(i, 4))
If InStr(Cells(i, 4).text, "max.") > 0 Then
Zahl = Zahl * 1
If Cells(i, 5) 

Hat jemand eine Idee?
LG, Peter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl aus einem String auslesen
26.07.2016 16:17:20
Oliver
Hallo Peter,
innerhalb der IF-Schleife reicht folgende Formel:
Mid(Cells(i,5).Value,5,10)*1
Hinweis: Das * 1 ist wichtig, weil sonst ein Text entsteht.
Viel Erfolg
Oliver
AW: Zahl aus einem String auslesen
26.07.2016 17:50:40
Peter
Hallo Oliver,
deine Lösung verstehe ich nicht so ganz.
Wie müsste die ganze Zeile aussehen? Muss ich die Zeile in der Function ändern, etwa so?
if Mid(Cells(i,5).Value,5,10)*1 Like "#" Then r = r & Mid(s, z, 1)
LG, Peter
AW: Zahl aus einem String auslesen
27.07.2016 10:33:45
Oliver
Hallo Peter,
das Mid(Cells(i,5).Value,5,10)*1 sollte aus der Zelle den Wert aus Zelle als Dezimalzahl liefern. Insofern kannst Da auf > 0 abfragen oder das Ergebnis in die Variable Zahl aufnehmen.
Grüße
Oliver
Anzeige
AW: Zahl aus einem String auslesen
26.07.2016 16:21:58
UweD
Ich würde es so machen
Sub dsds()
    For i = 1 To 30
        Zahl = Trim(Replace(Cells(i, 4), "max.", "")) * 1
        If Cells(i, 5) <= Zahl Then
            Cells(i, 6) = "erfüllt"
        Else
            Cells(i, 6) = "nicht erfüllt"
        End If
    Next i

End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Gruß UweD
Anzeige
AW: Zahl aus einem String auslesen
26.07.2016 18:10:07
Daniel
Hi
das Problem ist, dass du das Komma auch mit nehmen musst, sonst ist deine Zahl ja nicht vollständig.
wenn deine Texte das Komma nur in der Zahl enthalten und nicht als Satzzeichen, dann so:
die [] im LIKE-Operator geben an, dass hier mehrere verschiedene Zeichen zur Auswahl stehen, hier die Ziffern und das Komma.


Function NurZahlen(ByVal s As String) As String
Dim z As Long, r As String
For z = 1 To Len(s)
If Mid(s, z, 1) Like "[#,]" Then r = r & Mid(s, z, 1)
Next z
NurZahlen = r
End Function


wenn das Komma auch als Satzzeichen vorkommen könnte, darf es nur übernommen werden wenn es zwischen zwei Ziffern steht. dann etwas aufwendiger:


Function NurZahlen(ByVal s As String) As String
Dim z As Long, r As String
For z = 1 To Len(s)
If Mid(s, z, 1) Like "#" or Mid("x" & s & "x", z, 3) like "#,#" Then r = r & Mid(s,  _
z, 1)
Next z
NurZahlen = r
End Function

Gruß Daniel
Anzeige
AW: Zahl aus einem String auslesen
27.07.2016 13:38:37
Peter
Hallo Daniel,
habe mich für deine Lösung entschieden. Vielen Dank dafür!
Function NurZahlen(ByVal s As String) As String
Dim z As Long, r As String
For z = 1 To Len(s)
If Mid(s, z, 1) Like "#" or Mid("x" & s & "x", z, 3) like "#,#" Then r = r & Mid(s,   _
_
z, 1)
Next z
NurZahlen = r
End Function
Ich möchte mich aber bei jedem für seine Hilfe und wertvollen Vorschläge
noch einmal herzlich bedanken!
Jeder Vorschlag hilft zukünftig derartige Aufgabenstellung zu lösen.
LG,
Peter
AW: Zahl aus einem String auslesen
26.07.2016 18:32:46
Daniel
Hi
eine andere Möglichkeit die Zahl aus dem Text zu extrahieren wäre diese Funktion
Function ZahlExtrahieren(byVal s as string) as string
dim TT as string
for each TT in Split(s, " ")
if isnumeric(TT) then
ZahlExtrahieren = TT
Exit for
end if
Next
End Function
die Zahl muss hier mit Leerzeichen vom Rest getrennt sein.
enthält der Text mehrere zahlen, wird die erste verwendet.
Gruß Daniel
Anzeige
AW: Zahl aus einem String auslesen
26.07.2016 19:19:18
ransi
HAllo Peter,
Schau mal ob du evtl. dies brauchen kannst:
Option Explicit

Sub aufruf()
    Call Extract_Dezimalzahlen("In einer Zelle befindet sich folgender Text max. 0,1. 1234,5678 kann auch und 1234efg")
End Sub


Sub Extract_Dezimalzahlen(strText)
    Dim Regex As Object
    Dim objMatches As Object
    Dim objMatch As Object
    Set Regex = CreateObject("VbScript.Regexp")
    With Regex
        .Global = True
        .Pattern = "\d+,?\d+"
        If .test(strText) = True Then
            Set objMatches = .Execute(strText)
            For Each objMatch In objMatches
                MsgBox objMatch.Value
            Next
        End If
    End With
End Sub



ransi
Anzeige
Sieh dir einfach mal die UDF 'MaskOn' aus ...
27.07.2016 01:02:50
Luc:-?
…dem Archiv an (ZweitPublikation 2014, falls es wieder zugänglich ist), Peter,
die kann noch viel mehr als nur das!
Als ZellFml: =--MaskOn("max. 0,1";"zw") ⇒ 0,1
In VBA-Proz: nVar = CDbl(MaskOn("max. 0,1", "zw"))
Gruß, Luc :-?
Besser informiert mit …

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige