Hallo, einen schönen Sonntagmorgen, nach Anleitung eines Videos aus dem Internet von Kai Weissmann, habe ich mir eine Userform nachgebaut, mit dem Werte in eine Exceltabelle eingetragen werden. Das funktioniert auch einwandfrei, mein Problem ist allerdings das die Zahlenwerte, die in die Exceltabelle eingetragen werden als Text dargestellt werden. Damit kann nicht weitergerechnet werden, z.B. Menge * Einzelpreis = Gesamtpreis Wie müsste der Code angepasst werden damit die Eingabefelder Einzelpreis und Gesamtpreis als Währung deklariert sind und berechnet werden. Wie gesagt habe ich die Userfom und den Code nachgebaut und an meine Tabelle angepasst, aber meine VBA-Kenntnisse reichen nicht um den Code anzupassen. Vielleicht hat mal jemand Zeit der sich mit VBA auskennt, mal zu schauen.
21.04.2024, 11:31 (Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2024, 11:32 von RPP63.)
Moin! Nicht falsch verstehen! Ich verstehe nicht, was an einem Userform so toll sein soll, dass gerade Leute, die sich damit so gar nicht auskennen, so gerne damit herumspielen.
Zum Thema (die Datei habe ich nicht angesehen): Eine Textbox liefert erstaunlicherweise Text. Um einen Text als Dezimalzahl an eine Zelle zu übergeben, muss ich • erst einmal mittels If IsNumeric(Textbox) Then prüfen, ob sich der Text umwandeln lässt • um ihn dann mittels CDbl(Textbox) zur Dezimalzahl zu machen.
Das Zahlenformat Währung gibst Du natürlich vorher der Zelle mit (manuell, ginge zwar auch per VBA, nur wozu?). Du kannst auch einer Textbox ein "Format" mittels Format() mitgeben. Denn schließlich ergibt IsNumeric("17,23 €") → True Folglich funktioniert CDbl("17,23 €") → 17,23 (Zellformat siehe oben)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Hallo an die fleißigen Helfer, vielen Dank an Alle. den Tipp von Edgar habe ich umgesetzt und es hat funktioniert, vielen Dank Edgar.
Hallo Ralf, du hast ja Recht, aber Eingaben zu machen über eine UF hat mich schon immer interessiert, wollte das mal umsetzen und hat auch funktioniert bis auf die Textfelder, die ja Zahlenwerte beinhalten sollen um damit weiter zu rechnen. Ich habe es auch mal mit der Excel eigenen Maske versucht, aber das ist dasselbe, kommt auch Text raus. Naja, über die Funktion CBdl umwandeln funktioniert das ja. So weit so gut, jetzt habe ich aber noch eine Frage: wie müsste ich denn den VBA Code erweitern/umschreiben damit in der Spalte mit dem Gesamtpreis automatisch die Menge mit dem Einzelpreis multipliziert wird?
Private Sub btnAnlegen_Click() Dim i&, arr(): arr = Array(CDate(txtDatum), txtHändler.Value, txtArtikel.Value, txtEinheit.Value, CbKategorie.Value, txtMenge, txtEinzelpreis, txtGesamtpreis) For i = 5 To 7 If IsNumeric(arr(i).Value) Then arr(i) = CDbl(arr(i)) Next i Tabelle1.ListObjects(1).ListRows.Add.Range.Resize(1, UBound(arr) - LBound(arr) + 1) = arr End Sub
nun habe ich deinen Code kopiert und eingefügt und ja funktioniert Super. Danke dafür. Aber wie könnte man das machen, damit in der Spalte Gesamtpreis die Menge mit dem Einzelpreis multipliziert wird. Ich habe versucht die Formel in die Zeile einzufügen, wird aber dann beim Code ausführen, indem eine neue Zeile eingefügt wird, überschrieben. . Jetzt weiß ich nicht mehr weiter.