checkbox che non si attivano



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