Anzeige
Archiv - Navigation
656to660
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
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Rechnen mit VBA - Münzwert ermitteln
24.08.2005 17:00:19
ChrisBee
Hallo liebe Gemeinde.
Heute hab ich ein für mich etwas seltsames Rechenproblem.
Da ich jetzt schon seit Stunden daran herumtüftel ohne den Denkfehler zu finden
hoffe ich nun das hier jemand in Mathe besser aufgepaßt hat als ich. ;o)
Die Idee ist folgende:
Ich brauch ein Formular das den Wert einer Euro-Münze berechnen kann.
Beispiel:
Wenn ich einen kompletten Euro-Satz (8Münzen) für 3,88 Euro kaufe dann hat die
1Cent-Münze den Wert 1Cent.
Wenn ich aber 7,76 Euro für den gleichen Satz bezahle, dann hat die
1Cent-Münze den Wert 2Cent. (Weil ich das doppelte vom Nennwert bezahlt hab)
Was aber nun wenn ich einen Satz kaufe bei dem 1Euro und 20Cent fehlen und
ich 23Euro dafür bezahlt habe? Welchen Wert hat dann die 1Cent-Münze?
Und nun mein Problem:
Das angefügte Formular funktioniert eigentlich schon.
Wenn man alle 8 CheckBoxen checkt, ins erste Textfeld 3,88 eingibt und "Calc" clickt, dann steht in jedem der 8 Werte-Felder das richtige Ergebnis. Auch wenn
man oben z.b. 50 eingibt stimmt alles.
...aber bei z.b. 10 oder 4 kommt totaler Schwachsinn raus.
Könnte mir B I T T E jemand sagen warum das so ist?
Ich glaub es liegt daran das die Kommastellen in den Label.Tags falsch ausgelesen werden...
Wenn ja, was muß ich ändern damit das Ding endlich richtig rechnet?
Für Eure Hilfe bin ich wie immer wirklich sehr dankbar.
...und hier die Datei:
https://www.herber.de/bbs/user/25999.xls
Schöne Grüße
ChrisBee

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rechnen mit VBA - Münzwert ermitteln
24.08.2005 17:51:11
Christian
Hallo,
Mathematisch kann ich dir weiterhelfen, aber wie du das dann in VBA umsetzt kann ich dir leider nicht sagen.
Hier mein Vorschlag:
Du müßtest den Einkaufswert (EK) durch den gesammtwert der Münzen in Cent Teilen. (bei 1x 2€, 1x 1€ und 1x 0,20€ wären das dann 320) Welche Münzen Du hast fragst Du ja über die Checkboxen ab. Dürfte daher auch kein Problem geben. Und am Ende multiplizierst Du den Wert dann mit dem Münzwert.
Bsp.:
EK / 320 = X
X * 200 = Wert der 2€ - Münze
x * 100 = Wert der 1€ - Münze
X * 20 = Wert der 0,20€ - Münze
Ich hoffe ich konnte Dir weiterhelfen
Gruß Chris
Anzeige
AW: Rechnen mit VBA - Codefehler?
24.08.2005 18:11:01
ChrisBee
Hallo Christian.
Die Formel zur Berechnung ist mir klar. (siehe mein Biespiel)
Zuerst den EK durch den Gesamt-Nennwert der gekauften Münzen teilen und dann jede einzelne
Münze mit dem entstandenen Faktor multiplizieren.
In VBA übersetzt hab ichs auch schon.
Nur weiß ich nicht warum mein Formular manchmal richtig und manchmal völlig falsch
berechnet.
ChrisBee
AW: Rechnen mit VBA - Codefehler?
25.08.2005 13:39:41
Hans
Hallo Chris,
das kommt davon, wenn man zwischen Text- und Numerischen-Variablen hin- und herwechselt und VBA das Casten - das Umrechnen der Datentypen - überlässt. Im übrigen kannst/solltest Du Dir das ganze geTagere sparen...

Private Sub btnCalc_Click()
Dim i As Integer
Dim geld, sum As Double
geld = Array(0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1#, 2#)
If txtEK.Value = "" Then
txtEK.SetFocus
Exit Sub
End If
For i = 1 To 8
sum = sum + geld(i) * Me.Controls("CheckBox" & i).Value
Next
sum = CDbl(txtEK.Value) / sum
For i = 1 To 8
With Me.Controls("TextBox" & i)
.Text = Format(sum * geld(i) * Me.Controls("CheckBox" & i).Value, "0.000")
End With
Next i
End Sub

btw. warum muss man das VBAmäßig erschlagen?
Gruß HW
ppt-user.de
Anzeige
AW: Rechnen mit VBA - Codefehler?
25.08.2005 13:39:57
Hans
Hallo Chris,
das kommt davon, wenn man zwischen Text- und Numerischen-Variablen hin- und herwechselt und VBA das Casten - das Umrechnen der Datentypen - überlässt. Im übrigen kannst/solltest Du Dir das ganze geTagere sparen...

Private Sub btnCalc_Click()
Dim i As Integer
Dim geld, sum As Double
geld = Array(0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1#, 2#)
If txtEK.Value = "" Then
txtEK.SetFocus
Exit Sub
End If
For i = 1 To 8
sum = sum + geld(i) * Me.Controls("CheckBox" & i).Value
Next
sum = CDbl(txtEK.Value) / sum
For i = 1 To 8
With Me.Controls("TextBox" & i)
.Text = Format(sum * geld(i) * Me.Controls("CheckBox" & i).Value, "0.000")
End With
Next i
End Sub

btw. warum muss man das VBAmäßig erschlagen?
Gruß HW
ppt-user.de
Anzeige
AW: Rechnen mit VBA - Codefehler?
25.08.2005 14:24:41
ChrisBee
Hallo HW...
Erstmal vielen Dank für die Mühe. Das werd ich natürlich sofort testen.
Ich habs inzwischen zwar auch gelöst, aber etwas umständlicher.
Das "Getagere" konnte ich schon reduzieren, aber als Anfänger muß man eben auf
das zurückgreifen was man schon kann. ;o)
Was meinst Du mit "VBAmäßig erschlagen"?
Sobald ichs eingebaut hab schreib ich nochmal ne Rückmeldung.
Grüße
ChrisBee
Funktioniert hervorragend!
25.08.2005 15:08:20
ChrisBee
Hallo nochmal.
Das is wohl die 5-Sterne Lösung. :o)
Exakt genau so hab ich mir das gedacht.
Noch die vielen TextBoxen gegen Labels austauschen, das
"getagere" vollständig entfernen, dann ist das ein echt hilfreiches Tool.

Also nochmal vielen Dank und schöne Grüße.
ChrisBee
Anzeige
Danke für die Rückmeldung
25.08.2005 16:22:23
Hans
Weniger ist mehr ;-)...
Gruß HW
ppt-user.de

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige