VBA, Code überprüfen

Hallo zusammen,

hab immernoch mein Porblem, dass mein Makro bei einer englischen Excel-Version abschmiert. Die Zeile nochmal geändert in:

KostenM = Format(CDbl(PKostenM) + CDbl(MKostenM) + CDbl(EnergieM), „#,##0.00“)

Würde diese Zeile jetzt laufen?
Fehlermeldung war Type-Mismatch (Denke mal es lag an dem €-Zeichen).
Oder sieht hier jemand noch etwas, was Probleme bereiten könnte? (Wie gesagt, nur ob es auf englischem Excel laufen würde, für alles andere ist der Codeschnipsel natürlich zu klein)

Danke schonmal!

Grüezi Brille

hab immernoch mein Porblem, dass mein Makro bei einer
englischen Excel-Version abschmiert. Die Zeile nochmal
geändert in:

KostenM = Format(CDbl(PKostenM) + CDbl(MKostenM) +
CDbl(EnergieM), „#,##0.00“)

Würde diese Zeile jetzt laufen?
Fehlermeldung war Type-Mismatch (Denke mal es lag an dem
€-Zeichen).
Oder sieht hier jemand noch etwas, was Probleme bereiten
könnte? (Wie gesagt, nur ob es auf englischem Excel laufen
würde, für alles andere ist der Codeschnipsel natürlich zu
klein)

Nicht bloss dafür, auch für deine Frage bist Du leider mit Code viel zu geizig…

Wie sind die Variablen deklariert?

Welche Inhalte haben sie exakt?

Woher stammen diese Inhalte?

Warum willst du einen Betrag als Text formatiert an eine Variable übergeben? Besser ist es nur den Wert zu übergeben und dann die Zelle in welche der Wert geschrieben wird.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Warum willst du einen Betrag als Text formatiert an eine
Variable übergeben? Besser ist es nur den Wert zu übergeben
und dann die Zelle in welche der Wert geschrieben wird.

Huhu Thomas,

Problem ist, das die Variablen Bezeichnungsfelder in einem Formular sind, deswegen viel mir hier nichts anderes ein als cdbl. Mach ich das nicht davor sagt er immer nicht kompatibles Format.

MfG

Grüezi Brille

Warum willst du einen Betrag als Text formatiert an eine
Variable übergeben? Besser ist es nur den Wert zu übergeben
und dann die Zelle in welche der Wert geschrieben wird.

Problem ist, das die Variablen Bezeichnungsfelder in einem
Formular sind, deswegen viel mir hier nichts anderes ein als
cdbl. Mach ich das nicht davor sagt er immer nicht kompatibles
Format.

Leider gehst du ja auf meine Fragen nicht wirklich ein - so sind mit die Hände gebunden… :frowning:

Ich nehme an, dass die Variable an die Du den berechneten Wert zuweisen willst nicht als String deklariert worden ist?

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Leider gehst du ja auf meine Fragen nicht wirklich ein - so
sind mit die Hände gebunden… :frowning:

Ich nehme an, dass die Variable an die Du den berechneten Wert
zuweisen willst nicht als String deklariert worden ist?

Hallo,

also diese Varibalen sind halt Bezeichnungsfelder in einem Formular.
Also ich hab ein Formular wo man einen Wert eingeben kann. Dann habe ich ein weiteres Feld, welches (dieses Bezeichnungsfeld). Diese Feld hat eine Formel (meinetwegen die Variable die vorher eingegeben wurde mal fünf). Nun will ich mit dieser „Variable mal fünf“ halt weiterrechnen. Dieses Ergebnis habe ich halt nirgends deklariert, weil ich nicht weiss, wie ich dieses Bezeichnungsfeld deklarieren soll, dachte das ist dann immer ein String.

Hoffe du hast halbwegs verstanden was ich meine.

Bin erstmal Urlaub, daher werde ich erstmal nicht antworten können.

MfG

Leider gehst du ja auf meine Fragen nicht wirklich ein - so
sind mit die Hände gebunden… :frowning:

Ich nehme an, dass die Variable an die Du den berechneten Wert
zuweisen willst nicht als String deklariert worden ist?

also diese Varibalen sind halt Bezeichnungsfelder in einem
Formular.

Hoffe du hast halbwegs verstanden was ich meine.

Hallo Brille,

garantiert hat Thomas verstanden was du du sagst. Nur, er hat dich etwas anderes gefragt.

Du fragst an wegen
KostenM = Format(CDbl(PKostenM) + CDbl(MKostenM) + CDbl(EnergieM), „#,##0.00“)

und sagts was von Typemismatch und erwänhst daß es am €-Zeichen gelegen haben könnte.
In der Codezeile sieht man aber kein €-Zeichen.

Völlig korrekt sieht Thomas da vier Variablen, du sagst was von Type mismatch da MUSS er doch fragen wie die Variablen deklariert/definiert sind, denn nur so kann man sich dem evtl. Fehler annähern.
Und genau darauf gehst du nicht ein:frowning:

Ich weiß was du mit @-Zeichen meinst:

/t/vba-deutsch-englisch/6629048

Grundsätzlich, Codeschnipsel sind okay solang sie eindeutig sind.
Wenn nicht, schreib eine kleine Sub. In dem Fall z.B. so:

Sub Frage()
Dim ’ hier alle Variablen deklarieren
Userform1.TextBox1=15
PKostenM=Userform1.TextBox1.Text
Userform1.TextBox2=34
MKostenM=Userform1.TextBox2.Text
’ usw
KostenM = Format(CDbl(PKostenM) + CDbl(MKostenM) + CDbl(EnergieM), „#,##0.00“)
Msgbox KostenM
End Sub

Im Gegensatz zu mir hat Thomas internationale Erfahrungen mit Excel und kann dir dann auf einen Blick sagen ob das auch in China an einem syrischen Rechner mit französischer tastatur laufen muß :smile:)

Und wodran nach Angaben deines Chefs mit seinem engl. Excel dies scheiterte:
KostenM = Format(CDbl(PKostenM) + CDbl(MKostenM) + CDbl(EnergieM), „#,##0.00 €“)

Gruß
Reinhard