Si in effetti c'era un bug
sostituisci la macro con questa
- Codice: Seleziona tutto
Dim inizio, Fine, I, LN, ZN, col, ColN, Riga, ColC As Integer
Dim Art As String
' aggiorna_stampa Macro
inizio = Range("BA8").Value
Fine = Range("BI8").Value
Riga = 0
col = 0
For I = inizio To Fine
If I = inizio Then
col = 1
Else
col = col + 1
End If
Art = "1"
LN = Len(I)
For ZN = 1 To 12 - Len(I)
Art = Art & 0
Next ZN
ColC = col Mod 4
If ColC = 0 Then ColC = 4
If ColC = 1 Then Riga = Riga + 10
ColN = 12 * ColC - 11
Cells(Riga, ColN).Value = Val(Art & I)
If I Mod 16 = 0 And I = Fine Then
Riga = 0
Calculate
Range("A1:AV40").Select
' ActiveSheet.PageSetup.PrintArea = "$A$1:$AV$40"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
', IgnorePrintAreas:=False
End If
Next I
Range("AX1").Select
End Sub
Rimane solo un piccolo controllo che metterei e riguarda il numero dei record in stampa che dovrebbe essere 16 o multiplo di 16
se per esempio metti 5 come inizio e 18 come fine avrai le ultime due etichette con il numero precedentemente stampato
si potrebbe pensare di effettuare una cancellazione di tutti i numeri "gialli" ma avrai due etichette senza valori (con errori)
meglio sarebbe inserire un messaggio che in questi casi avverta che non hai inserito un multiplo di 16 e che corregge la cella BI8 portandolo al primo numero utile multiplo di 16 (nell'esempio a 20 o 36 se hai scelto 34 etc etc)
Ma lo vediamo in un secondo tempo