checkbox che non si attivano
Hai un problema con Excel? 
checkbox che non si attivano
di nichicanta data: 15/06/2013 19:03:04
Gentili Amici del forum, chiedo gentilmente di capire come mai, con il codice sottoriportato inserito in un checkbox, nel momento in cui spunto e apro un'altra userfom con un pulsante di comando, quando ritorno alla userfom principale il segno di spunta non si evince nel checkbox.
Allego schermata della userform che mi dà questo problema.
Grazie in anticipo per l'aiuto che vorrete darmi.
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
UserForm1.OptionButton1.Visible = False
UserForm1.OptionButton2.Visible = False
UserForm1.OptionButton3.Visible = True
UserForm1.Label9.Visible = True
UserForm1.Label9.Caption = "TIMER"
Else
UserForm1.OptionButton1.Visible = False
UserForm1.OptionButton2.Visible = False
UserForm1.OptionButton3.Visible = True
UserForm1.Label9.Visible = True
UserForm1.Label9.Caption = "TIMER"
Exit Sub
End If
End Sub
|
di Vecchio Frac data: 15/06/2013 20:09:17
cit. "nel momento in cui spunto e apro un'altra userfom con un pulsante di comando"
---> l'userform in cui hai spuntato la checkbox viene chiusa prima di aprire l'altra userform? mostra il codice di codesto command button.
Sei sicuro che il codice allegato sia corretto nella sua logica? Indipendentemente dal valore di checkbox1 (cliccato o non cliccato), le impostazioni degli altri controlli risultano settate in modo uguale, e forse non è quello che volevi.
Per chiarezza, ti allego una riscrittura della medesima routine associata al Checkbox1, identica nella funzionalità, per mostrarti un'alternativa stilistica che io preferisco perchè è molto più sintetica e chiara ^_^
Private Sub CheckBox1_Click()
With UserForm1
.Label9.Caption = "TIMER"
.OptionButton1.Visible = False
.OptionButton2.Visible = = False
.OptionButton3.Visible = True
.Label9.Visible = True
End With
End Sub |
di nichicanta (utente non iscritto) data: 16/06/2013 18:59:46
Caro V.F. eccoti il codice del pulsante che mi chiude la userform con le opzioni e mi apre l'altra.
Cmq. ho inserito il tuo codice ma ottengo lo stesso risultato e cioè: passando all'altra userform e ritornando alla precedente non si evince il segno di spunta sui checkbox.
N.B. lo stesso codice è inserito nel pulsante di comando che mi chiude una e mi riporta all'altra userform.
Private Sub CommandButton1_Click()
Unload Me
UserForm1.Show
End Sub
Private Sub CommandButton26_Click()
Unload Me
UserForm2.Show
End Sub |
di HarryBosch data: 17/06/2013 20:06:33
Con Unload Me scarichi completamente la Userform e i relativi valori impostati o selezionati dopo il suo caricamento; praticamente viene resettata allo stato iniziale. Questo è il motivo per il quale ti ritrovi la check vuota al suo ri-attivamento.
Se sostituisci questa istruzione con
Me.hide
otterrai invece l'effetto che i dati rimangono sul form in quanto la stessa form viene semplicemente "nascosta", ma in grado di interagire con tutti suoi comandi; tutti i valori rimangono impostati come da ultima modifica.
di nichicanta (utente non iscritto) data: 17/06/2013 20:58:06
Grazie ancora HarryBosch ho risolto con la tua risposta(ho memorizzato, per il futuro, questo tuo consiglio).
Buon lavoro.
di Vecchio Frac data: 17/06/2013 21:19:46
@nichi
LOL, era per questo motivo che ti chiedevo se "l'userform in cui hai spuntato la checkbox viene chiusa prima di aprire l'altra userform". Con Hide la nascondi ma la mantieni in memoria preservandola per un riutilizzo successivo (ovviamente nella stessa sessione di lavoro... non se chiudi Excel e riapri); con UnLoad Me invece chiudi proprio l'istanza dell'oggetto, perdendone i valori.
di nichicanta (utente non iscritto) data: 17/06/2013 21:45:03
Cmq vada è un successo ( e questo lo è stato ). Grazie V. Frac perdonatemi se non mi faccio capire al primo istante, stò muovendo i miei primi passi con vba.
A presto, Amici miei.
Vuoi Approfondire?