di corvus44 » 12/06/14 00:15
Ciao Anthony
Mi accorgo solo adesso che avevi risposto all'ultimo mio intervento, con il semplice login la Tua risposta non compariva al fondo del topic, è apparsa solo ora che sto scrivendo (forse troppe domande e risposte?).
Ti ringrazio comunque, stranamente ero riuscito a comprendere la soluzione e risolvere il problema, certo che la Tua Macro è per me veramente ostica, pensavo ad una difficile soluzione ed invece era una banalità.
Non con il registratore macro, o modificandone una esistente ho creato la mia prima macro (eureka) per stampare i cartellini gara che ho disposto in 4 fogli denominati, "Cart 1°turno", "Cart. 2°turno", ecc.. ogni foglio contiene lo schema di 12 cartellini ( 4 cartellini per ogni pagina formato A4, tot. 3 pagine A4 per foglio), ognuno dei cartellini contiene i riferimenti alle celle del foglio sorteggi con i nominativi estratti, spero di essere stato chiaro.
Sub stcart()
'
' stcart1 Macro
'
NumPart = InputBox("Digita il numero partite per le quali stampare i cartellini", "numero partite")
Set SorgBase = Sheets("ISCRITTI").Range("B5")
Playrs = Range(SorgBase, SorgBase.End(xlDown)).Rows.Count
For x = 1 To NumPart
If x = 1 Then GoTo ct1
If x = 2 Then GoTo ct2
If x = 3 Then GoTo ct3
If x = 4 Then GoTo ct4
ct1: Sheets("Cart. 1° Turno").Select
GoTo continua
ct2: Sheets("Cart. 2° Turno").Select
GoTo continua
ct3: Sheets("Cart. 3° Turno").Select
GoTo continua
ct4: Sheets("Cart. 4° Turno").Select
GoTo continua
continua: ActiveSheet.Unprotect
' per evitare la stampa di pagine vuote
If Playrs <= 32 Then ' normalmente gli iscritti sono sempre >16 e < di 48
Range("B1:F73").Select
ActiveSheet.PageSetup.PrintArea = "$B$1:$F$73"
GoTo vai
Else
Range("A1:F110").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$110"
vai:
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" 'comando da registratore macro
Application.Wait Now + TimeValue("00:00:20") ' tempo di attesa per evitare riempimento buffer serve? ma---
End If
ActiveSheet.Protect
Next x
End Sub
La macro funziona, ma nelle varie prove mi è capitato un inceppamento della carta nella stampante, posso mettere un comando che premendo ES: Esc , blocchi la macro e annulli la stampa?, sono ben accette eventuali modifiche di ottimizzazione.
Grazie e Saluti
Corvus
Win 7 + Office 2007
Win 8.1 + Office 2013