Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
732to736
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
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zahl

Zahl
Philipp
Hallo,
habe eine Schleife, die mir eine Zahl -mit Punkt getrennt- aus einer Zelle extrahiert, die auch unter anderem auch noch Text enthält, und sie mir dann unter dem Wert "Zahl" ausgibt.
Bei meiner "Zahl" handelt es sich demnach um die Aneinanderreihung von Zahlen und einem Punkt ".", die jeweils einzeln extrahiert werden und dann aneinandergereiht als ein Wert ausgegeben werden.
Nun möchte ich aber zu der vermeindlichen "Zahl" (z.B 0.5, also 0,.,5 extrahiert) die Zahl 1000 mulitplizieren. Das Ergebnis bei mir ist 5000 und nicht 500.
Die "0" und "." werden irgendwie ignoriert.
Irgendwie müsste ich dem Wert "Zahl" sagen können, daß dieser eine Zahl vom Typ Single ist. Wie mache ich das?
Philipp

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zahl
15.02.2006 16:36:53
volker
hallo philipp,
single kann glaube ich auch keine kommastellen aufnehmen
generell machst du da mit convert zb cvar("0.5") (=string to variant)
gruß volker.
AW: Zahl
15.02.2006 18:43:12
Philipp
Hi Volker
Hier ist mein Code. Der funzt schon. Bloß damit man sehen kann, wovon ich mit "Zahl" spreche:
-------------------------------------------------------------------------

Sub Orig_Zahlen_mit_Punkt_auslesen()
'Auslesen einer Zahl mit Punkt aus einer Zelle
Dim X As String
Dim I As Long
Dim Var As Double
Zeichen = dat
X = ActiveCell.Value
NUM = Len(Trim(X))
For I = 1 To NUM
Z = Mid(X, I, 1)
If Not (Asc(Z) > 47 And Asc(Z) < 58) Then ' wenn vorausgehende Buchstaben ex.
If Asc(Z) = 46 Then ' ASCII-Code des Punktes
If Not (Asc(Mid(X, I + 1, 1)) > 47 And Asc(Mid(X, I + 1, 1)) < 58) Then
Z = dat
End If
Else
Z = dat
End If
End If
Zeichen = Zeichen & Z
Next I
'MsgBox "Zahl " & Zeichen & " extrahiert.", , "Zahlen mit Punkt auslesen"
End Sub

---------------------------------------------------------------------------------------
Was ich gerne hätte, wäre
var = Zeichen*1000
Nehmen wir an als Zeichen stünde 0.5 sollte jetzt Var den Wert 500 haben.
Deine Version habe ich probiert, hat aber irgendwie nicht geklappt.
Was mache ich falsch?
Philipp
Anzeige
AW: Zahl
15.02.2006 18:48:23
Jens
MsgBox Evaluate(zeichen * 1000)
mfg Jens
AW: Zahl
16.02.2006 09:01:47
Philipp
HI Jens
habe es mit Hilfe des Forums jetzt so gelöst:
#########################################################
MsgBox Application.Substitute(Zahl, ".", ",") * 1000
#########################################################
Deine Version hatte nicht so funktioniert, da aus 0.5 *1000 5000 folgte.
Ich glaube es liegt daran, daß ich eine Zahl mit Punkt multiplizieren will.
Danke trotzdem
Philipp
AW: Zahl
15.02.2006 16:47:26
UweD
Hallo
hängt von der Ländereinstellung ab..
in D üblich wird der punkt nicht als Dezimaltrenner verwendet, sondern das Komma
deshalb helfen auch die Csng() oder Cvar() nicht.
so ginge es aber...

Sub tt()
Dim Zahl
Zahl = "0.5"
MsgBox Application.Substitute(Zahl, ".", ",") * 1000
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Zahl
16.02.2006 08:55:23
Philipp
Perfekt Uwe,
habe deine Zeilen eingegeben und nun läuft der Laden
Vielen lieben Dank
Philipp:-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige