Sono riuscito a sistemare il codice ottenendo quello che chiedevo. L’unica cosa che non riesco a sistemare è che non deve andare oltre la riga 28. Per capirci se dovessi spuntare la 1, 2 e 6 checkbox
mi deve compilare la colonna fino alla riga 28 aggiungendo della checkbox numero 6 solo le righe necessarie per arrivare alla riga 28. Spero di aver reso chiaro quello che è il mio problema. Il codice è quello che segue.
Private Sub CommandButton1_Click()
Dim shArray As Sheets
Dim sh As Worksheet
Dim lRiga As Long
On Error GoTo RigaErrore
Set shArray = ThisWorkbook.Worksheets(Array("Foglio1", "Foglio2", _
"Foglio3", "Foglio4", "Foglio5", "Foglio6", "Foglio7", "Foglio8", _
"Foglio9", "Foglio10", "Foglio11", "Foglio12"))
For Each sh In shArray
With sh
lRiga = .Range("A28").End(xlUp).Row + 1
.Range("A13:A28").ClearContents
If .Range("A30").End(xlUp).Row < 13 Then
lRiga = 13
End If
If Chk1.Value = True Then
.Range("A" & lRiga).Value = "=Base!C7"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=Base!D7"
lRiga = lRiga + 1
Else
Chk1.Value = False
End If
If Chk2.Value = True Then
.Range("A" & lRiga).Value = "=Base!C9"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=Base!D9"
lRiga = lRiga + 1
Else
Chk2.Value = False
End If
If Chk3.Value = True Then
.Range("A" & lRiga).Value = "=Base!C10"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=Base!D10"
lRiga = lRiga + 1
Else
Chk3.Value = False
End If
If Chk4.Value = True Then
.Range("A" & lRiga).Value = "=Base!C11"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=Base!D11"
lRiga = lRiga + 1
Else
Chk4.Value = False
End If
If Chk5.Value = True Then
.Range("A" & lRiga).Value = "=Base!C13"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=Base!D13"
lRiga = lRiga + 1
Else
Chk5.Value = False
End If
If Chk6.Value = True Then
.Range("A" & lRiga).Value = "=C13"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=D13"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=C14"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=D14"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=C15"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=D15"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=C16"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=D16"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=C17"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=D17"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=C18"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=D18"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=C19"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=D19"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=C20"
lRiga = lRiga + 1
.Range("A" & lRiga).Value = "=D20"
lRiga = lRiga + 1
Else
Chk6.Value = False
End If
End With
Next
RigaChiusura:
Set shArray = Nothing
Set sh = Nothing
Exit Sub
RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura
End Sub