cancellare campi userform



  • 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!!!