Discussione:
COPIA AUTOMATICA DELLE "CASELLE DI CONTROLLO "
(troppo vecchio per rispondere)
Gianluigi Padovano
2023-01-30 17:29:04 UTC
Permalink
Ciao a tutti, ho trovato questa scrittura che fa al mio caso. L'unico problema è che mi guarda l'intero foglio (For Each xCB In ActiveSheet.CheckBoxes), mentre dovrebbe guardare solo la colonna A.
Come risolvo?
Grazie mille per l'aiuto

Sub LinkChecks()
'Update by Extendoffice
Dim xCB
Dim xCChar
i = 1
xCChar = "A"
For Each xCB In ActiveSheet.CheckBoxes
If xCB.Value = 1 Then
Cells(i, xCChar).Value = True
Else
Cells(i, xCChar).Value = False
End If
xCB.LinkedCell = Cells(i, xCChar).Address
i = i + 1
Next xCB
End Sub
issdr
2023-01-31 08:41:42 UTC
Permalink
Post by Gianluigi Padovano
Ciao a tutti, ho trovato questa scrittura che fa al mio caso
spiega cos'è il tuo caso, e possibilmente condividi un file d'esempio su
cui far girare la macro. questo non è un newsgroup binario, non puoi
allegare, nel caso metti la cartella excel in cloud e condividi il link
Gianluigi Padovano
2023-01-31 09:20:34 UTC
Permalink
Post by issdr
Post by Gianluigi Padovano
Ciao a tutti, ho trovato questa scrittura che fa al mio caso
spiega cos'è il tuo caso, e possibilmente condividi un file d'esempio su
cui far girare la macro. questo non è un newsgroup binario, non puoi
allegare, nel caso metti la cartella excel in cloud e condividi il link
Ciao, praticamente ho più colonne (tra le 2 e le 4 colonne) con “CASELLE DI CONTROLLO” (si/no) per circa 40/50 righe. Mi serviva un modo per inserire il collegamento alla cella di ogni casella di controllo (visto che trascinando, il collegamento resta sempre quello della prima cella anche senza blocco ($). (tra l’altro la cella di collegamento deve essere la stessa cella dove c’è sopra la casella di controllo)
Ho trovato questa scrittura che fa benissimo il lavoro ma con un unico problema. E’ settata per guardare tutte le caselle di controllo della pagina anche delle altre colonne e inserisce i collegamenti alla fine sempre della stessa colonna. Quando invece a me servirebbe che per ogni colonna faccia il lavoro sulla colonna dove si trova la casella di controllo.
Allego esempio che mi ha aiutato parzialmente e il link del file in cloud.
https://drive.google.com/file/d/1Ei_j4_EK3ybKTvJU5cBRM5pFLVNktT52/view?usp=sharing
https://it.extendoffice.com/documents/excel/2689-excel-link-checkbox-to-multiple-cells.html#:~:text=Dopo%20aver%20inserito%20le%20caselle,collegare%20a%20un'altra%20cella.
GRAZIE MILLE
issdr
2023-01-31 16:23:16 UTC
Permalink
Post by Gianluigi Padovano
Ciao, praticamente ho più colonne (tra le 2 e le 4 colonne) con
“CASELLE DI CONTROLLO” (si/no) per circa 40/50 righe. Mi serviva un
modo per inserire il collegamento alla cella di ogni casella di
controllo (visto che trascinando, il collegamento resta sempre quello
della prima cella anche senza blocco ($). (tra l’altro la cella di
collegamento deve essere la stessa cella dove c’è sopra la casella di
controllo)
è complicato. se non hai formati particolari, cancellerei tutte le
caselle del foglio (prima macro) e le creerei correttamente selezionando
le aree in cui devono essere (lanciando la seconda macro dopo aver
selezionato le celle in cui vanno inserite. se ti senti più sicuro,
questo lo puoi fare in più riprese). se vuoi vedere sul foglio i valori
VERO/FALSO, elimina la riga che rende bianco il testo

--8<---------------cut here---------------start------------->8---
Sub cancellaCB()
ActiveSheet.CheckBoxes.Delete
End Sub

Sub mettiCBnellaSelezione()
For Each c In Selection
With ActiveSheet.CheckBoxes.Add(c.Left, c.Top, c.Width, c.Height)
.LinkedCell = c.Address
.Characters.Text = "SI"
End With
c.Font.ColorIndex = 2 'così si maschera il valore VERO/FALSO
Next
End Sub
--8<---------------cut here---------------end--------------->8---
Gianluigi Padovano
2023-01-31 22:15:59 UTC
Permalink
Post by issdr
Post by Gianluigi Padovano
Ciao, praticamente ho più colonne (tra le 2 e le 4 colonne) con
“CASELLE DI CONTROLLO” (si/no) per circa 40/50 righe. Mi serviva un
modo per inserire il collegamento alla cella di ogni casella di
controllo (visto che trascinando, il collegamento resta sempre quello
della prima cella anche senza blocco ($). (tra l’altro la cella di
collegamento deve essere la stessa cella dove c’è sopra la casella di
controllo)
è complicato. se non hai formati particolari, cancellerei tutte le
caselle del foglio (prima macro) e le creerei correttamente selezionando
le aree in cui devono essere (lanciando la seconda macro dopo aver
selezionato le celle in cui vanno inserite. se ti senti più sicuro,
questo lo puoi fare in più riprese). se vuoi vedere sul foglio i valori
VERO/FALSO, elimina la riga che rende bianco il testo
--8<---------------cut here---------------start------------->8---
Sub cancellaCB()
ActiveSheet.CheckBoxes.Delete
End Sub
Sub mettiCBnellaSelezione()
For Each c In Selection
With ActiveSheet.CheckBoxes.Add(c.Left, c.Top, c.Width, c.Height)
.LinkedCell = c.Address
.Characters.Text = "SI"
End With
c.Font.ColorIndex = 2 'così si maschera il valore VERO/FALSO
Next
End Sub
--8<---------------cut here---------------end--------------->8---
Grazie mille. non è proprio come volevo ma adesso cerco di adattarmi alla tua. Gentilissimo come sempre. buona serata
Loading...