ich stehe gerade etwas auf dem Schlauch. Da ich bei der Arbeit öfter die Summe von drei Werten in eine Zelle eingeben muss, habe ich mir eine Userform gebastelt, die drei Textfelder enthält. Dort gebe ich die Zahlen ein und in der aktiven Zelle wird die Summe ausgegeben. So weit so gut. Bisher habe ich noch einen OK-Button mit auf der Form gehabt, mit dem dann der entsprechende Code ausgeführt wurde. Das funktionierte auch einwandfrei.
Da ich mir auch den Button sparen wollte, habe ich die Berechnung auf das Exitereignis der letzten/dritten Textbox geändert. Nach der Berechnung wird über Offset die nächste Zelle nach unten ausgewählt. Das Problem: Das Ergebnis der Berechnung wird jetzt in zwei untereinander liegende Zellen, also z.B. in Zelle A1 und A2 geschrieben und danach A3 aktiviert, wenn A1 die aktive Zelle bei Aufruf der Userform war.
Ich kann mir aber nicht erklären, warum das so ist. Hat jemand eine Idee?
Private Sub cmdSumme_Click()
UserFormEingabe.Show
End Sub
Private Sub UserForm_Initialize()
txtWert1.SetFocus
End Sub
Private Sub txtWert3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim dblSumme As Double
Dim cnt As Control
On Error GoTo Fehler
dblSumme = ActiveCell.Value
For Each cnt In Me.Controls
If InStr(1, cnt.Name, "txtWert") Then
If cnt.Value "" Then
dblSumme = dblSumme + (cnt.Value * 1)
End If
End If
Next
ActiveCell = dblSumme
ActiveCell.Offset(1, 0).Select
Unload Me
Exit Sub
Fehler:
MsgBox "Es dürfen nur Zahlen eingegeben werden!"
Unload Me
End Sub
Und die Datei: https://www.herber.de/bbs/user/125374.xlsm
In der Firma habe ich ein Terminal mit Windows Server 2008 (glaube ich) und Office 2010, dort habe ich den Code in meiner personal.xlsb und rufe ihn mit strg-e auf.
Hier läuft Office 365 unter Win 10. Aufruf wie oben beschrieben über Button. Der Effekt ist der gleiche.
Wenn ich einen Fehler generiere indem ich Text in eine Textbox eingebe, kommt auch die Msgbox mit der Fehlermeldung zweimal.
Gruß
Kai