ControlSource CheckBox



  • ControlSource CheckBox
    di totygno71 (utente non iscritto) data: 04/11/2013 13:16:50

    Allora...
    ho 10 userfom ognuna delle quali contiene 104 CheckBox i cui rispettivi ControlSource si trovano in 10 fogli diversi ma sempre con gli stessi range("C8:J20")

    Completata la prima userform ed assegnando ad ogni checkBox il rispettivo controlsource da foglio e range (es. foglio1!C8; Foglio2!D8... etc)

    Ho copiato tutti i check dalla userform1 e incollati nelle altre userform2... ma mi tocca cambiare a mano tutti i riferimenti di ogni checkboc (controlsource) o esiste una metodologia più veloce???

    Grazie



  • di Vecchio Frac data: 04/11/2013 14:03:43

    cit. "ho 10 userfom ognuna delle quali contiene 104 CheckBox"
    ---> Mostruoso, povero il tuo utente finale :)

    cit. "o esiste una metodologia più veloce?"
    ---> Una piccola routine che spazzoli i controlli di ogni form e se sono di tipo "checkbox" gli assegni il range desiderato nella proprietà controlsource.
    Lo scheletro di quello che intendo è qui sotto.

     
    Private Sub UserForm_Initialize()
    Dim ctl As Control, i As Long
        
        For Each ctl In Controls
            If TypeOf ctl Is msforms.CheckBox Then
                i = i + 1
                ctl.ControlSource = "A" & i
                Debug.Print ctl.ControlSource
            End If
        Next
        
    End Sub
    






  • di totygno71 (utente non iscritto) data: 04/11/2013 14:18:43

    Non è così orrendo ^_^... Anche perchè vengono visualizzate 8 alla volta in funzione se la textbox a cui fanno capo è piena oppure no...

    Per quanto riguarda il ciclo va bene ... ci avevo già pensato ma io volevo capire se era possibile direttamente dalle proprietà dei vari controlli... una sorta di trova e sostituisci che nel codice è permesso invece nelle proprietà dei controlli non trovo...





  • di Vecchio Frac data: 04/11/2013 14:33:52

    Non vorrei essere pessimista, ma non credo sia fattibile come intendi tu :(





  • di Grograman data: 04/11/2013 14:34:13

    Senza entrare nel caso specifico, esiste un addon chiamato "MZ-Tools" che permette di rinominare un controllo e tutto il codice ad esso associato.

    Comodo per clonare/modificare commandbutton e simili.

    Purtroppo non lo uso da un po' perchè non supporta le versioni 64 bit :( non so quindi con le userform come si comporti.
    allego i files (uno non mi ricordo qual'è quello giusto, se VB6 o VBA)



  • di Grograman data: 04/11/2013 14:37:31

    Doh, MZtool è troppo grande, te l'ho allegato in 7zip diviso in due, altrimenti cercalo in google :)



  • di Vecchio Frac data: 04/11/2013 14:37:38

    Io uso pesantemente MZ-Tools e non ho mai notato questa feature :)





  • di totygno71 (utente non iscritto) data: 04/11/2013 14:47:56

    cit"Io uso pesantemente MZ-Tools e non ho mai notato questa feature :)

    Infatti me lo avevi consigliato molto tempo fa...

    grazie Grog... mo ci provo....



  • di Grograman data: 04/11/2013 15:11:02

    cit: "Io uso pesantemente MZ-Tools e non ho mai notato questa feature :) "

    Uhm... che sia VBETools allora?
    Purtroppo nella nuova azienda (sono qui da Gennaio) ho la versione 64 bit e quindi non mi girano quei tool.
    Giusto ieri a casa ho disinstallato office 2013 64 bit per tornare al 2010 32 bit, almeno da averli a casa (smart indenter for the win!), se riesco provo a vedere che non sia VBETools e non MZTools



  • di Grograman data: 04/11/2013 15:13:30

    Confermo, è VBE Tools! (è cmq allegato alla discussione)

    Altrimenti ricerca in google e nella pagina di "office automation" c'è l'esempio di cui parlavo