Berechnungen in VBA

Hardware, Software, Webdesign & Coding.

Moderator: Katana

Antworten
Benutzeravatar
Ironman
Beiträge: 164
Registriert: Fr Okt 19, 2001 12:01 am

Berechnungen in VBA

Beitrag von Ironman »

Hi,
ich bekomme in einer Aplication bei einer Abfrage einen Zahlenwert mit Komma zurück (z.B. 0,03). Da ich mit diesem Wert gerne eine Berechnung durchlaufen würden brauche ich wohl eher einen Wert mit Punkt (z.B. 0.03).
Ich bin kein Profi in VBA, aber bei Komma Werten kommt halt immer der Fehler ""Type Mismatch"".
Wenn das Problem da liegt, wie kann ich aus dem Komma einen Punkt machen, bzw. VBA beibringen auch mit Kommawerten zu rechnen.

Schon mal Danke

Ironman
Benutzeravatar
Logan86
Beiträge: 1056
Registriert: Mi Feb 21, 2001 1:01 am

Beitrag von Logan86 »

ALso wenn deine Berechnungen im Dezimalsystem stattfinden sollen dann müsstest du nur deinen Kommawert alo ZB 0,03 mal 100 nehmen, dann ihn durch die Berechnung laufen lassen und das Ergebnis wieder durch Hundert dividieren.
SyMbiOnT
Beiträge: 609
Registriert: Mi Mai 02, 2001 12:01 am

Beitrag von SyMbiOnT »

meine vb zeiten sind etwas her, aber das ist viel einfacher als man denkt, ich weiss nur net mehr wie :D
Schreib doch einfach mal ein bisschen source hierein, vieleicht können wir dann helfen.
Der Anfänger freut sich, wenn nach dem Start des Programms Ziffern auf dem
Bildschirm erscheinen, der Eingeweihte prüft die Größenordnungen der ausgege-
benen Resultate, der Profi traut nicht einmal dem Vorzeichen.

http://www.bi.2fbi.de
Benutzeravatar
Ironman
Beiträge: 164
Registriert: Fr Okt 19, 2001 12:01 am

Beitrag von Ironman »

Hi,

@Logan86
die Idee mit dem mal 100 hatte ich auch, aber da der Wert erst gar nicht als Zahlenwert (zb. as Double) anerkannt wird, kann ich ihn auch nicht multiplizieren. Ich würde dann einen String mal 100 nehmen.

@SyMbiOnT
ich kann hier gerne ein paar Zeilen source reinsetzen, nur würde das wohl nicht viel bringen. Ich arbeite an einem Macro für ein Prg. das wohl nicht so viele kennen. Außerdem hat der source nicht viel mit meinem Problem zu tun. Ich bekommen halt einen Kommerwert, und mit dem kann ich halt nichts anfangen.
Der source dafür:
-------------------------schnipp--------------------
Set length4 = parameters1.CreateReal(""`Länge.4`"
Benutzeravatar
LostTemplar
Beiträge: 166
Registriert: Sa Aug 31, 2002 10:25 pm

Beitrag von LostTemplar »

Ich hab zwar seit Ewigkeiten nich mehr mit Basic programmiert, aber schau halt mal in der Hilfe nach nem Befehl, der ein Zeichen durch anderes ersetzt... den rufst du dann halt auf, dass er Kommas durch Punkte ersetzt... so nen Befehl gibts 100%, ansonsten is VB noch schlimmer als ich dachte ^0^
Und im Notfall mussu sowas halt selbst programmieren, weiß aber nicht mehr wie Strings in Basic gehandelt werden...
Benutzeravatar
Ironman
Beiträge: 164
Registriert: Fr Okt 19, 2001 12:01 am

Beitrag von Ironman »

Nach genau so einem Befehl suche ich. Und ich bin auch der Meinung das es sowas geben müßte. Aber gefunden habe ich ihn bis jetzt noch nicht.
Ich würde sowas ja auch zur Not selber programmieren, aber da fehlen mir noch ein paar Kentnisse. Aber ich arbeite daran.
Und das VB nicht unbedingt die beste Sprache ist, darüber brauchen wir nicht zu diskutieren. Aber ich kann halt nur VB Script oder VBA benutzen. Und da ziehe ich halt VBA vor.

Ironman
Benutzeravatar
Logan86
Beiträge: 1056
Registriert: Mi Feb 21, 2001 1:01 am

Beitrag von Logan86 »

Den Befehl gibts! Das kann ich dir mit 100%iger sicherheit sagen! Hab nochmal nachgedacht und da is mir eingefallen, dass wir auch schonmal in der Schule irgendwas mit dem Befehl gemacht haben, aber leider is das schon ne Weile her und ich hab schonwieder vieles in VB vergessen! :cry:
Benutzeravatar
XTale
Zweiter Admin im Bunde
Beiträge: 4736
Registriert: Fr Mai 12, 2000 12:01 am

Beitrag von XTale »

replace(""Ich bin ein blöder string."" ""."" "
Bild
Benutzeravatar
Ironman
Beiträge: 164
Registriert: Fr Okt 19, 2001 12:01 am

Beitrag von Ironman »

Danke, so ging es fast.
Mit der Funktion 'Replace' kann man zwar Zeichen in einem String durch ein anderes Zeichen ersetzte, aber danach muß denn dieser String wiederum in eine Zahl umgewandelt werden.
Das kan man mit
CDbl(Ich bin ein blöder string)
machen.

Also, danke an alle die sich meinem Probelm angenommern haben.

Ironman
Antworten