Condividi tramite

Pulsnate di opzione

Anonimo
2014-12-21T11:29:56+00:00

Buongiorno.

In Excel 2007 inserendo un pulsante di opzione, oppure  più pulsanti usando la Casella di gruppo, avrei necessità di collegare i pulsanti a un intervallo di celle tale cioè che sceliendo un'opzione tutte le celle collegate assumano lo stesso valore 1-2-3...ecc.

Non ci riesco. Sbaglio qualcosa io oppure non è possibile farlo?

Grazie in anticipo a chi voglia chiarirmi questo punto. 

Giuseppe

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2014-12-26T23:58:53+00:00

    Ciao Giuseppe,

    Ho usato il tuo codice Riuscito() e ho visto che funziona molto bene anche se i pulsanti sono su Foglio1 e le celle in cui inserire le opzioni 1-2-3... sono un altro foglio ad esempio il Foglio5.

    Certo!

    Se però voglio costruire più gruppi di Pulsanti di opzione sullo stesso Foglio1 ad esempio:

    Pulsante di opzione 1

    Pulsante di opzione 2

    Pulsante di opzione 3

    e

    Pulsante di opzione 4

    Pulsante di opzione 5

    e

    Pulsante di opzione 6

    Pulsante di opzione 7

    Pulsante di opzione 8

    Pulsante di opzione 9

    ho provato a raggrupparli usando le Caselle di gruppo ma ho notato che non funzionano bene perché si creano delle interferenze  soprattutto quando le varie Caselle di gruppo con i relativi pulsanti sono ravvicinati.

    Come mai accade questo? E come posso risolvere?

    Io ho creato un file di esempio con due caselle di gruppo. Nella prima casella di gruppo, Group Box 1, ho inserito 4 pulsanti di opzioni:

    Pulsante di opzione 1

    Pulsante di opzione 2

    Pulsante di opzione 3

    Giuseppe

    Ho allegato ciascuno di questi pulsanti di opzioni alla macro Tester2. Questa macro modifica il valore dell'intervallo D2:F2 a seconda di quale dei quattro pulsanti di opzione è selezionato.

    In modo simile, nella seconda casella, e nella seconda casella di gruppo, Group Box 2, ho inserito 3 pulsanti di opzioni: 

    Pulsante di opzione 5

    Pulsante di opzione 6

    Pulsante di opzione 7

    Ho allegato questi pulsanti di opzioni alla macro Tester3. Questa macro modifica il valore dell'intervallo D3:F3 a seconda di quale dei tre pulsanti di opzione è selezionato.

    Il codice delle procedure Tester2 e Tester3 segue:

    '==========>>

    Option Explicit

    '--------->>

    Public Sub Tester2()

        Dim WB As Workbook

        Dim SH As Worksheet

        Dim Rng As Range

        Dim oButton As OptionButton

        Set WB = ThisWorkbook

        Set SH = WB.Sheets("Foglio1")

        Set Rng = SH.Range("D2:F2")

        Select Case SH.OptionButtons(Application.Caller).Caption

            Case "Pulsante di opzione 1"

                Rng.Value = 1

            Case "Pulsante di opzione 2"

                Rng.Value = 2

            Case "Pulsante di opzione 3"

                Rng.Value = 3

            Case "Giuseppe"

                Rng.Value = "Pippo"

            Case Else

                'do nothing

        End Select

    End Sub

    '--------->>

    Public Sub Tester3()

        Dim WB As Workbook

        Dim SH As Worksheet

        Dim Rng As Range

        Dim oOpButton As OptionButton

        Set WB = ThisWorkbook

        Set SH = WB.Sheets("Foglio1")

        Set Rng = SH.Range("D3:F3")

        Select Case SH.OptionButtons(Application.Caller).Caption

            Case "Pulsante di opzione 5"

                Rng.Value = 100

            Case "Pulsante di opzione 6"

                Rng.Value = 200

            Case "Pulsante di opzione 7"

                Rng.Value = 300

            Case Else

                'do nothing

        End Select

    End Sub

    '<<=============

    Nota che il funzionamento dei pulsanti di opzione nella prima e seconda casella di gruppo è completamente indipendente.

    Ho caricato il mio file di prova su Microsoft OneDrive a:

    http://1drv.ms/1H3gufe

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2014-12-22T00:33:25+00:00

    Ciao Giuseppe,

    In Excel 2007 inserendo un pulsante di opzione, oppure  più pulsanti usando la Casella di gruppo, avrei necessità di collegare i pulsanti a un intervallo di celle tale cioè che sceliendo un'opzione tutte le celle collegate assumano lo stesso valore 1-2-3...ecc.

    Non ci riesco. Sbaglio qualcosa io oppure non è possibile farlo?

    Un modo:

    • Alt-F11 per aprire l'editor di VBA
    • Alt-IM per inserire un nuovo modulo di codice
    • Nel nuovo modulo vuoto, incolla il seguente codice:

     '=========>>

    Public Sub Tester)

    Dim WB As Workbook

    Dim SH As Worksheet

    Dim Rng As Range

    Dim oOptionButton As OptionButton

    Set WB = ThisWorkbook

    Set SH = WB.Sheets("Foglio1")                                                       '<<==== Modifica

    Set Rng = SH.Range("B1:B10,D1:D5")                                          '<<==== Modifica

    Select Case Application.Caller

     Case "Option Button 1"                                                                 '<<==== Modifica

        Rng.Value = 1

     Case "Option Button 2"                                                                 '<<==== Modifica

     Rng.Value = 2

     Case "Option Button 3"                                                                 '<<==== Modifica

       Rng.Value = 3

     Case "Option Button 4"                                                                 '<<==== Modifica

        Rng.Value = "Pippo"

     Case Else

        'do nothing

    End Select

    End Sub

    '<<=========

    Alt-Q per chiudere l'editor di VBA e tornare a Excel.

    Allega i tuoi pulsanti di opzione alla macro Tester. Modifica il nome del foglio di lavoro, l'intervallo e i nomi dei pulsanti di opzione a seconda delle tue esigenze.

    Salva la cartella di lavoro, con le macro abilitate, come file di tipo xlsm.  [Edit]

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento

