MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 10.01.2019, 16:35   #1
LtLTSmash
Neuer Benutzer
Neuer Benutzer
Standard VBA - Textbox wandelt Punkt in Komma

Hallo,
ich hab gerade ein echt merkwürdige Problem. Ich habe eine Userform in der ein paar Eingaben und Berechnungen durchgeführt werden. Die Eingabe ist Ganzzahlig, da kann nix schiefgehen. Jetzt ist es so, das aus diesen Werten ein Ergebnis berechnet wird, welches Dezimalstellen haben kann.
Die Rechnung funktioniert auch.
Das Problem ist, wenn ich das Ergebnis jetzt auf der Userform in eine TextBox schreibe zeit die TextBox ein Komma an, obwohl VBA selber mit Punkt rechnet und auch meine Ländereinstellungen Punkt als Dezimaltrennzeichen haben
Also mal als Beispiel:
me.txtxxx.value = Application.worksheetfunction.round(me.txt1.value+me.txt2.value,1)
wobei debug.print Application.worksheetfunction.round(me.txt1.value+me.txt2.value,1) dann z.B 42.5 anzeigt, die TextBox aber 42,5

Kennt jemand das Problem?

Gruß
Thorsten
LtLTSmash ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2019, 16:56   #2
Klaus-Dieter
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Thorsten,

wie kann bei einer Addition und der Eingabe von Ganzzahlen eine Dezimalzahl als Ergebnis heraus kommen?

__________________


Viele Grüße Klaus-Dieter

Klaus-Dieter's Excel und VBA Seite
Klaus-Dieter ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2019, 19:16   #3
Drogist
MOF Profi
MOF Profi
Standard

Moin Klaus-Dieter,

auf den ersten Blick habe ich dir Recht gegeben. Aber das Schlüsselwort "Berechnungen" macht mich doch nachdenklich ...
Gesamtpreis: 10
Stück: 4
Einzelpreis …

… Ach ja, und das Application.Worksheetfunction.Round(x, 1) lässt mich auch an Nachkommastellen denken.

__________________

Internette Grüße
Drogist

(Gut) Gefunden bei Storax: "This isn't a code writing service, you need to do some research and have a go at writing some of your own code."
Ich verwende Excel 2016. Wenn du keine Angaben über deine Version gemacht hast gehe ich davon aus, dass auch du mindestens diese Version hast.

¿¿ Wer schützt mich vor den Datenschützern ??

Geändert von Drogist (10.01.2019 um 19:20 Uhr).
Drogist ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2019, 22:09   #4
AlterDresdner
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Thorsten,
habe mal etwas rumgespielt (Win DE, Exc 2010 DE).
Änderungen Dezimalzeichen bringen nichts, VBA rechnet bei mir immer mit Komma. Ich vermute, dass sich Win- oder Exc-Sprache durchsetzen.
Mögliche Lösung (geht aber nur für gleich konfigurierte Rechner): Zahl in Text umwandeln, Komma durch Punkt ersetzen.
Gruß der ALteDresdner
AlterDresdner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.01.2019, 08:16   #5
LtLTSmash
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

@ Klaus-Dieter
Ach so, sorry, da war mein Beispiel zu stark vereinfacht.
Die Eingabewerte sind zwar Ganzzahlig, werden aber mit einer Dezimalzahl innerhalb der Roundfunktion multipliziert.
Das ganze sieht so aus:
UF_XX.Controls("PXXX").Value = CDbl(Application.WorksheetFunction.Round((UF_XX.Controls("X1").Value + UF_XX.Controls("X2").Value * 0.65 + UF_XX.Controls("X3").Value * 0.3 + UF_XX.Controls("X4").Value * (-0.3)), DecPl))

Ich weiß nicht, ob das wichtig ist, die Berechnung findet in einem Modul statt, nicht auf der Userform selbst. Das hängt damit zusammen, das ich die Userform erst bei Aufruf mit Steuerelementen fülle (es sind halt ziemlich viele und ich möchte bezüglich Anpassungen flexibel bleiben) und deswegen mit klassenmodulen die Events triggere.

wie gesagt, wenn ich die Formel mit debug.print aufrufe kommt eine ein Dezimalpunkt, in der TextBox aber ein Dezimalkomma

Grüße
Thorsten

Geändert von LtLTSmash (11.01.2019 um 08:53 Uhr).
LtLTSmash ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.01.2019, 08:23   #6
LtLTSmash
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

@AlterDresdner
Danke für den Vorschlag. Da hier keine direkte Eingabe in das Textfeld vorgesehen ist, hab ich auch schon dran gedacht statt der TextBox ein Label zu nehmen und den Wert als .Caption anzuzeigen.
Das wird denke ich mal funktionieren, wobei ich nicht glaube, das das funktioniert wenn jemand Komma als Dezimaltrennzeichen hat. Zwar sollte Punkt hier Standard sein, aber man kennt ja seine Spezis
Würde mich aber dennoch interessieren, woher das Problem kommt.

Grüße
Thorsten

Edit: fülle jetzt die TextBox mit der Eigenschaft .Text statt .Value, damit klappt es, aber die Verwunderung über diese Phänomen bleibt.

Geändert von LtLTSmash (11.01.2019 um 08:53 Uhr).
LtLTSmash ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.