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.

Userform Summe berechnen, mit anderem Textboxwert addieren und ausgeben
#1
Moin zusammen,
ich versuche die Summe eines Zellenbereichs mit dem Wert einer Textbox zu verrechnen und diese in einer weiteren Textbox als Gesamtergebnis anzuzeigen.

Dies war mein letzter Versuch:

Private Sub TextBox6_Change()
Dim Summe1 As Integer
Summe1.Value = WorksheetFunction.Sum(Range("H5:H370"))
Gesatsumme = Summe1 + CDbl(TextBox5.Value)
TextBox6.text = Gesamtsumme


Wer könnte mit weiterhelfen?

Gruß
Björn
Antworten Top
#2
Hallo Björn, 19 

lösche bei "Summe1.Value" das ".Value" - und schreibe "Gesamtsumme" nicht einmal so "Gesatsumme" und einmal so "Gesamtsumme". Also dimensioniere es, dann musst du es richtig schreiben.

Ich würde hier auch nicht Integer nehmen. 21
________
Servus
Case
Antworten Top
#3
(02.07.2022, 21:18)Case schrieb: Hallo Björn, 19 

lösche bei "Summe1.Value" das ".Value" - und schreibe "Gesamtsumme" nicht einmal so "Gesatsumme" und einmal so "Gesamtsumme". Also dimensioniere es, dann musst du es richtig schreiben.

Ich würde hier auch nicht Integer nehmen. 21

Moin,
danke für die Antwort.
Da ich noch immer blutiger VBA-Neuling bin folgende Frage:
Warum nicht Integer, wegen Kommazahlen?

Die vorgeschlagenen Änderungen haben nicht wirklich geholfen.

Es kam die Fehlermeldung, dass eine Variable nicht definiert ist und das Wort "Gesamtsumme" wurde blau unterlegt.
Daraufhin habe ich
"Dim Gesamtsumme As Double"
hinzugefügt.

Ich habe daraufhin alle Datentypen bis auf Boolean, Date, Longlong, Singel, Object und Date ausprobiert und ich bekomme immer dieselbe Fehlermeldung:
Laufzeitfehler 13, Typen unverträglich.

Aktuelle sieht der Code so aus:

Private Sub TextBox6_Change()
Dim Summe1 As Double
Dim Gesamtsumme As Double
Summe1 = WorksheetFunction.Sum(Range("H5:H370"))
Gesamtsumme = Summe1 + CDbl(TextBox5.Value)
TextBox6.text = Gesamtsumme
End Sub
Antworten Top
#4
Hallo Björn, 19 

Double ist hier die richtige Wahl. In meiner Beispieldatei funzt das: 21

.xlsb   UF_UserForm_mit_Range_und_TextBoxen_rechnen.xlsb (Größe: 18,85 KB / Downloads: 4)

Ich habe noch den CodeNamen (der Name VOR der Klammer im VBA-Editor) des Tabellenblattes vor Range geschrieben. Hilft, wenn du bei Ausführung der UserForm nicht auf dem Tabellenblatt bist, wo du die Summe bilden willst.

Ob das Change-Ereignis der TextBox6 das richtige Ereignis ist kannst nur du wissen. Es kommt immer auf die Arbeitsweise bzw. was du erreichen willst an. Dodgy
________
Servus
Case
Antworten Top
#5
Moin,
nochmals danke für Deine Antwort, aber ich bin jetzt noch ratloser als vorher.
Dein Beispiel funktioniert bei mir nicht, außer der 10 sehe ich nichts in der UF.

Ob das Change-Ereignis der TextBox6 das richtige Ereignis ist, kannst nur du wissen.

Wenn man Ahnung hat, vielleicht.
Wie gesagt, davon bin ich noch ganz weit entfernt.

Folgendes...
ich bin dabei eine Art Kalender zu erstellen.
In der ich über eine Userform die Arbeitszeit von-bis eingebe (TextBoxen 2 und 3), in der die Arbeitszeit automatisch berechnet wird (Textbox4) und die Überstunden pro Tag extra (Textbox5) ausgewiesen und in einen "Kalender" eingetragen werden.
Das funktioniert einwandfrei.

