Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Mi raccomando che i nomi dei controlli corrispondano come da esempio al numero della riga.
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
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
Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
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.
Risposta accettata dall'autore della domanda
Mi raccomando che i nomi dei controlli corrispondano come da esempio al numero della riga.
Risposta accettata dall'autore della domanda
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:
Risposta accettata dall'autore della domanda
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
:
'=========>>
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
'<<=========
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
Grazie Mauro. Ho provato. Funziona.
Buon lavoro,
Giuseppe
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