Note: The other languages of the website are Google-translated. Back to English
English English

 Come aumentare automaticamente il valore della cella dopo ogni stampa?

Supponendo di avere una pagina del foglio di lavoro da stampare in 100 copie, la cella A1 è il numero di controllo Company-001, ora, vorrei che il numero aumentasse di 1 dopo ogni stampa. Ciò significa che quando stampo la seconda copia, il numero verrà automaticamente aumentato a Company-002, la terza copia, il numero sarà Company-003 ... cento copie, il numero sarà Company-100. C'è qualche trucco per risolvere questo problema in Excel rapidamente e possibilmente?

Incremento automatico del valore della cella dopo ogni stampa con codice VBA


freccia blu freccia destra Incremento automatico del valore della cella dopo ogni stampa con codice VBA

Normalmente, non esiste un modo diretto per risolvere questo compito in Excel, ma, qui, creerò un codice VBA per affrontarlo.

1. Tieni premuto il ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla il codice seguente nel file Modulo Finestra.

Codice VBA: valore della cella di incremento automatico dopo ogni stampa:

Sub IncrementPrint()
'updateby Extendoffice
    Dim xCount As Variant
    Dim xScreen As Boolean
    Dim I As Long
    On Error Resume Next
LInput:
    xCount = Application.InputBox("Please enter the number of copies you want to print:", "Kutools for Excel")
    If TypeName(xCount) = "Boolean" Then Exit Sub
    If (xCount = "") Or (Not IsNumeric(xCount)) Or (xCount < 1) Then
        MsgBox "error entered, please enter again", vbInformation, "Kutools for Excel"
        GoTo LInput
    Else
        xScreen = Application.ScreenUpdating
        Application.ScreenUpdating = False
        For I = 1 To xCount
            ActiveSheet.Range("A1").Value = " Company-00" & I
            ActiveSheet.PrintOut
        Next
        ActiveSheet.Range("A1").ClearContents
        Application.ScreenUpdating = xScreen
    End If
End Sub

3. Quindi premere F5 chiave per eseguire questo codice e viene visualizzata una finestra di messaggio per ricordarti di inserire il numero di copie che desideri stampare il foglio di lavoro corrente, vedi screenshot:

incremento del documento durante la stampa 1

4. Clic OK pulsante e il foglio di lavoro corrente sta stampando ora e, allo stesso tempo, i fogli di lavoro stampati sono numerati Company-001, Company-002, Company-003 ... nella cella A1 di cui hai bisogno.

Note:: Nel codice sopra, la cella A1 verranno inseriti i numeri di sequenza che hai ordinato e il valore della cella originale in A1 sarà cancellato. E "Azienda-00"È il numero di sequenza, puoi modificarli secondo le tue necessità.


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office / Excel 2007-2019 e 365. Supporta tutte le lingue. Facile distribuzione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce centinaia di clic del mouse ogni giorno!
fondo officetab
Commenti (51)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Questo codice è fantastico, è esattamente quello di cui ho bisogno, tuttavia, mi chiedevo se esiste un modo per iniziare a stampare dal numero inserito nella cella "A1"? Ad esempio, se ho stampato 100 copie, alla prossima tiratura dovrò stampare dal numero 101 e contare da lì. Ho provato alcune regolazioni del codice ma sembra prendere solo il numero inserito nella cella, ovvero 101, aggiungere 1 e quindi il resto delle stampe è bloccato con quell'unico numero, ovvero 102... Il tuo aiuto sarebbe molto apprezzato: -)
Questo commento è stato fatto dal moderatore sul sito
Se non hai già trovato una soluzione, puoi modificare la riga 17 del codice in questo modo: ActiveSheet.Range("A1").Value = Range("A1").Value + 1
Questo aggiungerà +1 al numero che hai nella cella A1.
Questo commento è stato fatto dal moderatore sul sito
Non viene inviato alla mia stampante
Questo commento è stato fatto dal moderatore sul sito
Buongiorno,

in esecuzione la macro cancella il nome delle cellule.
Je voudrais par exemple avoir A1= 153, je lance une impression de 10 copie. J'ai dis feuilles imprimée de 154 à 164 ET je voudrais que le nombre de la cellule soit aussi 164.
Comme ça quando je relance une impression ça prend le chiffre dans A1.
J'aimerais aussi si possible na pas à avoir aller dans basic. Si ricorda che la macro è attiva direttamente tramite l'option impression. È possibile?
Questo commento è stato fatto dal moderatore sul sito
Buongiorno,