24 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-12-22T21:30:18+00:00

    Ciao Norman,

    Ho scaricato il tuo file e l'ho salvato come xlsm. Funziona.

    Se però creo una nuova cartella xlsm, inserisco i Pulsanti di opzione e incollo la stessa macro non funziona. Non capisco perché.

    Grazie,

    Giuseppe

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-12-22T16:24:24+00:00

    Ciao Giuseppe,

    1. Devo collegare le stesse celle della macro nei pulsanti di opzioni? (l'ho fatto)
    2. I pulsanti di opzione devono ugualmente fare parte di una Casella di gruppo? (l'ho fatto)
    3. Ho anche cambiato provare a cambiare il Nome in "Pulsante di opzione" piuttosto che "Option button"
    1. No
    2. No
    3. Dovresti sostituire i nomi Option Button,  Option Button 2ecc con i nomi dei tuoi pulsanti di opzioni.

    Ho caricato un semplice file di esempio su OneDrive:

    http://1drv.ms/1AyZ0FH

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-12-22T14:10:50+00:00

    Grazie Norman. Sei molto gentile come sempre.

    Ho provato diverse volte ma non va.

    A parte la parentesi che mancava:

    1. Devo collegare le stesse celle della macro nei pulsanti di opzioni? (l'ho fatto)
    2. I pulsanti di opzione devono ugualmente fare parte di una Casella di gruppo? (l'ho fatto)
    3. Ho anche cambiato provare a cambiare il Nome in "Pulsante di opzione" piuttosto che "Option button"

    Ti allego la macro inserita in un modulo così come l'ho adattata:.

    Grazie ancora,

    Giuseppe

    Public Sub Tester()

    Dim WB As Workbook

    Dim SH As Worksheet

    Dim Rng As Range

    Dim oOptionButton As OptionButton

    Set WB = ThisWorkbook

    Set SH = WB.Sheets("Foglio1")                                                       '<<==== Modifica

    Set Rng = SH.Range("D2:F2")                                          '<<==== Modifica

    Select Case Application.Caller

     Case "Pulsante di opzione 1"                                                                 '<<==== Modifica

        Rng.Value = 1

     Case "Pulsante di opzione 2"                                                                 '<<==== Modifica

     Rng.Value = 2

     Case "Pulsante di opzione 7"                                                                 '<<==== Modifica

       Rng.Value = 3

     Case "Pulsante di opzione 8"                                                                 '<<==== Modifica

        Rng.Value = "Pippo"

     Case Else

        'do nothing

    End Select

    End Sub

    '<<=========

    La risposta è stata utile?

    0 commenti Nessun commento