Clever-Excel-Forum

Normale Version: UF Reset nach Textbox zu Zahl nicht möglich
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
HI,

nachdem die Umwandlung von Tesxtfeldern in Zahlen für die Ausgabe auf dem Tabellenblatt klappt  mit "*1"


Code:
Worksheets("Team A").Range("g4").Value = Me.TextBox3 * 1

kann ich leider meinen Reset-button auf der UF nicht mehr nutzen. Ich bekomme hier den LZF 13: Typen unverträglich.
Code vom Resetbutton:
Code:
Private Sub CommandButton10_Click()

Dim objControl As Control

  For Each objControl In Controls
     Select Case TypeName(objControl)
        Case "TextBox"
           objControl.Text = ""
        Case "ComboBox"
           objControl.ListIndex = -1
        Case "CheckBox"
           objControl.Value = False
        Case "OptionButton"
           objControl.Value = False
     End Select
  Next

End Sub

Da muss doch bestimmt noch etwas spezielles dazu, oder?

Danke
Ohne Mappe sehr schwer zu erraten...

Vielleicht
Code:
 For Each objControl In Controls
    Select Case TypeName(objControl)
       Case "TextBox"
          UserForm1.objControl.Text = ""


Heißer Tipp für VBA-Anfänger: Einzelschrittmodus mit F8, dann siehst du genau in welcher Zeile bzw. bei welchem Control es hapert.
Moin!
Zitat:Ich bekomme hier den LZF 13: Typen unverträglich.

In welcher Zeile?
Ich sehe auf Anhieb keinen Anlass für den LZF.

Beispieldatei mit dem Userform?

Gruß Ralf
Hier mal eine kleine Testmappe:
Und genau deshalb soll man im Einzelschrittmodus durchgehen, dann wäre dir der Fehler aufgefallen. Der Fehler liegt nämlich in den TextBox_Change()-Ereignissen. Jedes mal, wenn du die Textboxen löschst, löst du damit diese Ereignisse aus. Und nachdem du einen Leerstring in den gelöschten Textboxen hast, kann Excel den Befehl nicht ausführen. Denn ein Leerstring kann nicht mit 1 multipliziert werden. Löse es zB so
Code:
Private Sub TextBox1_Change()
If Me.TextBox1 <> "" Then Worksheets("S1").Range("a1").Value = Me.TextBox1
End Sub
Ergänzend zu Berni:
Warum nimmst Du überhaupt das _Change??
Nimm das _Exit und Du hast keine Probleme.

Gruß Ralf
Hallo Berni,

Dein Beispiel geht aber auch ohne Abfrage auf Leer. Blush

Gruß Uwe
Hi Uwe!

Äh... wie meinen? Bei mir hat es im Test wunderbar geklappt, worauf willst du hinaus?
Uwe meinte, dass Worksheets("S1").Range("a1").Value = Me.TextBox1 reicht.
(da hier ja die Multiplikation fehlt und es somit nicht zum LZF kommen kann)
Wink

@Silvr:
Ich meinte das so (im _Exit-Event!):
If IsNumeric(TextBox1) Then Worksheets("S1").Range("A1") = CInt(TextBox1)

Gruß Ralf
Danke

Hab es jetzt so gelöst:
Code:
Private Sub TextBox13_Change()
If Me.TextBox13 <> "" Then Worksheets("DI").Range("d4").Value = Me.TextBox13 * 1
End Sub
Seiten: 1 2