Das Archiv des Excel-Forums
Zahlenwert aus string auslesen
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
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 |
| A | B | 1 | Betrag | Zahl | 2 | 1000 € | 100 | 3 | 12000 € | 12000 | 4 | 15 € | 15 |
|
Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 2.0 Download
Gruß Klaus-Dieter
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
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
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
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
Excel-Beispiele zum Thema " Zahlenwert aus string auslesen"