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

 Como incrementar automaticamente o valor da célula após cada impressão?

Supondo que eu tenha uma folha de trabalho necessária para imprimir 100 cópias, a célula A1 é o número do cheque Empresa-001, agora, gostaria que o número aumentasse em 1 após cada impressão. Isso significa que quando eu imprimir a segunda cópia, o número será aumentado para Empresa-002 automaticamente, a terceira cópia, o número será Empresa-003 ... cem cópias, o número será Empresa-100. Existe algum truque para resolver esse problema no Excel de forma rápida e possível?

Valor de célula de incremento automático após cada impressão com código VBA


seta azul bolha direita Valor de célula de incremento automático após cada impressão com código VBA

Normalmente, não existe uma maneira direta de você resolver essa tarefa no Excel, mas, aqui, vou criar um código VBA para lidar com isso.

1. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole o seguinte código no Módulo Janela.

Código VBA: valor de célula de incremento automático após cada impressão:

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. Então aperte F5 para executar este código, e uma caixa de prompt é exibida para lembrá-lo de inserir o número de cópias que deseja imprimir na planilha atual, consulte a captura de tela:

incremento doc ao imprimir 1

4. Clique OK e sua planilha atual está sendo impressa agora e, ao mesmo tempo, as planilhas impressas são numeradas Company-001, Company-002, Company-003 ... na célula A1 conforme necessário.

Nota: No código acima, a célula A1 serão inseridos os números de sequência que você solicitou e o valor da célula original em A1 será apagado. E “Empresa-00”É o número de sequência, você pode alterá-los conforme sua necessidade.


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (51)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Esse código é incrível, é exatamente o que eu preciso, porém, queria saber se existe uma forma de começar a imprimir a partir do número que está digitado na célula "A1"? Por exemplo, se eu imprimi 100 cópias, na próxima tiragem precisarei imprimir a partir do número 101 e contar a partir daí. Eu tentei alguns ajustes de código, mas parece que só pega o número inserido na célula, ou seja, 101, adiciona 1 e, em seguida, o restante das impressões fica preso a esse número, ou seja, 102... Sua ajuda seria muito apreciada: -)
Este comentário foi feito pelo moderador no site
Se você ainda não encontrou uma solução, pode editar a linha 17 do código para isso: ActiveSheet.Range("A1").Value = Range("A1").Value + 1
Isso adicionará +1 ao número que você tem na célula A1.
Este comentário foi feito pelo moderador no site
Não envia para minha impressora
Este comentário foi feito pelo moderador no site
Bom Dia,

ao executar a macro, apaga o nome da minha célula.
Je voudrais par exemple avoir A1= 153, je lança une impressão de 10 exemplares. J'ai dis feuilles imprimée de 154 a 164 ET je voudrais que le nombre de la cellule soit aussi 164.
Come ça quand je relance une impressão ça prend le chiffre dans A1.
J'aimerais aussi se possível na pas à avoir aller dans basic. je voudrais que la macro s'active directement via l'option print. O que é possível?
Este comentário foi feito pelo moderador no site
Bom Dia,

ao executar a macro, apague o nome em A1.

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

Je voudrais aussi, se possível, não use o básico para impressão. je voudrais pouvoir declancher directment la macro en utilisant l'option print tout simplement.

Obrigado pela vossa ajuda
Este comentário foi feito pelo moderador no site
Olá kaji,
Para resolver seu problema, por favor, aplique o código abaixo:
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

Por favor, tente, espero que possa ajudá-lo, se você tiver qualquer outro problema, por favor, comente aqui.
Este comentário foi feito pelo moderador no site
Encontre em anexo os códigos modificados.

