Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel VBA
#1
Hallo
Heute habe ich mal wieder Zeit mich mit Excel / VBA zu beschäftigen.

Ich erkläre mal kurz was ich vor habe.
Ich bin dabei, mir ein Art Ernährungsplan zu erstellen.
Unter anderem habe ich erstens, eine weitere Eingabemaske (Userform) mit der ich Lebenmittel mit Angaben zu den Nährwerten in eine Tabelle (Lebensmitteltabelle) eintragen kann.
Um das Userform, um das es geht soll jetzt folgendes passieren.
Als erstes kann man die Lebensmittel aus Lebensmitteltabelle per DropDawn auswählen und es werden dann automatisch die Nährwerte mit ins Userform übernommen.
Insgesamt gibt es 6 Reihen die wie folgt aussehen

Lebensmittel1 - Kategorie1 -  Menge1 - Kohlenhydrate1 - Fett1 - Eiweiß1 - Ballastoffe1 - Kalorien1
Lebensmittel2 - Kategorie2 -  Menge2 - Kohlenhydrate2 - Fett2 - Eiweiß2 - Ballastoffe2 - Kalorien2
usw. bis 6

Dann kommt eine weitere Reihe wo die gesamten Nähewerte zusammen gerechnet werden sollen.

GESAMT - Menge7 - Kohlenhydrate7 - Fett7 - Eiweiß7 - Ballastoffe7 - Kalorien7

Und jetzt kommt noch eine Reihe in der man jetzt aus den 6 ausgewählten Lebenmittel ein Rezept erstellen kann.Es soll ein Rezeptname in ein Textfeld geschrieben werden und das dann auf 100g automatisch berechnet werden.

Rezeptname - Kategorie8 -  Menge8 - Kohlenhydrate8 - Fett8 - Eiweiß8 - Ballastoffe8 - Kalorien8

Danach soll durch klicken eines Buttons, der gesamte Inhalt vom Userform in eine Tabelle (Rezepttabelle) einfügt werden.(Damit man auch nach einem halben Jahr noch nachvollziehen kann, woraus das Rezept ursprünglich bestand).Und nur das Rezept (letzte Reihe des Userform) mit Namen und Nährwerten soll dann in die Lebensmitteltabelle einfügt werden.

Ich hoffe man versteht, worauf ich hinaus möchte.

Kurze Erläuterung zu meinem Problem:
Ich kann per DropDawn Liste in einem Userform Daten aus einer Tabelle integrieren.
Beispiel:
Nahrungsmittel1 auf 100g  mit jeweils 10g einweiß, 18g Kohlenhydrate usw. werden in Userform/Textfelder eingetragen

Jetzt möchte ich, wenn ich im Userform die Menge z.B. auf 200g ändere, dass die Zahlenwerte für Kohlenhydrate, Eiweiß etc. automatisch aktualisiert werden.


Code zuzeit
Private Sub txtMenge1_Change()
    If CDbl(txtMenge1) <> 100 Then 
           txtKohlenhydrate1.Value = CDbl(txtKohlenhydrate1) * CDbl(txtMenge1) / 100
    End If
End Sub

Problem ist jetzt folgendes
Er aktualisiert zwar z.B. im Textfeld Kohlenhydrate was sobald eine Eingabe erfolgt, rechnet aber nicht mit dem Ursprungswert von zb. 10g oder 18g.
Sobald ich anfange die Zahl in Menge auf 200g zu ändern passiert jetzt folgendes.
Wenn ich  jetzt anfange die Zahl  auf 2 ändere, stimmt das Ergebnis noch. Möchte ich aber jetzt eine 0 hinzufügen, geht er nicht mehr von 10g bzw 18g aus, sondern von denm Wert der bei einer 2 berechnet wurde. Somit stimmt das Ergebnis nicht mehr. Bei 2 kommen bei 10g ja erst mal 0.2g aus, füge jetzt jetzt aber ne 0 hinzu, sollen eigentlich 2 rauskommen. Es kommt dann aber 0,04 raus.

Danke im Vorraus
Antworten Top
#2
Hallo

dann nimm nicht das Change-Ereignis der TextBox sondern z.B. das Exit-Ereignis

MfG Tom
Antworten Top
#3
Danke für die Antwort
Ich möchte schon das es automatisch bei Eingabe aktualisiert wird.
Und selbst wenn ich mit exit arbeite, stimmt das  zwar bei der ersten Eingabe.
Wenn man sich  aber z.B. verschrieben hat, geht er vom neuen Wert aus und nicht von ursprünglichen.
Also stimmt somit das Ergebnis auch nicht mehr.
Ich bräuchte wenn ggf einen Anhaltpunkt wie der Quelltext aussehen müsste. Danke
Antworten Top
#4
Hallöchen,

stehen denn die ursprünglichen Werte in einem Tabellenblatt?
Dann kannst Du anschließend den Faktor ermitteln und die anderen TextBoxen neu berechnen.

Also nicht
CDbl(txtMenge1) / 100

sondern
CDbl(txtMenge1) / Cells(1,1)

wenn der alte Wert in A1 steht.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Ahcas
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste