Zahlenwert aus string auslesen

Bild

Betrifft: Zahlenwert aus string auslesen
von: Björn
Geschrieben am: 12.10.2003 21:59:11

Huhu zusammen,

kann mir gerade jemand sagen, wie man per VBA eine zahl aus einem String mt Text auslesen kann? Also zB aus "1000 DM" mache 1000 ?

Vielen Dank!

Gruß

Björn

Bild


Betrifft: AW: Zahlenwert aus string auslesen
von: Klaus-Dieter
Geschrieben am: 12.10.2003 22:34:40

Hallo Björn,

mit diesem Makro geht es, bezogen auf dein Beispiel:

Option Explicit
Sub isolieren()
Dim r As Integer
For r = 2 To Range("A65536").End(xlUp).Row
    Cells(r, 2).NumberFormat = "0"
    Cells(r, 2) = Left(Cells(r, 1), Len(Cells(r, 1) - 3))
Next r
End Sub


Code eingefügt mit: Excel Code Jeanie

So sieht das Ergebnis aus:

Tabelle1
 AB
1BetragZahl
21000 €100
312000 €12000
415 €15
Excel Tabellen einfach im Web darstellen   Excel Jeanie HTML  2.0    Download  
Gruß Klaus-Dieter


Bild


Betrifft: AW: Zahlenwert aus string auslesen
von: th.heinrich
Geschrieben am: 12.10.2003 22:40:30

hallo Björn,

warum per VBA ?

SUCHEN-ERSETZEN. suchen nach DM ersetzen durch nichts.

gruss thomas


Bild


Betrifft: AW: Zahlenwert aus string auslesen
von: Holger Levetzow
Geschrieben am: 12.10.2003 22:41:25

versuche es mal so:

Sub zahl()
Text = Range("A1")
For i = 1 To Len(Text)
    If Asc(Mid(Text, i, 1)) >= 48 And Asc(Mid(Text, i, 1)) <= 57 Then ergebnis = ergebnis & Mid(Text, i, 1)
Next
ergebnis = ergebnis * 1
End Sub

in Ergebnis steht dann die Zahl.
Läßt Du ergebnis = ergebnis * 1 weg, steht in ergebnis die zahl als Text.

Holger


Bild


Betrifft: AW: Zahlenwert aus string auslesen
von: Björn
Geschrieben am: 12.10.2003 23:20:56

Huhu,

Danke Euch Dreien!

Ich hatte überlegt, ein Script zu schreiben, das alle DM-Werte in Tabellen in Euro umrechnet. die Lösungsvvorschläge haben gezeigt, daß das gar nicht so einfach ist. Ein Ansatz auf Excel-basis allein scheidet natürlich leider aus :-(.

Der Ansatz von Holger hat mich zunächst am meisten beeindruckt und es ist wohl auch die treffendeste Antwort auf meine insoweit zu unpräzise Frage. Ich hab 's auch entsprechend für einen kleinen Range-Auschnitt weiterentwickelt - s.u.. Aber es geht natürlich fast zu weit, weil dadurch auch nicht Währungsrelatierte Kombinationen von Text und Zahlen verloren gehen könnten. Solchermaßen muß die Reise wohl doch eher in die Richtung von Klaus-Dieters Ansatz gehen. Per se geht der natürlich auch zu weit, weil er voraussetzt, daß alle Werte-Kombinationen ein " DM" am Ende besitzen. Daher muß es wohl so werden:

wenn am Anfang oder am Ende ein "DM " oder " DM" und der Ausdruck davor bzw dahinter eine Zahl enthält, dann kappe 3 Stellen vor bzw. hinter der Zahl.....

Ob es besonders zuverlässig wird...mal gucken.

Jedenfalls vielen Dank Euch allen noch einmal!

Liebe Grüße

Björn





Sub zahl()
z = 1
Do While z < 500
Text = Cells(z, 1).Value
For i = 1 To Len(Text)
    If Asc(Mid(Text, i, 1)) >= 48 And Asc(Mid(Text, i, 1)) <= 57 Then
    ergebnis = ergebnis & Mid(Text, i, 1)
    End If
Next
If IsNumeric(ergebnis) Then
ergebnis = ergebnis * 1
Cells(z, 1) = ergebnis
End If
ergebnis = ""
z = z + 1
Loop
End Sub



Bild


Betrifft: AW: Zahlenwert aus string auslesen
von: Holger Levetzow
Geschrieben am: 12.10.2003 23:40:54

dann solltest Du solche Zeichen wie , integrieren (Nr. 44).

Holger


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Zahlenwert aus string auslesen"