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.

UF Reset nach Textbox zu Zahl nicht möglich
#1
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
Antworten Top
#2
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.
Schöne Grüße
Berni
Antworten Top
#3
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
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)
Antworten Top
#4
Hier mal eine kleine Testmappe:


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 16,17 KB / Downloads: 3)
Antworten Top
#5
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
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Silvr
Antworten Top
#6
Ergänzend zu Berni:
Warum nimmst Du überhaupt das _Change??
Nimm das _Exit und Du hast keine Probleme.

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)
Antworten Top
#7
Hallo Berni,

Dein Beispiel geht aber auch ohne Abfrage auf Leer. Blush

Gruß Uwe
Antworten Top
#8
Hi Uwe!

Äh... wie meinen? Bei mir hat es im Test wunderbar geklappt, worauf willst du hinaus?
Schöne Grüße
Berni
Antworten Top
#9
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
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)
Antworten Top
#10
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
Antworten Top


Gehe zu:


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