in esecuzione la macro cancella il nome in A1.

je voudrais si c'est possible par exemple A1=153 et faire une impression de 10 copie. donc je récupéré 10 impressions numérotées de 154 à 164 ET je voudrais aussi que le 153 en A1 s'incrémente jusqu'à 164.

Vorrei anche se possibile non utilizzare l'utilizzo di base per l'impressione. je voudrais pouvoir declancher directement la macro en utilisant l'option impression tout simplement.

Grazie per il vostro aiuto
Questo commento è stato fatto dal moderatore sul sito
Ciao kaji,
Per risolvere il tuo problema, applica il codice seguente:
Sub IncrementPrint_Num()
Dim xCount As Variant
Dim xScreen As Boolean
Dim I As Long
Dim xInt As Integer
On Error Resume Next
xInt = 153 'number
LInput:
xCount = Application.InputBox("Please enter the number of copies you want to print:", "Kutools for Excel")
If TypeName(xCount) = "Boolean" Then Exit Sub
If (xCount = "") Or (Not IsNumeric(xCount)) Or (xCount < 1) Then
MsgBox "error entered, please enter again", vbInformation, "Kutools for Excel"
GoTo LInput
Else
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = 1 To xCount
xInt = xInt + 1
ActiveSheet.Range("A1").Value = xInt
ActiveSheet.PrintOut
Next
Application.ScreenUpdating = xScreen
End If
End Sub

Per favore, prova, spero che possa aiutarti, se hai altri problemi, commenta qui.
Questo commento è stato fatto dal moderatore sul sito
Trovi in ​​allegato i codici modificati.

