Combobox



  • Combobox
    di cristian (utente non iscritto) data: 22/04/2013 22:02:22

    ciao a tutti
    avrei una domanda da fare,
    ho una combobox con menù a discesa in una userform, è possibile definire che il primo termine dell'elenco sia sempre presente nella relativa casella all'apertura della userform, e che possa essere poi scelta se necessario un altro termine, oppure che rimanga il termine predefinito, il termine in questione è il primo dell'elenco.
    spero di essermi spiegato.
    grazie fin d'ora dell'aiuto.



  • di totygno71 data: 22/04/2013 22:08:25

    bah...
    semplicemente basta definire il valore della combo quando la userform viene inizializzata_
     
    Private Sub UserForm_Initialize()
    Me.ComboBox1.Value = "ciao"
    End Sub



  • di cristian (utente non iscritto) data: 22/04/2013 23:02:15

    ciao totygno71
    grazie per la pronta risposta
    la userform è quella con le 6 combobox per la quale mi hai validamente aiutato (per essere preciso l'hai fatta tu) , ho provato ad inserire la riga di comando, è nel posto giusto?
    se si al primo avvio non inserisce nulla poi una volta messo il primo valore ( _ ) lo mantene, ma non si può più inserire null'altro perchè obbliga solo a quel valore.
    grazie

     
    Option Explicit
    
    Private Sub ComboBox1_Change()
     Me.ComboBox1.Value = "_"  <===========
    End Sub
    Private Sub ComboBox2_Change()
     Me.ComboBox2.Value = "_"
    End Sub
    Private Sub ComboBox3_Change()
     Me.ComboBox3.Value = "_"
    End Sub
    Private Sub ComboBox4_Change()
     
    End Sub
    Private Sub ComboBox5_Change()
     
    End Sub
    Private Sub ComboBox6_Change()
     
    End Sub
    
    Private Sub CommandButton1_Click()
    
    Dim rng1 As Range, rng2 As Range, cells As Range, rng3 As Range, c As Range
    'Dim giorno As String
    
    'giorno = Left(ComboBox3, 3)
     'giorno = ComboBox3
    Set rng1 = Sheets("elenco").[H3:H25] 'originale
    
    Range("A1").End(xlUp).Select 'originale
    ActiveCell.Offset(1).Activate ' originale
    
    For Each c In rng1
           
            If c.Value = "" Then Exit For
                 
            If c.Value = ComboBox1.Value Then
            ActiveCell.Value = c.Offset(, 1)
            ActiveCell.Offset(0, 1).Value = ComboBox2.Value
            ActiveCell.Offset(0, 2).Value = ComboBox3.Value
            ActiveCell.Offset(0, 3).Value = ComboBox4.Value
            ActiveCell.Offset(0, 4).Value = ComboBox5.Value
            ActiveCell.Offset(0, 5).Value = ComboBox6.Value
            End If
            
    Next c
    
    ComboBox1 = ""
    ComboBox2 = ""
    ComboBox3 = ""
    ComboBox4 = ""
    ComboBox5 = ""
    ComboBox6 = ""
    
    UserForm1.Hide



  • di totygno71 data: 23/04/2013 08:38:27

    Ciao cristian
    Private Sub ComboBox1_Change()
    Me.ComboBox1.Value = "_" <=========== ' mettenedo questo ordine nell'evento Change della comboxo1 dici che ad ogni cambio contenuto della combo lui deve sempre inserire il simbolo "_"
    se vuoi che il simbolo compaia solo alla prima apertura sostituisci l'evento change con initialize, se invece vuoi che ad ogni richiamata della form metti l'evento activate_
    End Sub
    Spero di essere stato "spiegato" ^_^
    Ciao
     
    Private Sub ComboBox1_Change()
     Me.ComboBox1.Value = "_"  <=========== ' mettenedo questo ordine nell'evento Change della comboxo1 dici che ad ogni cambio contenuto della combo lui deve sempre inserire il simbolo "_"
    se vuoi che il simbolo compaia solo alla prima apertura
    End Sub