cancellare campi userform
Hai un problema con Excel? 
cancellare campi userform
di mcutolo data: 20/07/2017 16:20:55
Buonasera
ho creato una userform con textbox e combobox. Vorrei inserire un pulsante che mi permetta di cancellare tutti i campi della userform.
Private Sub ComboBox1_Change()
End Sub
Private Sub ComboBox2_Change()
End Sub
Private Sub ComboBox3_Change()
End Sub
Private Sub ComboBox4_Change()
End Sub
Private Sub CommandButton1_Click()
If TextBox1 = "" Then 'controlla che il textbox1 non sia vuoto, se è vuoto allora
MsgBox "Inserire il nr rata" 'avvisa con un messaggio
TextBox1.SetFocus 'posiziona il focus sul textbox1
Exit Sub 'ed esce dalla routine senza completare il resto delle istruz.
End If
Dim Uriga As Long
Uriga = Sheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row + 1 'avrai la prima cella vuota
Sheets("Foglio1").Cells(Uriga, 1) = TextBox1.Text
Sheets("Foglio1").Cells(Uriga, 2) = ComboBox1.Text
Sheets("Foglio1").Cells(Uriga, 3) = ComboBox2.Text
Sheets("Foglio1").Cells(Uriga, 4) = TextBox4.Text
Sheets("Foglio1").Cells(Uriga, 5) = TextBox7.Text
Sheets("Foglio1").Cells(Uriga, 6) = TextBox8.Text
Sheets("Foglio1").Cells(Uriga, 7) = ComboBox3.Text
Sheets("Foglio1").Cells(Uriga, 8) = ComboBox4.Text
Sheets("Foglio1").Cells(Uriga, 9) = TextBox9.Text
Sheets("Foglio1").Cells(Uriga, 10) = TextBox10.Text
Sheets("Foglio1").Cells(Uriga, 11) = TextBox11.Text
Sheets("Foglio1").Cells(Uriga, 12) = TextBox12.Text
End Sub
Private Sub CommandButton2_Click()
Unload Me
Set UserForm1 = Nothing
End Sub
Private Sub Label4_Click()
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
Private Sub TextBox4_Change()
End Sub
Private Sub UserForm_Initialize()
Sheets("DITTA").Select
UserForm1.ComboBox1.RowSource = "DITTA!a1:a5000"
UserForm1.ComboBox2.RowSource = "ENTE!a1:a1000"
UserForm1.ComboBox3.RowSource = "SEZIONE!a1:a1000"
UserForm1.ComboBox4.RowSource = "CODICETRIBUTO!a1:a5000"
End Sub
|
di Totygno71 (utente non iscritto) data: 21/07/2017 09:29:34
Essendo CommandButton2 il pulsantone sulla tua userform e supponendo che lu tue textbox siano 12 (ciclo da 1 a 12)_
Stessa cosa puoi fare per le combobox_
Spero che lo spunto di riflessione ti sia utile (è solo un modo ma ce ne possono essere anche altri ovviamente come per esempio ciclare tutti i controlli della tua userform e poi in funzione del tipo di controllo effettuare l'operazione desiderata)
Private Sub CommandButton2_Click()
Dim lng As Long
With Me
For lng = 1 To 12
.Controls("TextBox" & lng).Text = ""
Next
End With
End Sub |
di Vecchio Frac data: 21/07/2017 10:31:46
cit. "ciclare tutti i controlli della tua userform e poi in funzione del tipo di controllo "
---> Che era quello cui pensavo io ciao Toty ben rivisto ;)
di mcutolo data: 28/07/2017 17:37:22
Ho risolto cosi'
grazie per la risposta
Private Sub CommandButton3_Click()
Dim obj As Control
For Each obj In Me.Controls
If TypeOf obj Is MSForms.TextBox Then
obj.Text = ""
End If
Next
For Each obj In Me.Controls
If TypeOf obj Is MSForms.ComboBox Then
obj.Text = ""
End If
Next
End Sub |
di CarlettoFed (utente non iscritto) data: 28/07/2017 21:19:03
Puoi abbreviare il codice scrivendo:
Private Sub CommandButton3_Click()
Dim obj As Control
For Each obj In Me.Controls
If TypeOf obj Is MSForms.TextBox Or TypeOf obj Is MSForms.ComboBox Then
obj.Text = ""
End If
Next
End Sub
di mcutolo data: 29/07/2017 17:58:17
Grazie!!!
Vuoi Approfondire?