Svuotare combobox



  • Svuotare combobox
    di pizzo88 data: 13/04/2015 22:53:52

    Ho una combobox (CMBCF) che punta ad una lista (CF) e se provi ad inserire una parola diversa da quella in lista, restituisce un errore, ma la parola digitata rimane e non riesco a svuotare la combobox. Ho provato ad inserire CMBCF.text = "", ma dopo aver cancellato mi restituisce ancora l'errore. Come posso svuotare la combobox senza che restituisca l'errore?
    Grazie
     
    Private Sub CMBCF_Change()
     If CMBCF.ListIndex < 0 Then
            MsgBox "Il paziente non è ancora registrato, premi su INSERISCI PAZIENTE", vbCritical, "Error"
            CMBCF.text = ""
        End If
    End Sub
    



  • di alfrimpa data: 14/04/2015 13:55:02

    Ciao Pizzo

    Ti riallego il file con mie modifiche.

    Fammi sapere se per te può andar bene.

    Alfredo





  • di pizzo88 data: 15/04/2015 00:18:03

    Ho copiato il codice sul mio file excel, ma inizialmente non funzionava. Mi sono accorto però che la variabile 'trova' non puntava ad un foglio in particolare e quindi poteva funzionare solo se precedentemente fosse attivo il foglio interessato. Ma siccome nel mio file vi sono più fogli ho dovuto specificato anche il foglio nel settaggio di 'trova' ed ho risolto. Poi volevo fare la stessa procedura ad altre 3 combobox (data di nascita), ma non riesco a capire cosa sbaglio, continua a restituirmi il doppio errore. Allego il file con anche le altre 3 combobox. Grazie



  • di alfrimpa data: 15/04/2015 13:34:42

    Ciao Pizzo

    Ho guardato il tuo file database ma non riesco a capire dove sia l'errore.

    Se ti riferisci alle combo di giorno, mese ed anno non dovresti poter inserire dati che non siano già nella lista.

    Alfredo





  • di pizzo88 data: 16/04/2015 10:19:51

    Il mio obiettivo è quello appunto di non dare la possibilità di inserire valori diversi, se qualcuno decide di scrivere il dato invece che sceglierlo dalla lista della combobox giorno, potrebbe inserirmi un dato sbagliato.
    Quello che vorrei fare è far venir fuori l'errore in caso di dato diverso da quello della lista che avevo fatto precedentemente (vedi codice vba), ma poi mi sono accorto che comunque il dato inserito rimaneva e al momento che provavo a cancellarlo mi ributtava fuori l'errore. Quindi ho pensato di cancencellare in automatico il dato inserito in caso di errore, ma per qualche motivo mi butta fuori l'errore 2 volte, a differenza invece dell'altro form con il Codice Fiscale che invece siamo riusciti a risolvere.
     
    Private Sub CMBDNG_Change()
    If CMBDNG.ListIndex < 0 Then
        MsgBox "Sei pregato di selezionare il valore dalla lista", vbCritical, "Error"
    End If
    End Sub



  • di pizzo88 data: 19/04/2015 22:40:22

    Sono riuscito a risolvere. Quando assegno un valore a "trova" usavo come range a2:a32 che è il range che contiene i numeri da 1 a 31. In realtà va aggiunta una cella vuota nel range (a2:a33) in modo tale che quando esegue CMBDNG.Value = "", non butta fuori l'errore poichè il valore "" lo trova in a33.
     
    Set trova = ws.Range("a2:a32").Find(GIORNO, lookAt:=xlWhole, LookIn:=xlValues)
    
    Set trova = ws.Range("a2:a33").Find(GIORNO, lookAt:=xlWhole, LookIn:=xlValues)