Imporre il solo utilizzo della lista del cbobox



  • Imporre il solo utilizzo della lista del cbobox
    di Raelear data: 27/03/2015 18:45:19

    Salve a tutti,
    per un cboBox specifico, desidero impedire l'inserimento da tastiera e forzare quindi al solo uso della lista caricata nel cboBox stesso.
    Ho provato con la funzione _KeyPress come da codice riportato sotto, ma dopo avermi presentato il messaggio previsto, comunque mi scrive il carattere del tasto che ho premuto sulla tastiera..
    C'é un modo per evitarlo?
     
    Private Sub cboPst_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Select Case KeyAscii
            Case 0 To 255
            Beep
            Msgbox "Selezionare un nome dalla lista", vbOKOnly, "miotitolo"
        End Select
    End Sub



  • di Raelear data: 27/03/2015 19:21:34

    ..scusate, completo la domanda..

    ovviamente posso inserire un controllo su ció che appare scritto nel cboPst, del tipo: cerco nella lista ció che appare in cboPst e, se é <> da qualsiasi nome della lista, allora cboPst = "" (come da codice sotto allegato),
    ma mi chiedevo se esiste un metodo piú diretto.
    Grazie dinuovo per l'attenzione
     
    Private Sub cboPst_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Select Case KeyAscii
            Case 0 To 255
            Beep
            Msgbox "Selezionare un nome dalla lista", vbOKOnly, "miotitolo"
        End Select
    End Sub
    
    
    'dichiarazione variabili a parte...
    If cboPst <> "" Then
        With shPst
            r = .Range("C" & Rows.Count).End(xlUp).Row
            found = False
            For Each cercap In .Range("C8:C" & r)
                If cercap = cboPst Then
                    found = True
                    txtPst = cercap.Offset(0, -1)
            Exit For
                End If
            Next
            If found = False Then
                    txtPst = ""
                    cboPst = ""
            End If
        End With
    End If



  • di scossa data: 27/03/2015 20:06:06

    Non ti basta impostare a 2 la proprietà Style della combobox?



    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di Raelear data: 27/03/2015 20:22:04

    ciao scossa,
    non conoscevo questa proprietá.. sono alle prime armi.. quindi innanzitutto grazie per l'opportunitá che mi hai dato..
    in merito al mio caso, non sembra che la soluzione faccia al caso mio.. quando premo un tasto qualsiasi della tastiera mi restituisce direttamente il primo valore della lista nella cboBox, sebbene mi faccia il dropdown della stessa.. nel mio caso la lista puó contenere dei valori 'non ammessi' all'operazione che si sta effettuando, ma che comunque devono essere visualizzati; per tali valori appare un messaggio di informazione e viene cancellato il contenuto del cboBox.. quindi, come nel caso che ho appena provato, se il primo valore mostrato/scritto nel cboBox coincide con uno di questi valori 'non ammessi', non si ha modo di andare avanti nella selezione degli altri dalla lista..
    a parte questa soluzione e quella che ho adottato per ora (vedi codice precedente), ti sembra ce ne siano altre?
    Grazie ancora per il tuo intervento



  • di scossa data: 27/03/2015 20:43:28

    Ti consiglio di allegare un file di esempio (coerente con quello reale), riceverai più facilmente un aiuto.



    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)