E aqui está no texto:
Sub IncrementPrint()
'atualizar por Extendoffice
Dim xEnd como variante
Dim xStart Como Variante
Escurecer xScreen como booleano
Escurecer eu enquanto
On Error Resume Next
LEntrada:
xStart = Application.InputBox("Digite o primeiro número:", "Kutools for Excel")
xEnd = Application.InputBox("Digite o último número:", "Kutools for Excel")
Se TypeName(xCount) = "Boolean" Então Exit Sub
If (xStart = "") Ou (Not IsNumeric(xStart)) Ou (xStart < 1) Then
MsgBox "Erro inserido, digite novamente", vbInformation, "Kutools for Excel"
Goto Linput
Outro
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
Para I = xStart To xEnd
ActiveSheet.Range("A1").Value = " Company-00" & I
ActiveSheet.PrintOut
Seguinte
ActiveSheet.Range("A1").ClearContents
Application.ScreenUpdating = xScreen
Se acabar
End Sub
Este comentário foi feito pelo moderador no site
Eu preciso de números de série como IA1-055242, IA1-055243, IA1-055244 .....
Este comentário foi feito pelo moderador no site
Obrigado por postar isso, é muito útil. Minha pergunta é a seguinte: tenho 2 códigos de barras diferentes que precisam ser incrementados em uma página, como posso modificar o código para fazer isso?
Este comentário foi feito pelo moderador no site
Desculpe perguntar isso em um post separado... Meus números de série começam com um ZERO, mas quando eu executo o programa ele elimina os zeros. Tentei converter o campo de número em texto, mas isso não resolveu. Outras ideias?
Este comentário foi feito pelo moderador no site
R-Click Cell, Format, Custom, onde diz 'General', substitua isso por tantos zeros quanto seu número de série for. Isso forçará a quantidade de zeros necessária na frente do seu número de série. Se eu tiver um grupo de números de série que são seriais de 10 dígitos, insiro 0000000000 no campo Tipo para obter '0004563571' para exibir no campo de número de série.
Este comentário foi feito pelo moderador no site
Obrigado Arte. Eu tentei isso, mas o código de barras continuou eliminando os zeros à esquerda... mesmo depois de fazer um formato de número personalizado.
Este comentário foi feito pelo moderador no site
meu número de série começa com 227861 como posso imprimir de
Este comentário foi feito pelo moderador no site
imprimi umas 30 cópias mas agora não consigo imprimir, rodei o script muitas vezes mas não funciona, não faço nada :(
Este comentário foi feito pelo moderador no site
obrigado pelo acima, realmente útil. é possível salvar e lembrar o último valor
Este comentário foi feito pelo moderador no site
Olá, Pieter,
Para salvar e lembrar o último valor impresso na próxima impressão, você deve aplicar o seguinte código VBA:

Sub IncrementPrint()
Dim xContar como Variante
Escurecer xScreen como booleano
Escurecer eu enquanto
Dim xM por muito tempo
Dim xMNWS como planilha
Dim xAWS como planilha
On Error Resume Next
LEntrada:
xCount = Application.InputBox("Digite o número de cópias que deseja imprimir:", "Kutools for Excel")
Se TypeName(xCount) = "Boolean" Então Exit Sub
If (xCount = "") Ou (Not IsNumeric(xCount)) Ou (xCount < 1) Then
MsgBox "erro digitado, digite novamente", vbInformation, "Kutools for Excel"
Goto Linput
Outro
xScreen = Application.ScreenUpdating
Definir xAWS = ActiveSheet
Em erro GoTo EMarkNumberSheet
Set xMNWS = Sheets("IncrementPrint_MarkNumberSheet")
EMarkNumberSheet:
Se xMNWS não é nada, então
Definir xMNWS = Application.Worksheets.Add(Type:=xlWorksheet)
xMNWS.Name = "IncrementPrint_MarkNumberSheet"
xMNWS.Range("A1").Value = 0
xM = 0
xMNWS.Visible = xlSheetVeryHidden
Outro
xM = xMNWS.Range("A1").Value
Se acabar
Application.ScreenUpdating = False
Para I = 1 Para xCount
xM = xM + 1
xAWS.Range("A1").Value = " Company-00" & xM
xAWS.PrintOut
Seguinte
xMNWS.Range("A1").Value = xM
xAWS.Range("A1").ClearContents
Application.ScreenUpdating = xScreen
Se acabar
End Sub

Se você precisar redefinir o número impresso para o número padrão, execute o código abaixo primeiro e, em seguida, execute o código acima para imprimir.

Sub IncrementPrint_Reinstall()
Dim xMNWS como planilha
Em erro GoTo EMarkNumberSheet
Set xMNWS = Sheets("IncrementPrint_MarkNumberSheet")
EMarkNumberSheet:
Se não xMNWS não é nada, então
Application.DisplayAlerts = False
xMNWS.Visible = xlSheetHidden
xMNWS.Excluir
Application.DisplayAlerts = Verdadeiro
Se acabar
End Sub
Este comentário foi feito pelo moderador no site
Oi, obrigado por este código .. Eu tenho uma pergunta. Eu usei este código, mas a série está pulando como 0071,0072,0073. aconteceu como 3x entre as séries 1-100. Então eu fechei o vba sem salvar reinstalo o código mas ele imprime a última série que foi salva (0032). Minha pergunta é como posso imprimir continuamente sem a série pular e como posso reimprimir novamente a partir de 101? vai realmente apreciar a sua resposta. desculpa por isso. Eu não sou um programador, espero que você entenda. Obrigada! 
Este comentário foi feito pelo moderador no site
obrigado por postar isso, é muito útil. Minha pergunta é a seguinte: tenho 2 códigos de barras diferentes que precisam ser incrementados em uma página, como posso modificar o código para fazer isso?
Este comentário foi feito pelo moderador no site
Olá Desmond,
Se você tiver 2 lugares em uma página (como 2 cupons ou 2 modelos / 2 vouchers etc.), tente usar o código abaixo. (Supondo que seu 1º código de barras e 2º código de barras estejam nas células "A1" e "A20" da mesma página, este código incrementará valores como Empresa-001 e Empresa-002 na primeira página e Empresa-003 e Empresa-004 na segunda página Você pode editar o número da célula e o nome da empresa como desejar nas linhas 20, 21, 23, 24 e 28,29 do código. 
Ele também solicitará que você insira o número inicial e o número final (Obrigado ao geniusman por esta parte do código). Então, por exemplo, o seu número inicial. é 1 e terminando não. 8, imprimirá 4 páginas de 1,2 na 1ª página, 3,4 na 2ª página, 5,6 na 3ª página e finalmente 7,8 na 4ª página. Espero que ajude você ou qualquer pessoa que esteja procurando por esse tipo de necessidade/requisito. 
Código modificado:----------------------------------------------- ------------Sub IncrementPrint()
'atualizar por Extendoffice
Dim xEnd como variante
Dim xStart Como Variante
Escurecer xScreen como booleano
Escurecer eu enquanto
On Error Resume Next
LEntrada:
xStart = Application.InputBox("Digite o primeiro número:", "Kutools for Excel")
xEnd = Application.InputBox("Digite o último número:", "Kutools for Excel")
Se TypeName(xCount) = "Boolean" Então Exit Sub
If (xStart = "") Ou (Not IsNumeric(xStart)) Ou (xStart < 1) Then
MsgBox "Erro inserido, digite novamente", vbInformation, "Kutools for Excel"
Goto Linput
Outro
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
Para I = xStart To xEnd
Se Mod 2 = 0 Então
ActiveSheet.Range("A1").Value = " Company-00" & I + 1
ActiveSheet.Range("A20").Value = " Company-00" & I
Outro
ActiveSheet.Range("A20").Value = " Company-00" & I + 1
ActiveSheet.Range("A1").Value = " Company-00" & I
ActiveSheet.PrintOut
Se acabar
Seguinte
ActiveSheet.Range("A1").ClearContents
ActiveSheet.Range("A20").ClearContents
Application.ScreenUpdating = xScreen
Se acabar
End Sub

-------------------------------------------------- -------------------------------------------------- -----Obrigado, RNS
Este comentário foi feito pelo moderador no site
Minha célula é I3 e o número é 2298 quando tento o (código VBA: Valor da célula de incremento automático após cada impressão :) me dá 22981 como faço para chegar a 2298,2299,2300
Este comentário foi feito pelo moderador no site
Olá, jennifer,
Para lidar com seu problema, aplique o seguinte código VBA:
Nota: Por favor, altere o texto e o número do prefixo para os seus próprios.

Sub IncrementPrint_Num()
Dim xContar como Variante
Escurecer xScreen como booleano
Escurecer eu enquanto
Dim xStr As String
Dim xInt como inteiro
On Error Resume Next
xStr = "Empresa-" 'texto de prefixo
xInt = 2291 'número
LEntrada:
xCount = Application.InputBox("Digite o número de cópias que deseja imprimir:", "Kutools for Excel")
Se TypeName(xCount) = "Boolean" Então Exit Sub
If (xCount = "") Ou (Not IsNumeric(xCount)) Ou (xCount < 1) Then
MsgBox "erro digitado, digite novamente", vbInformation, "Kutools for Excel"
Goto Linput
Outro
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
Para I = 1 Para xCount
xInt = xInt + 1
ActiveSheet.Range("A1").Value = xStr & xInt
ActiveSheet.PrintOut
Seguinte
ActiveSheet.Range("A1").ClearContents
Application.ScreenUpdating = xScreen
Se acabar
End Sub

Por favor, tente, espero que possa ajudá-lo!
Este comentário foi feito pelo moderador no site
Olá você pode me ajudar com isso? Eu quero que o xINT tenha mais de 5 dígitos. Sempre que coloco um número com 6 dígitos, a contagem volta a 1. Como posso evitar isso?
Este comentário foi feito pelo moderador no site
Oi, muito interessante apesar de estar procurando uma solução diferente que não encontrei e mesmo tentando customizar o código não consegui até agora.Seguindo seu exemplo eu precisaria imprimir a mesma página 100 vezes, no mesmo PDF, por exemplo, e em cada página o número da página foi incrementado. Como eu disse, tentei o método de agrupamento, mas pelo que entendi, ele permite que você imprima juntos se precisar de várias cópias da mesma impressão. obrigado antecipadamente Giuseppe
Este comentário foi feito pelo moderador no site
Oi, este código está funcionando excelente, mas após o valor da célula 32767 novamente ele volta para 1. Após esse valor está imprimindo a partir do número 1.
Este comentário foi feito pelo moderador no site
muito obrigado, funciona para mim. E eu consigo fazer algumas pequenas alterações para atender às minhas necessidades. Realmente aprecio a sua partilha.
Este comentário foi feito pelo moderador no site
Oi Jennifer, Tente isso
Sub IncrementPrint()
'atualizar por Extendoffice 20160530
Dim xContar como Variante
Escurecer xScreen como booleano
Escurecer eu enquanto
On Error Resume Next
LEntrada:
xCount = Application.InputBox("Digite o número de cópias que deseja imprimir:", "Kutools for Excel")
Se TypeName(xCount) = "Boolean" Então Exit Sub
If (xCount = "") Ou (Not IsNumeric(xCount)) Ou (xCount < 1) Then
MsgBox "erro digitado, digite novamente", vbInformation, "Kutools for Excel"
Goto Linput
Outro
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
Para I = 1 Para xCount

ActiveSheet.PrintOut
ActiveSheet.Range("J18").Value = ActiveSheet.Range("J18").Value + 1
Seguinte
'ActiveSheet.Range("J18").LimparConteúdo'

Application.ScreenUpdating = xScreen
Se acabar
End Sub
Este comentário foi feito pelo moderador no site
Graças um milhão
Este comentário foi feito pelo moderador no site
Funciona bem para imprimir #'s incrementais. Como faço para imprimir a cada 5, quando necessário?
Este comentário foi feito pelo moderador no site
Existe uma maneira de selecionar quais valores eu quero imprimir? por exemplo, imprimi a sequência 1 a 30, mas preciso reimprimir a sequência 15 a 19 novamente.
Este comentário foi feito pelo moderador no site
Ei, eu quero alterar o número do número da célula K11 após a impressão para 1-2-3-4-5-6 etc. pls pode ajudar? e também me diga como chamar essa função pls help
Este comentário foi feito pelo moderador no site
Eu queria saber como fazer uma pequena alteração para que imprima 1 de 10, 2 de 10, 3 de 10, etc.
Caso contrário, isso funciona muito bem. Obrigado.
Este comentário foi feito pelo moderador no site
oi, meu nome é suresh eu tenho um dado em formato excel sem nenhum número de série que gosta de um exemplo de conta de caminho. eu preciso levá-lo como 100 páginas impressas e preciso imprimir o número de série o que eu preciso de 4 dígitos, mas durante a impressão eu tenho que fazer de maneira manual. você pode explicar quem imprimir automaticamente gerar o código do número de série durante a impressão
Este comentário foi feito pelo moderador no site
Excelente !! Não sou programador mas consegui mudar o Cell ref e a numeração uniq que eu queria. Funcionou muito bem para mim Deus te abençoe!
Este comentário foi feito pelo moderador no site
Também é possível adicionar a este código, para que 2 cópias sejam impressas automaticamente?
Este comentário foi feito pelo moderador no site
Eu acho que você poderia mudar esta parte: ActiveSheet.Range("A1").Value = " Company-00" & I
ActiveSheet.PrintOut

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

para obter 2 cópias de cada um.
Este comentário foi feito pelo moderador no site
Eu queria saber se você pode imprimir diretamente o arquivo após a reabertura e ele ainda segue o número sequencial?
O que estou fazendo atualmente é toda vez que abro o arquivo, ALT + F11 depois F5 e indico o número de cópias. Ele então imprimirá o arquivo com a numeração correta, depois é só salvar novamente. e quando vou reabrir novamente, só preciso fazer o mesmo passo.
Se houver um código em que você possa imprimi-lo diretamente toda vez que abrir o arquivo e ele ainda seguirá a numeração sequencial?
desde já, obrigado
Este comentário foi feito pelo moderador no site
Eu queria saber se você pode imprimir diretamente o arquivo após a reabertura e ele ainda segue o número sequencial?

O que estou fazendo atualmente é toda vez que abro o arquivo, ALT + F11 depois F5 e indico o número de cópias. Ele então imprimirá o arquivo com a numeração correta, depois é só salvar novamente. e quando vou reabrir novamente, só preciso fazer o mesmo passo.

Se houver um código em que você possa imprimi-lo diretamente toda vez que abrir o arquivo e ele ainda seguirá a numeração sequencial?

desde já, obrigado
Este comentário foi feito pelo moderador no site
Muito obrigado por compartilhar o código acima. É muito útil para todos. Podemos adicionar mais algum código para aumentar 8 números em vez de 1 após as impressões? Aguardando sua resposta. Obrigado
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL