Non capisco quanti pulsanti vorresti avere sul foglio, mentre continuo a ritenere (visto le funzionalita’ da realizzare) che i check box siano solo effetti ottici; ma se piacciono…
Ti propongo una soluzione con 2 pulsanti: uno che si espande in orizzontale in testa alle colonne e uno che si espande in verticale a sx delle righe interessate.
Poi copi il seguente codice:
- Codice: Seleziona tutto
Sub AzzV()
Area = "B4:G21" '<<<<<< Modificare come necessario
'
On Error GoTo Warn
Set subA = Application.Intersect(Range(Cells(1, Selection.Column), Cells(65536, Selection.Column)), Range(Area))
subA.Select
Rispo = MsgBox("Vuoi cancellare l' area?", vbYesNo)
If Rispo <> 6 Then Exit Sub
Selection.ClearContents
'
'azzera check box
CurCol = Selection.Range("A1").Column
For Each Forma In ActiveSheet.Shapes
NomeImm = Forma.Name
If Left(NomeImm, 9) <> "Check Box" Then GoTo Skip
' ActiveSheet.Shapes(NomeImm).Select
If Forma.TopLeftCell.Column = CurCol Then Forma.Delete
Skip:
Next Forma
Exit Sub
'
Warn:
MsgBox ("Selezionare una colonna valida!")
End Sub
- Codice: Seleziona tutto
Sub AzzH()
Area = "B4:G21" '<<<<<< Modificare come necessario
'
On Error GoTo Warn
Set subA = Application.Intersect(Range(Cells(Selection.Row, 1), Cells(Selection.Row, 255)), Range(Area))
subA.Select
Rispo = MsgBox("Vuoi cancellare l' area?", vbYesNo)
If Rispo <> 6 Then Exit Sub
Selection.ClearContents
'
'azzera check box
CurRow = Selection.Range("A1").Row
For Each Forma In ActiveSheet.Shapes
NomeImm = Forma.Name
If Left(NomeImm, 9) <> "Check Box" Then GoTo Skip
' ActiveSheet.Shapes(NomeImm).Select
If Forma.TopLeftCell.Row = CurRow Then Forma.Delete
Skip:
Next Forma
Exit Sub
'
Warn:
MsgBox ("Selezionare una riga valida!")
End Sub
Infine associ la macro AzzH al pulsante verticale e AzzV al pulsante orizzontale.
Uso:
-personalizzare sulla macro la definizione dell’ area da gestire
-selezionare una cella all’ interno dell’ area
-premendo il pulsante in testa verra’ evidenziata la colonna prescelta e viene chiesto di confermare la cancellazione
-analogamente se si preme il pulsante a sx, salvo che sara’ evidenziata la riga prescelta.
-vengono cancellati solo i valori, non i formati
-se si seleziona una cella errata viene visualizzato un messaggio.
Spero che trovi la soluzione utile. Ciao.