Nascondere Casella di controllo

Anonimo
2016-02-08T10:59:08+00:00

Buongiorno.

In un Foglio di lavoro vorrei nascondere Casella di controllo 18, Casella di controllo 19, Casella di controllo 20...ecc se le celle B21, B22,B23,ecc contengono "". Quando invece nelle celle inserisco un valore la corrispondente casella di controllo appare.

Come potrei fare?

Grazie a chi vorrà darmi un suggerimento.

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

Anonimo
2016-02-08T12:26:31+00:00

Mi raccomando che i nomi dei controlli corrispondano come da esempio al numero della riga.

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2016-02-08T12:02:59+00:00

Sarebbe interessante capire quale controllo hai utilizzato.

Se ActiveX (sempre consigliabili):

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rng As Range

    Dim c As Range

    Set rng = Me.Range("A1:A10")

    If Not Intersect(Target, rng) Is Nothing Then

     For Each c In Target

        If c.Value = "" Then

            Me.OLEObjects("CheckBox" & c.Row).Visible = False

        Else

            Me.OLEObjects("CheckBox" & c.Row).Visible = True

        End If

     Next

    End If

    Set rng = Nothing

End Sub

Qui considero il Range A1:A10 che tu modificherai con il tuo.

Inoltre, ri consiglio vivamente di far si che ogni controllo abbia un valore di indice IDENTICO a quello della riga, per semplificare il tutto. Ad esempio il controllo di riga 5 si chiami "CheckBox5".

Il codice va copia/incollato nel modulo di codice del foglio. Se non hai mai utilizzato il vb di Excel, vedi:

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2016-02-08T11:55:44+00:00

Ciao Giuseppe,

Excel non ha alcun evento che riconosce il nascondimento o la visualizzazione di una riga.

Al fine di nascondere o rivelare le caselle di controllo in risposta a qualsiasi variazione dei dati del foglio di lavoro, provae qualcosa del genere

:

  • Fai clic dx sulla linguetta del foglio
  • Seleziona l'opzione Visualizza Codice dal menu contestuale risultante
  • Incolla il seguente codice:

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

Option Explicit

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

Private Sub Worksheet_Calculate()

    Dim CBox As CheckBox

    Dim iCheckboxNumber As Long

    For Each CBox In Me.CheckBoxes

        With CBox

            iCheckboxNumber = CLng(Right(CBox.Name, 2))

            .Visible = Not Me.Rows(iCheckboxNumber).Hidden

        End With

    Next CBox

End Sub

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

  • Alt+Q per chiudere l'editor di VBA e tornare a Excel.
  • Salva il file con l'estensione xlsm.

In alternativa, se vorresti spiegare come siano nascoste le righe, potrei forse fornire una routine più diretta.

Nota che, come scritto, il codice si presuppone che ci sono meno di 100 caselle di controllo. Se fosse necessario, potrei modificare questo codice.

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-02-08T14:35:40+00:00

    Grazie Mauro. Ho provato. Funziona.

    Buon lavoro,

    Giuseppe

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-02-08T12:19:50+00:00

    Grazie.

    Io voglio nascondere solo il controllo non la riga che lo contiene la riga.

    In realtà ho usato controlli moduli non Controlli ActiveX. Ma posso cambiare se come mi dici è consigliabile farlo.

    Provo allora.

    Grazie ancora,Giuseppe

    La risposta è stata utile?

    0 commenti Nessun commento