Jetzt möchte ich die Gesamtüberstunden in einer weiteren Textbox(6) anzeigen lassen.
Die zum einen aus den bereits erfassten Überstunden (Range H5 bis H370) bestehen, welche beim öffnen der Userform in der Textbox6 angezeigt werden.

Wenn ich jetzt einen neuen Eintrag vornehme, möchte ich, dass mir angezeigt wird, wie sich die Gesamtüberstundenzahl (TextBox6) durch den Neueintrag verändern wird und möchte nicht bis zum nächsten Öffnen der Userform warten.

Im Vorfeld habe ich für alle anderen TextBox-Codes als Ereignis "Change" gewählt und deshalb habe ich auch für den TextBox6-Code "Change" gewählt.
Antworten Top
#6
(03.07.2022, 19:39)Björn.412 schrieb: Moin,
nochmals danke für Deine Antwort, aber ich bin jetzt noch ratloser als vorher.
Dein Beispiel funktioniert bei mir nicht, außer der 10 sehe ich nichts in der UF.

Hallo Björn, 19 

doch das Beispiel funktioniert. Du hat ja das "Change-Ereignis" gewählt. Das habe ich dann auch gemacht. Das muss natürlich ausgelöst werden. Das kannst du auch gleich machen, wenn du in TextBox5 eine Zahl eingibst. Ich habe da eine 10 fest eingegeben - ich kenne ja deine Daten nicht bzw. was du machst. Dodgy

Also wenn du in TextBox6 bist, dann z. B. mal die Leertaste betätigt, oder irgendeine Taste, dann klappts auch mit dem Nachbarhund. Oder wie in folgendem Beispiel in TextBox5 eine Zahl schreiben: 21
 
.xlsb   UF_UserForm_mit_Range_und_TextBoxen_rechnen_1.xlsb (Größe: 18,65 KB / Downloads: 4)

Falls du garnicht klar kommst, könntest du eine Beispieldatei zur Verfügung stellen. Ich habe keine Lust nach Vorgabe eine selber zu basteln und dann zu hören, dass das in deiner Datei nicht funktioniert. 21
________
Servus
Case
Antworten Top
#7
Moin,
sorry, dass ich mich erst jetzt für Deine erneute Antwort bedanke.

Dein Beispiel funktioniert und weicht in einem Punkt von meiner Datei ab.
Bei mir wird in der TextBox 6 bereits ein Wert angezeigt, bevor durch eine weitere Eingabe der Wert in der Textbox 6 neu berechnet werden soll.

Anbei mein Kalender (der befindet sich noch im Rohbau, nicht über Datenmüll wundern)

Funktion:
Über neu oder durch klicken auf ein Datum öffnet sich die Userform.
Man gibt ein Datum ein "13.01.2022"
Die Uhrzeiten für den Arbeitstag "7:00 und 16:30"
TextBox 4 berechnet die Arbeitsstunden des Tages.
TextBox 5 weist die Überstunden des Tages aus.
TextBox 6 zeigt die Gesamtüberstunden beim Öffnen der Userform an.
Ziel TextBox6 = Die angezeigten Gesamtüberstunden neu zu berechnen, wenn TextBox5 einen Wert >< "0" ausweist und bevor die Userform neu gestartet wird.


Angehängte Dateien
.xlsm   Arbeitskalende.xlsm (Größe: 81,39 KB / Downloads: 2)
Antworten Top
#8
PHP-Code:
Private Sub TextBox5_Change()
   Textbox6 = [sum(H5:H370)]+Textbox5
End Sub 

TextBox5_change
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Björn.412
Antworten Top
#9
Hallo Björn, 19 

schau dir die Unterschiede an: 21

.xlsm   Arbeitskalender_CEF.xlsm (Größe: 62,39 KB / Downloads: 5)
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Björn.412
Antworten Top
#10
(09.07.2022, 16:38)Case schrieb: Hallo Björn, 19 

schau dir die Unterschiede an: 21

Moin,
mal wieder meinen herzlichsten Dank für Deine Hilfe.

Und wie ich sehen konnte, war ich der Lösung schon mal sehr nahe.

Weiter konnte ich sehen, dass Du so nett warst und bereits meinen nächsten Punkt einen Schubs gegeben hast.
Antworten Top


Gehe zu:


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