Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    10

    [VBA\Excel] Ciclo su checkbox

    Salve a tutti
    chiedo scusa se apro un thread con un argomento già discusso, ma non riesco a trovare la soluzione al mio problema, cioè:
    ho 10 checkbox su un foglio excel da abilitare a true in un ciclo, come faccio?

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Nella prima parte di questo articolo:

    http://thetruster.altervista.org/ind...n-vba-di-excel

    è spiegato come effettuare una stessa operazione si più controlli, usando un ciclo For Each

    Boolean

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    10
    innanzitutto grazie, ma la guida da te mostrate si riferisce ai controlli su una form, da quanto ho capito i controlli su un foglio excel si gestiscono in modo diverso, vero?
    ah comunque a me serve anche l'indice della checkbox perchè devo modificare anche le celle che sono sulla stessa riga (es chk1 sta sulla riga1 etc)
    come faccio?

  4. #4
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    ops, scusami, non avevo ben notato che le tue checkbox fossero disposte su un foglio Excel.

    In tal caso, i controlli vanno a far parte della collection Shapes, quindi è quella che devi ciclare sia per rilevare il nome del controllo, sia per impostarne il valore:

    codice:
    Dim sh As Shape
    For Each sh In Foglio1.Shapes
        If sh.Type = msoFormControl Then
            If sh.FormControlType = xlCheckBox Then
                Debug.Print sh.Name          'Qui posso rilevare il nome
                sh.ControlFormat.Value = 1   '1-Vero - 0-Falso
            End If
        End If
    Next sh
    Boolean

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    10
    grazie ma non mi funziona...

    ho provato a fare una cosa del genere

    codice:
    Dim obj As OLEObject     Dim i As Integer          i = 1     For Each obj In Sheets("Foglio1").OLEObjects         If obj.Name = "chk" & i Then             obj.Object.Value = True             i = i + 1         End If     Next obj
    ma mi funzionano le prime due checkbox, mentre se imposto i=3 mi funzionano le restanti, coma mai?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    10
    codice:
    Dim obj As OLEObject     
              Dim i As Integer 
              i = 1   
           
              For Each obj In Sheets("Foglio1").OLEObjects  
                    If obj.Name = "chk" & i Then
                         obj.Object.Value = True   
                         i = i + 1 
                    End If
              Next obj

  7. #7
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Originariamente inviato da Luca89ce
    grazie ma non mi funziona...
    Non funziona non vuol dire niente...
    In cosa non funziona?
    Hai errori? Se si, quali?
    Hai comportamenti inattesi? Se si quali?

    Boolean

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    10
    non vedo cambiare nessuna checkbox...

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    10
    però i vari messaggi dei nomi me li mostra

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    10
    no no scusa anche i messaggi non vanno....
    scusa se mi confondo ma ho provato varie cose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.