Anche se mi rimane il dubbio perché oltre a resettare i contatori qualcosa dovrà pur scrivere nel foglio consecutivi altrimenti le righe non saranno più allineate
- Codice: Seleziona tutto
Sub CompilaF3()
Set ws1 = Worksheets("DNDRPNPR")
Set ws3 = Worksheets("Consecutivi")
ws3.Columns(2).ClearContents
UR1 = ws1.Range("B" & Rows.Count).End(xlUp).Row
MyS1 = Array(37, 1, 0, 3, 0, 5, 0, 7, 0, 9, 0, 0, 12, 0, 14, 0, 16, 0, 18, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 0, 30, 0, 32, 0, 34, 0, 36, 37)
For RR1 = 1 To UR1
NV1 = MyS1(ws1.Range("B" & RR1 + 1).Value)
If NV1 = 37 Then
CS1 = 0
CS2 = 10
GoTo SaltaRR1
End If
If NV1 > 0 Then
CS2 = 10
CS1 = CS1 + 1
Else
CS1 = 0
CS2 = CS2 + 1
End If
MioC = CS1
If NV1 = 0 Then MioC = CS2
ws3.Cells(RR1, 2).Value = MioC
SaltaRR1:
Next RR1
End Sub
Per avviare la macro automaticamente al variare (aggiunta o altro) di un numero nella colonna B del foglio origine
devi inserire questo codice nel Vba del foglio (non modulo)
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
UR1 = Range("B" & Rows.Count).End(xlUp).Row
Area1 = "B1:B" & UR1
If Application.Intersect(Target, Range(Area1)) Is Nothing Then Exit Sub
CompilaF3
End Sub
In pratica sulla sinistra dell'editor vba troverai gli oggetti (Fogli) clicchi due volte sul foglio dati origine (DNDRPNPR)
e sulla finestra di destra incolli il codice
ciao