Ed eccolo nel testo:
Incremento secondarioStampa()
'aggiornamento entro Extendoffice
Dim xEnd come variante
Dim xInizia come variante
Oscura xScreen come booleano
Dim I quanto a lungo
On Error Resume Next
LIngresso:
xStart = Application.InputBox("Inserisci il primo numero:", "Ktools for Excel")
xEnd = Application.InputBox("Inserisci l'ultimo numero:", "Ktools for Excel")
Se TypeName(xCount) = "Boolean" Quindi esci da Sub
Se (xStart = "") oppure (non è numerico(xStart)) oppure (xStart < 1) allora
MsgBox "Errore inserito, per favore inserirlo di nuovo", vbInformation, "Ktools for Excel"
Vai a LInput
Altro
xScreen = Applicazione.Aggiornamento schermo
Application.ScreenUpdating = False
For I = xInizio fino a xFine
ActiveSheet.Range("A1").Value = " Company-00" & I
ActiveSheet.PrintOut
Successiva
ActiveSheet.Range ("A1"). ClearContents
Application.ScreenUpdating = xScreen
End If
End Sub
Questo commento è stato fatto dal moderatore sul sito
Ho bisogno di numeri di serie come IA1-055242, IA1-055243, IA1-055244 .....
Questo commento è stato fatto dal moderatore sul sito
Grazie per aver postato questo, è molto utile. La mia domanda è questa: ho 2 codici a barre diversi che devono essere incrementati su una pagina, come posso modificare il codice per farlo?
Questo commento è stato fatto dal moderatore sul sito
Scusa se te lo chiedo in un post separato... I miei numeri di serie iniziano con ZERO, ma quando eseguo il programma elimina gli zeri. Ho provato a convertire il campo numerico in testo, ma non è stato risolto. Altre idee?
Questo commento è stato fatto dal moderatore sul sito
R-Click Cell, Formato, Personalizzato, Dove dice "Generale", sostituiscilo con tanti zeri quanti saranno il tuo numero di serie. Questo forzerà la quantità di zeri necessaria davanti al tuo numero di serie. Se ho un gruppo di numeri di serie che sono numeri di serie a 10 cifre, inserisco 0000000000 nel campo Tipo per ottenere "0004563571" da visualizzare nel campo del numero di serie.
Questo commento è stato fatto dal moderatore sul sito
Grazie Art. L'ho provato ma il codice a barre continuava a eliminare gli zeri iniziali... anche dopo aver eseguito un formato numerico personalizzato.
Questo commento è stato fatto dal moderatore sul sito
il mio numero di serie inizia con 227861 da dove posso stampare
Questo commento è stato fatto dal moderatore sul sito
stampato come 30 copie ma ora non riesco a stampare, ho eseguito lo script molte volte ma non funziona, non fare nulla :(
Questo commento è stato fatto dal moderatore sul sito
grazie per quanto sopra, davvero utile. è possibile salvare e ricordare l'ultimo valore
Questo commento è stato fatto dal moderatore sul sito
Ciao, Pieter,
Per salvare e ricordare l'ultimo valore stampato quando si stampa la prossima volta, è necessario applicare il seguente codice VBA:

Incremento secondarioStampa()
Dim xConta come variante
Oscura xScreen come booleano
Dim I quanto a lungo
Dim xM finché
Dim xMNWS come foglio di lavoro
Dim xAWS come foglio di lavoro
On Error Resume Next
LIngresso:
xCount = Application.InputBox("Inserisci il numero di copie che vuoi stampare:", "Ktools for Excel")
Se TypeName(xCount) = "Boolean" Quindi esci da Sub
Se (xCount = "") O (Non IsNumeric(xCount)) O (xCount < 1) Allora
MsgBox "errore inserito, per favore inserirlo di nuovo", vbInformation, "Ktools for Excel"
Vai a LInput
Altro
xScreen = Applicazione.Aggiornamento schermo
Imposta xAWS = Foglio attivo
In caso di errore Vai a EMarkNumberSheet
Imposta xMNWS = Fogli("IncrementPrint_MarkNumberSheet")
EMarkNumberSheet:
Se xMNWS non è niente allora
Imposta xMNWS = Application.Worksheets.Add(Type:=xlWorksheet)
xMNWS.Name = "IncrementPrint_MarkNumberSheet"
xMNWS.Range("A1").Valore = 0
xM = 0
xMNWS.Visible = xlSheetVeryHidden
Altro
xM = xMNWS.Range ("A1"). Valore
End If
Application.ScreenUpdating = False
Per I = 1 Per xCount
xM = xM + 1
xAWS.Range("A1").Valore = " Azienda-00" & xM
xAWS.PrintOut
Successiva
xMNWS.Range("A1").Valore = xM
xAWS.Range ("A1"). ClearContents
Application.ScreenUpdating = xScreen
End If
End Sub

Se è necessario ripristinare il numero stampato sul numero predefinito, eseguire prima il codice seguente, quindi eseguire il codice sopra per stampare.

Sub IncrementPrint_Reinstall()
Dim xMNWS come foglio di lavoro
In caso di errore Vai a EMarkNumberSheet
Imposta xMNWS = Fogli("IncrementPrint_MarkNumberSheet")
EMarkNumberSheet:
Se non xMNWS non è niente allora
Application.DisplayAlerts = False
xMNWS.Visible = xlSheetHidden
xMNWS.Elimina
Application.DisplayAlerts = Vero
End If
End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie per questo codice. Ho una domanda. Ho usato questo codice ma le serie stanno saltando come 0071,0072,0073. è successo come 3 volte tra le serie 1-100. Quindi ho chiuso il vba senza salvare, reinstallare il codice ma stampa l'ultima serie salvata (0032). La mia domanda è: come posso stampare continuamente senza che la serie salti e come posso ristampare di nuovo a partire da 101? apprezzerò davvero la tua risposta. mi dispiace per questo. Non sono un programmatore, spero che tu capisca. Grazie! 
Questo commento è stato fatto dal moderatore sul sito
grazie per averlo postato, è molto utile. La mia domanda è questa: ho 2 codici a barre diversi che devono essere incrementati su una pagina, come posso modificare il codice per farlo?
Questo commento è stato fatto dal moderatore sul sito
Ciao Desmond,
Se hai 2 posti su una pagina (come 2 buoni o 2 modelli / 2 buoni ecc.), puoi provare a utilizzare il codice seguente. (Supponendo che il tuo 1° codice a barre e il 2° codice a barre si trovino nelle celle "A1" e "A20" della stessa pagina, questo codice aumenterà i valori come Company-001 e Company-002 sulla prima pagina e Company-003 e Company-004 sulla seconda pagina e così via È possibile modificare il numero di cella e il nome dell'azienda a piacere nelle righe 20, 21, 23, 24 e 28,29 del codice. 
Ti chiederà anche di inserire il numero iniziale e il numero finale (grazie a geniusman per questa parte del codice). Quindi, ad esempio, il tuo n. è 1 e termina n. 8, stamperà 4 pagine di 1,2 in 1a pagina, 3,4 in 2a pagina, 5,6 in 3a pagina e infine 7,8 in 4a pagina. Spero che aiuti te o chiunque sia alla ricerca di questo tipo di necessità/requisito. 
Codice modificato:------------------------------------------------ ------------Sub IncrementPrint()
'aggiornamento entro Extendoffice
Dim xEnd come variante
Dim xInizia come variante
Oscura xScreen come booleano
Dim I quanto a lungo
On Error Resume Next
LIngresso:
xStart = Application.InputBox("Inserisci il primo numero:", "Ktools for Excel")
xEnd = Application.InputBox("Inserisci l'ultimo numero:", "Ktools for Excel")
Se TypeName(xCount) = "Boolean" Quindi esci da Sub
Se (xStart = "") oppure (non è numerico(xStart)) oppure (xStart < 1) allora
MsgBox "Errore inserito, per favore inserirlo di nuovo", vbInformation, "Ktools for Excel"
Vai a LInput
Altro
xScreen = Applicazione.Aggiornamento schermo
Application.ScreenUpdating = False
For I = xInizio fino a xFine
Se io Mod 2 = 0 Allora
ActiveSheet.Range ("A1"). Valore = " Company-00" e I + 1
ActiveSheet.Range("A20").Value = " Company-00" & I
Altro
ActiveSheet.Range ("A20"). Valore = " Company-00" e I + 1
ActiveSheet.Range("A1").Value = " Company-00" & I
ActiveSheet.PrintOut
End If
Successiva
ActiveSheet.Range ("A1"). ClearContents
ActiveSheet.Range ("A20"). ClearContents
Application.ScreenUpdating = xScreen
End If
End Sub

-------------------------------------------------- -------------------------------------------------- ----- Grazie, RNS
Questo commento è stato fatto dal moderatore sul sito
La mia cella è I3 e il numero è 2298 quando provo il (codice VBA: incremento automatico del valore della cella dopo ogni stampa :) mi dà 22981 come faccio a portarlo a 2298,2299,2300
Questo commento è stato fatto dal moderatore sul sito
Ciao, jennifer,
Per risolvere il tuo problema, applica il seguente codice VBA:
Nota: modificare il testo e il numero del prefisso con il proprio.

Sub IncrementPrint_Num()
Dim xConta come variante
Oscura xScreen come booleano
Dim I quanto a lungo
Dim xStr come stringa
Dim xInt come intero
On Error Resume Next
xStr = "Azienda-" 'testo del prefisso
xInt = 2291 'numero
LIngresso:
xCount = Application.InputBox("Inserisci il numero di copie che vuoi stampare:", "Ktools for Excel")
Se TypeName(xCount) = "Boolean" Quindi esci da Sub
Se (xCount = "") O (Non IsNumeric(xCount)) O (xCount < 1) Allora
MsgBox "errore inserito, per favore inserirlo di nuovo", vbInformation, "Ktools for Excel"
Vai a LInput
Altro
xScreen = Applicazione.Aggiornamento schermo
Application.ScreenUpdating = False
Per I = 1 Per xCount
xInt = xInt + 1
ActiveSheet.Range ("A1"). Valore = xStr e xInt
ActiveSheet.PrintOut
Successiva
ActiveSheet.Range ("A1"). ClearContents
Application.ScreenUpdating = xScreen
End If
End Sub

Per favore, provalo, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Ciao puoi aiutarmi con questo? Voglio che xINT sia più di 5 cifre. Ogni volta che inserisco un numero con 6 cifre, il conteggio torna a 1. Come posso impedirlo?
Questo commento è stato fatto dal moderatore sul sito
Ciao,molto interessante anche se sto cercando una soluzione diversa che non sono riuscito a trovare e anche se ho provato a personalizzare il codice non sono riuscito a ottenere finora.Seguendo il tuo esempio avrei bisogno di stampare la stessa pagina 100 volte, nello stesso PDF ad esempio e su ogni pagina il numero di pagina è incrementato.Come ho detto ho provato il metodo di fascicolazione ma come ho capito ti permette di stampare insieme se hai bisogno di più copie della stessa stampa.grazie in anticipo Giuseppe
Questo commento è stato fatto dal moderatore sul sito
Ciao, questo codice funziona in modo eccellente, ma dopo il valore della cella 32767 torna a 1. Dopo questo valore viene stampato dal numero 1.
Questo commento è stato fatto dal moderatore sul sito
grazie mille, per me funziona. E riesco a fare qualche piccola modifica per soddisfare le mie esigenze. Apprezzo davvero la tua condivisione.
Questo commento è stato fatto dal moderatore sul sito
Ciao Jennifer, prova questo
Incremento secondarioStampa()
'aggiornamento entro Extendoffice 20160530
Dim xConta come variante
Oscura xScreen come booleano
Dim I quanto a lungo
On Error Resume Next
LIngresso:
xCount = Application.InputBox("Inserisci il numero di copie che vuoi stampare:", "Ktools for Excel")
Se TypeName(xCount) = "Boolean" Quindi esci da Sub
Se (xCount = "") O (Non IsNumeric(xCount)) O (xCount < 1) Allora
MsgBox "errore inserito, per favore inserirlo di nuovo", vbInformation, "Ktools for Excel"
Vai a LInput
Altro
xScreen = Applicazione.Aggiornamento schermo
Application.ScreenUpdating = False
Per I = 1 Per xCount

ActiveSheet.PrintOut
ActiveSheet.Range("J18").Valore = ActiveSheet.Range("J18").Valore + 1
Successiva
'ActiveSheet.Range ("J18"). ClearContents'

Application.ScreenUpdating = xScreen
End If
End Sub
Questo commento è stato fatto dal moderatore sul sito
Grazie mille
Questo commento è stato fatto dal moderatore sul sito
Funziona bene per la stampa di # incrementali. Come faccio a stampare ogni 5, quando necessario?
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per selezionare quali valori voglio stampare? per esempio ho stampato la sequenza da 1 a 30 ma ho bisogno di ristampare di nuovo la sequenza da 15 a 19.
Questo commento è stato fatto dal moderatore sul sito
ehi, voglio cambiare il numero del numero di cella K11 dopo la stampa in 1-2-3-4-5-6 ecc. e dimmi anche come chiamare quella funzione pls help
Questo commento è stato fatto dal moderatore sul sito
Mi chiedevo come apportare una piccola modifica in modo che stampi 1 di 10, 2 di 10, 3 di 10, ecc.
Altrimenti funziona alla grande. Grazie.
Questo commento è stato fatto dal moderatore sul sito
ciao, il mio nome è sicuro di avere un dato in formato excel senza alcun numero di serie a cui piace un esempio una lettera di vettura. ho bisogno di prenderlo come 100 pagine stampate e ho bisogno di stampare il numero di serie di tutto ciò di cui ho bisogno da 4 cifre, ma durante la stampa devo farlo in modo manuale. puoi spiegare chi stampare genera automaticamente il codice del numero di serie durante la stampa
Questo commento è stato fatto dal moderatore sul sito
Grande !! Non sono un programmatore ma sono riuscito a cambiare il riferimento di cella e la numerazione uniq che volevo. Ha funzionato benissimo per me Dio ti benedica!
Questo commento è stato fatto dal moderatore sul sito
È possibile aggiungere anche a questo codice, in modo che vengano stampate automaticamente 2 copie?
Questo commento è stato fatto dal moderatore sul sito
Penserei che potresti cambiare questa parte:ActiveSheet.Range("A1").Value = " Company-00" & I
ActiveSheet.PrintOut

a
ActiveSheet.Range("A1").Value = " Company-00" & I
ActiveSheet.PrintOut
ActiveSheet.PrintOut

per ottenere 2 copie di ciascuno.
Questo commento è stato fatto dal moderatore sul sito
Mi chiedevo se puoi semplicemente stampare direttamente il file dopo la riapertura e segue ancora il numero sequenziale?
Quello che sto facendo attualmente è ogni volta che apro il file, ALT + F11 poi F5 e indico il numero di copie. Quindi stamperà il file con la numerazione corretta, quindi salverà di nuovo. e quando riaprirò di nuovo, devo solo fare lo stesso passaggio.
Se c'è un codice in cui puoi semplicemente stamparlo direttamente ogni volta che apri il file e seguirà comunque la numerazione sequenziale?
grazie in anticipo
Questo commento è stato fatto dal moderatore sul sito
Mi chiedevo se puoi semplicemente stampare direttamente il file dopo la riapertura e segue ancora il numero sequenziale?

Quello che sto facendo attualmente è ogni volta che apro il file, ALT + F11 poi F5 e indico il numero di copie. Quindi stamperà il file con la numerazione corretta, quindi salverà di nuovo. e quando riaprirò di nuovo, devo solo fare lo stesso passaggio.

Se c'è un codice in cui puoi semplicemente stamparlo direttamente ogni volta che apri il file e seguirà comunque la numerazione sequenziale?

grazie in anticipo
Questo commento è stato fatto dal moderatore sul sito
Grazie mille per aver condiviso il codice sopra. È molto utile per tutti. Possiamo aggiungere del codice in più per aumentare 8 numeri invece di 1 dopo la stampa? Attendo risposta. Grazie
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite