Da checkbox a cella



  • Da checkbox a cella
    di saro data: 30/04/2015 20:45:06

    Salve a tutti sto provando a cimentarmi con le user form qualcosa sono riuscito a fare ma non riesco a capire come collegare ad una celle le opzioni della check box, faccio del mio meglio per essere più chiaro possibile, nella userform ho inserito quattro etichette con dei nomi, a fianco ad ogni nome le checkbox, come posso far si che selezionando una checkbox mi riporti in una cella del foglio di lavoro il nome nell’etichetta corrispondente alla checkbox e non FALSO? E’ possibile ottenere questo risultato? Grazie per l’aiuto e buona serata



  • di azzeccagarbugli (utente non iscritto) data: 30/04/2015 21:15:06

    Servirebbero due cose:
    - conoscere la Versione di Excel che utilizzi
    ma, soprattutto,
    - un file, senza dati sensibili, con inserito UserForm



  • di saro data: 30/04/2015 21:47:51

    ciao azzeccagarbugli ho provato ad inserire un file di prova ma non mi riusciva di caricarlo sul forum adesso riprovo, la versione di excel è 2003/2007



  • di alfrimpa data: 30/04/2015 22:46:03

    Ciao Saro

    Non devi collegare la checkbox alla cella bensì l'etichetta vicino a questa.

    Vado a memoria ma dovrebbe essere quello che vedi,sotto.

    Alfredo
     
    WorkSheet("tuoFoglio").Range("TuaCella").Value = Label1.Caption
    
    Dove Label1 è l'etichetta che è vicino alla CheckBox






  • di alfrimpa data: 30/04/2015 22:48:40

    Dimenticavo: ovviamente il tutto collegato alla selezione della checkbox.

    Alfredo

    P.S. Comunque domani ci provo anch'io.





  • di alfrimpa data: 30/04/2015 23:08:05

    Ciao Saro

    Ti ho riallegato il tuo file modificando il codice del commandbutton

    Non funziona bene perché devi vedere un po' tu le varie etichette ma la strada che ti ho indicato è quella giusta: Cells(9, 2).value = Label1.Caption

    Alfredo





  • di saro data: 30/04/2015 23:59:19

    Grazie Alfredo funziona perfettamente la stessa cosa funziona anche con le textbox ho sostituito Label1.Caption con textbox1 e va alla grande, comunque domani proverò sul file originale con le altre texbox e checkbox e ti faccio sapere per il momento grazie infinite per la disponibilità e una buona nottata, a domani



  • di alfrimpa data: 01/05/2015 10:29:53

    Ciao Saro

    Ieri sera avevo pensato di essere stato un po' frettoloso nella risposta perché, fermo restando il concetto de Label1.Caption, immaginavo che dovesse essere necessario un For.... per ciclare tutte le checkbox della form per individuare quella selezionata e restituirne la relativa etichetta.

    Comunque meglio così e fammi sapere.

    Alfredo





  • di saro data: 03/05/2015 22:30:23

    Ciao Alfredo e buona serata a tutti, scusa il ritardo ma non ho potuto fare le prove prima di oggi, comunque da Checkbox a foglio va benissimo almeno dalle prove effettuate, ho provato invece il senso inverso cioè dal foglio alla checkbox visto che nel foglio originale dovrei riportare i dati salvati per eventuali modifiche, ma non va bene per i textbox con: “TextBox1.Value = Cells(3, 3).Value” va bene, ma per le checkbox “CheckBox1.Value=Cells(9, 2).Value” non va bene, quale sarebbe il codice corretto? Allego il file con la prova da me inserita, Grazie ancora e buona serata a te e a tutti



  • di alfrimpa data: 04/05/2015 14:24:57

    Buona giornata Saro.

    Ti riallego il tuo dove al CommandButton "Inserisci da Foglio" ho associato il seguente codice.

    Provalo un po' e dimmi se ho interpretato bene la tua richiesta.

    A presto

    Alfredo
     
    Private Sub CommandButton2_Click()
    Dim nome As String
    Dim chk As Control
    nome = Cells(9, 2).Value
    For Each chk In UserForm1.Controls
        If TypeName(chk) = "CheckBox" Then
            chk.Value = False
        End If
    Next chk
    Select Case nome
        Case Is = "Marco"
        UserForm1.CheckBox1.Value = True
        Case Is = "Giovanni"
        UserForm1.CheckBox2.Value = True
        Case Is = "Federico"
        UserForm1.CheckBox3.Value = True
        Case Is = "Francesco"
        UserForm1.CheckBox4.Value = True
        Case Is = "Moira"
        UserForm1.CheckBox5.Value = True
        Case Is = "Liliana"
        UserForm1.CheckBox6.Value = True
        Case Is = "Domenica"
        UserForm1.CheckBox7.Value = True
        Case Is = "Sofia"
        UserForm1.CheckBox8.Value = True
    End Select
    End Sub
    






  • di alfrimpa data: 04/05/2015 14:29:28

    Poi è chiaro che per poter migliorare il codice (ora assai grezzo) occorrerebbe conoscere il "contesto" complessivo dove questo andrà ad operare.

    Alfredo





  • di saro data: 04/05/2015 15:10:31

    Ciao Alfredo grazie ancora per il generoso aiuto, premesso che sono al lavoro e non posso fare molte verifiche, mi sembra però che hai interpretato bene la richiesta dalla prova che ho potuto effettuare, anche se riporta correttamente solo la cella B9 del foglio e non la B10, dovrebbe riportarle tutte e due, immagino che il tuo sia soltanto un esempio da modificare per riportare sia la b9 sia la b10, forse può servire il sapere che nel foglio di lavoro originale saranno 6(sei) le celle da riportare e non due come nel foglio di prova, grazie ancora e buon pomeriggio a tutti



  • di alfrimpa data: 04/05/2015 16:05:30

    Ciao Saro

    Sulla Form ho inserito un nuovo pulsante associato al codice qui sotto che prende in esame l'intervallo B9:B15

    Provalo un po' e fammi sapere

    Alfredo
     
    Private Sub CommandButton3_Click()
    Dim cll As Range
    Dim miorange As Range
    Dim chk As Control
    Set miorange = Range("B9:B15")
    For Each chk In UserForm1.Controls
        If TypeName(chk) = "CheckBox" Then
            chk.Value = False
        End If
    Next chk
    For Each cll In miorange
    Select Case cll.Value
        Case Is = "Marco"
        UserForm1.CheckBox1.Value = True
        Case Is = "Giovanni"
        UserForm1.CheckBox2.Value = True
        Case Is = "Federico"
        UserForm1.CheckBox3.Value = True
        Case Is = "Francesco"
        UserForm1.CheckBox4.Value = True
        Case Is = "Moira"
        UserForm1.CheckBox5.Value = True
        Case Is = "Liliana"
        UserForm1.CheckBox6.Value = True
        Case Is = "Domenica"
        UserForm1.CheckBox7.Value = True
        Case Is = "Sofia"
        UserForm1.CheckBox8.Value = True
    End Select
    Next cll
    End Sub
    






  • di saro data: 04/05/2015 22:33:36

    Ciao Alfredo e buona serata, ho provato il tuo suggerimento e funziona benissimo, però cercando di adeguarlo al mio file qualcosa non và, nel senso che se i dati da riportare sono singoli va bene ma nel caso si tratti di due opzioni “SI” o “NO” non va bene, o sbaglio io oppure sarà diverso il codice relativo alle opzioni, comunque allego come sempre il file di prova, risolto questo credo si possa chiudere la discussione, grazie ancora per la pazienza e la cortesia dimostrata, una buona serata a tutti



  • di alfrimpa data: 04/05/2015 23:36:39

    Ciao Saro

    Allora cerca di allegare un file con tutte le casistiche possibili (spiegando quello che vuoi fare) e vediamo se riusciamo ad arrivare ad una soluzione.

    Alfredo





  • di alfrimpa data: 04/05/2015 23:40:35

    Scusa non avevo visto che avevi allegato il file

    Alfredo





  • di saro data: 06/05/2015 09:30:29

    Buona giornata Alfredo hai ragione meglio un file completo di quello che serve anche se per me sarebbe stato più facile capire il funzionamento andando avanti passo passo ogni singola cosa, ma ovviamente per le persone più esperte come te è più difficile capire di cosa ho bisogno, per questo seguendo il tuo suggerimento ho ricreato la casistica (textbox,checkbox) del file originale ovviamente con dati diversi e i codici per quanto sia riuscito a capire, quello che serve per adesso è portare i dati dalla userform al foglio nomi e viceversa, sembra quasi funzionare a parte le ultime quattro checkbox (SI, NO) che non riportano correttamente i dati dal foglio alla userform, grazie ancora per la disponibilità e la pazienza dimostrata, una buona giornata a te e a tutto il forum



  • di alfrimpa data: 06/05/2015 11:12:31

    Ciao Saro

    Sono quasi in dirittura d'arrivo spero in giornata di allegarti il file

    Alfredo





  • di alfrimpa data: 07/05/2015 15:59:06

    Buona giornata Saro.

    Ti ho riallegato l'ultimo file ProvaCheckbox2_a che ho un po' modificato.

    Per il trasferimento dei dati sulla form usa il pulsante "Inserisci da foglio"; per trasferire, invece i dati dalla form al foglio clicca semplicemente le varie checkbox.

    Una piccola precisazione: per quanto riguarda le voci "Femminile" e "Maschile" ho dovuto prevedere come valori "F_SI", "F_NO", "M_SI" e "M_NO" per semplificarmi la vita nella scrittura del codice del CommandButton1 (spero per te non sia un problema).

    Prova e fai sapere.

    Alfredo





  • di alfrimpa data: 07/05/2015 18:19:54

    Non so perché ma non ritrovo il file che ho allegato.

    Comunque mi era sfuggito il provacheckbox3 che ha una form più complessa rispetto alla precedente per cui devo riadattare tutto il lavoro fatto in precedenza.

    Abbi un po' di pazienza.

    Ci risentiamo

    Alfredo





  • di saro data: 07/05/2015 23:09:37

    Ciao Alfredo ho verificato il file che hai modificato e funziona benissimo, non riesco a capire perché nel mio non funziona la parte “SI NO” eppure ho verificato passo passo i due codici sono identici a parte le check box che cambiano numero, tutto il codice sembra uguale ma nel mio non funziona, è tutto il pomeriggio che controllo e ricontrollo il codice ma non riesco a trovare un riferimento diverso che possa provocare l’errore. Allego il mio file “Prova checkbox3” forse tu riesci a capire il perché. Grazie ancora per la pazienza e la disponibilità, una buona serata a tutti



  • di alfrimpa data: 07/05/2015 23:18:18

    Ciao Saro

    Domani ti riallego il mio file (preso da provacheckbox3) spero completamente funzionante.

    Rimani all'erta

    Alfredo





  • di alfrimpa data: 08/05/2015 11:49:32

    Ciao Saro

    Ti allego il file "saro_by_alfredo" (è il primo a sinistra) che credo sia funzionante come tu vuoi.

    Provalo un po' e fammi sapere.

    Alfredo





  • di saro data: 08/05/2015 17:40:06

    Ciao alfredo adesso funziona a meraviglia, scusa se approfitto della tua pazienza e disponibilità ma per il momento serve un’ultima cosa, che codice devo inserire in un pulsante per deselezionare tutte le texbox e le checkbox nella userform, in modo da permettermi di riscrivere senza andare a cancellare il tutto manualmente? Grazie ancora per la tua disponibilità e buona serata



  • di alfrimpa data: 08/05/2015 19:01:42

    Prova con questo codice associato ad un CommandButton

    Se vuoi cancellare anche i dati sul foglio affiungi prima di End Sub

    Range("B3:B21").ClearContents

    Alfredo
     
    Private Sub CommandButton3_Click()
    Dim ctl As Control
    For Each ctl In UserForm1.Controls
        If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "CheckBox" Or TypeName(ctl) = "OptionButton" Then
        ctl.Value = ""
        End If
    Next ctl
    End Sub






  • di alfrimpa data: 10/05/2015 12:15:38

    Oppure, visto che le checkbox e gli optionbutton sono alternativamente selezionabili, si potrebbe pensare a cancellare le sole textbox con il codice sottostante.

    Alfredo
     
    Private Sub CommandButton3_Click()
    Dim ctl As Control
    For Each ctl In UserForm1.Controls
        If TypeName(ctl) = "TextBox" Then
        ctl.Value = ""
        End If
    Next ctl
    End Sub






  • di saro data: 11/05/2015 20:15:53

    Scusa Alfredo per il ritardo nel rispondere ma purtroppo non ho potuto provare prima i tuoi codici, adesso li ho provati e vanno benissimo, ti ringrazio per l'aiuto, adesso sistemerò un pò il file e dopo avrò ancora bisogno dell'aiuto del forum, per completare il file dovrò inserire una casella di riepilogo e un codice di archiviazione, ho già i codici ma funzionano solo con un pulsante nel foglio ma non nella user form, ma per questo aprirò un'altra discussione anche per dare modo ad altri a cui possa interessare di imparare qualcosa anche in questo, grazie ancora per l'aiuto e buona serata a tutti



  • di alfrimpa data: 11/05/2015 20:23:18

    Ok Saro grazie del riscontro e alla prossima.

    Alfredo