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.

VBA Fehler Routine?
#1
Hallo liebe Excel Freunde,


ich habe eine Userform, wo man viele Zahlen in Textboxen eingibt (Bild Angehängt). Am Ende wird es dann jeweils in Labeln zusammen gerechnet und diese Ergebnise werden später in eine Tabelle übertragen.

Problem, sobald man in einer Textbox die Zahlen komplett löscht, kommt eine Fehlermeldung und man kann den debugger öffnen.
Da, wenn ich irgendwann mal Urlaub bekommen sollte, jemand anderes die Eintragungen vornimmt, ist das natürlich extrem doof.
Ich hoffe ihr versteht was ich meine.


Da es ein riesen Code ist, schreibe ich euch hier mal nur den Code für Innenbäckchen. Bei allen anderen Sieht der Code gleich aus
Bei Start der Userform:
Code:
Private Sub UserForm_Initialize()
Innen = "0"            'Label

Innen1 = "0"           'Textboxen
Innen2 = "0"
Innen3 = "0"
Innen4 = "0"
Innen5 = "0"
Innen6 = "0"
Innen7 = "0"
Innen8 = "0"
Innen9 = "0"

TextBox1 = ""          'Datum
TextBox2 = "0"         'Köpfe

End Sub

Berechnung:
Code:
Private Sub Innen1_Change()
Innen = CDbl(Innen1)
End Sub

Private Sub Innen2_Change()
Innen = CDbl(Innen1) + CDbl(Innen2)
End Sub

Private Sub Innen3_Change()
Innen = CDbl(Innen1) + CDbl(Innen2) + CDbl(Innen3)
End Sub

Private Sub Innen4_Change()
Innen = CDbl(Innen1) + CDbl(Innen2) + CDbl(Innen3) + CDbl(Innen4)
End Sub

Private Sub Innen5_Change()
Innen = CDbl(Innen1) + CDbl(Innen2) + CDbl(Innen3) + CDbl(Innen4) + CDbl(Innen5)
End Sub

Private Sub Innen6_Change()
Innen = CDbl(Innen1) + CDbl(Innen2) + CDbl(Innen3) + CDbl(Innen4) + CDbl(Innen5) + CDbl(Innen6)
End Sub

Private Sub Innen7_Change()
Innen = CDbl(Innen1) + CDbl(Innen2) + CDbl(Innen3) + CDbl(Innen4) + CDbl(Innen5) + CDbl(Innen6) + CDbl(Innen7)
End Sub

Private Sub Innen8_Change()
Innen = CDbl(Innen1) + CDbl(Innen2) + CDbl(Innen3) + CDbl(Innen4) + CDbl(Innen5) + CDbl(Innen6) + CDbl(Innen7) + CDbl(Innen8)
End Sub

Private Sub Innen9_Change()
Innen = CDbl(Innen1) + CDbl(Innen2) + CDbl(Innen3) + CDbl(Innen4) + CDbl(Innen5) + CDbl(Innen6) + CDbl(Innen7) + CDbl(Innen8) + CDbl(Innen9)
End Sub

Klick auf OK Button:
Code:
Private Sub CommandButton1_Click()
Dim x As Long


   
x = Sheets("Produktion").Range("A65536").End(xlUp).Row


Sheets("Produktion").Cells(x + 1, 1) = CDate(TextBox1.Text)
Sheets("Produktion").Cells(x + 1, 2) = CDbl(Format(TextBox2.Text, Number))
Sheets("Produktion").Cells(x + 1, 3) = CDbl(Format(Innen, Number))

TextBox1 = ""
TextBox2 = "0"

Innen = "0"

Innen1 = "0"
Innen2 = "0"
Innen3 = "0"
Innen4 = "0"
Innen5 = "0"
Innen6 = "0"
Innen7 = "0"
Innen8 = "0"
Innen9 = "0"

ActiveWorkbook.Save
End Sub


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo,

jetzt nur ein Beispiel (außerdem die Kettung von deinen TextBoxen reicht es so)

Code:
Private Sub Innen2_Change()
Innen = Innen + CDbl(Val(Innen2))
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Super danke,

habe es jetzt so umgesetzt, damit es auch keine Probleme gibt, wenn die Reihenfolge nicht eingehalten wird


Code:
Private Sub Innen1_Change()
Innen = CDbl(Val(Innen1)) + CDbl(Val(Innen2)) + CDbl(Val(Innen3)) + CDbl(Val(Innen4)) + CDbl(Val(Innen5)) + CDbl(Val(Innen6)) + CDbl(Val(Innen7)) + CDbl(Val(Innen8)) + CDbl(Val(Innen9))
End Sub


Dann brauche ich es ja auch theoretisch nicht mehr mit 0 füllen lassen.
Antworten Top
#4
Hallo,

als Nachtrag: Voraussetzung ist bei der Benutzung von Val dass Du nur ganze Zahlen eingibst.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#5
Sind zum Glück nur Ganzzahlen
Aber danke für den Hinweis :)
Antworten Top


Gehe zu:


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