Condividi tramite

Utilizzo CHECKBOX

Anonimo
2015-01-07T11:26:28+00:00

Buongiorno e Buon 2015 a tutti

In un foglio ho una serie di checkbox che ho rinominato (salvainexcel, stampacartaceo, stampapdf, stampapdfconfirme, stampaetichetta)

quando queste cb sono spuntate vorrei richiamare una relativa macro (che ho già scritto in precedenza e funzionano perfettamente), ma purtroppo sbaglio da qualche parte e la macro mi va in errore...

allego la macro che ho scritto (forse ora è anche un po' pasticciata)

.......................................................................

Sub Esegui_Controlli()

If ActiveSheet.Shape("salvainexcel").Value = True Then Call Salva

If ActiveSheet.Shape("stampacartaceo").Value = True Then Call Stampa_CARTACEO

If ActiveSheet.Shape("stampapdf").Value = True Then Call Stampa_PDFNORMALE

If ActiveSheet.Shape("stampapdfconfirma").Value = True Then Call Stampa_PDFCONFIRMA

If ActiveSheet.Shape("stampaetichetta").Value = True Then Call Stampa_ETI

Sheets("Misure").Select

End Sub

..............................................................

dove sbaglio? logico che mi interessi la soluzione, ma se riesco a capire anche l'errore è meglio..

grazie

Luca

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

Anonimo
2015-01-08T11:17:13+00:00

Ciao Luca,

Hai già una soluzione funzionante, ma come un'alternativa che non richiede alcuna operazione di selezione, potresti provare qualcosa del genere:

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

Option Explicit

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

Public Sub Esegui_Controlli()

    Dim arrCheckBox As Variant, arrMacro As Variant

    Dim i As Long

    With ActiveSheet.CheckBoxes

        arrCheckBox = Array(.Item("salvainexcel"), _

                            .Item("stampacartaceo"), _

                            .Item("stampapdf"), _

                            .Item("stampapdfconfirme"), _

                            .Item("stampaetichetta"))

    End With

    arrMacro = Array("Salva", _

                     "Stampa_CARTACEO", _

                     "Stampa_PDFNORMALE", _

                     " Stampa_PDFCONFIRMA", _

                     "Stampa_ETI")

    For i = LBound(arrCheckBox) To UBound(arrCheckBox)

        If arrCheckBox(i).Value = xlOn Then

            Application.Run arrMacro(i)

        End If

    Next i

End Sub

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

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-01-07T13:03:16+00:00

Grande Mauro! sei sempre un ottimo maestro!

ah..ovviamente funziona a modino!

Sub Esegui_Controlli()

    ActiveSheet.Shapes("salvainexcel").Select

    With Selection

        If .Value = xlOn Then

            Call Salva

        End If

    End With

    ActiveSheet.Shapes("stampacartaceo").Select

    With Selection

        If .Value = xlOn Then

            Call Stampa_CARTACEO

        End If

    End With

    ActiveSheet.Shapes("stampapdf").Select

    With Selection

        If .Value = xlOn Then

            Call Stampa_PDFNORMALE

        End If

    End With

    ActiveSheet.Shapes("stampapdfconfirme").Select

    With Selection

        If .Value = xlOn Then

            Call Stampa_PDFCONFIRMA

        End If

    End With

    ActiveSheet.Shapes("stampaetichetta").Select

    With Selection

        If .Value = xlOn Then

            Call Stampa_ETI

        End If

    End With

Sheets("Misure").Select

End Sub

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-01-07T12:00:26+00:00

Buongiorno e Buon 2015 a tutti

In un foglio ho una serie di checkbox che ho rinominato (salvainexcel, stampacartaceo, stampapdf, stampapdfconfirme, stampaetichetta)

<cut>

Quali CheckBox stai utilizzando? I controlli modulo? Ammesso tu debba richiamare la macro a() dalla Casella di controllo 1 (quindi hai assegnato quella macro alla casella di controllo) posizionata sul Foglio1, questo il codice della macro a():

Public Sub a()

    Foglio1.Shapes("Casella di controllo 1").Select

    With Selection

        If .Value = xlOn Then

            MsgBox "Ok"

        End If

    End With

End Sub

Senza complicare troppo le cose, puoi modificare Foglio1 con ActiveSheet.

Questo funziona quando selezioni o meno la casella di controllo.

Se vuoi invece fare un controllo su più caselle, devi eseguire il select di ciascuna casella di testo per capire se sono o meno selezionate.

La risposta è stata utile?

0 commenti Nessun commento

12 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-01-13T09:22:38+00:00

    Buongiorno, 

    spero di non annoiarvi eheheh

    purtroppo e ripeto PURTROPPO, il mio titolare si ostina a voler utilizzare in una postazione Office2000,

    grazie a mauro sono a conoscenza del metodo da utilizzare per discriminare le versioni di excel, ma quanto sopra citato su xl2000 non gira...

    esiste una routine per le checkbox che mi faccia ottenere lo stesso risultato su excel2000?

    grazie.

    Luca

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-01-07T13:17:38+00:00

    Grande Mauro! sei sempre un ottimo maestro!

    ah..ovviamente funziona a modino!

    <cut>

    Bene!

    Ciao e alla prossima.

    La risposta è stata utile?

    0 commenti Nessun commento