Notifications
Clear all

Criar etiquetas

12 Posts
2 Usuários
0 Reactions
3,830 Visualizações
(@humberto)
Posts: 76
Estimable Member
Topic starter
 

Boa noite a todos

Estou com uma certa dificuldade de gerar algumas etiquetas com o VBA,
tenho uma planilha que contem informações de alguns produtos como: COD , descrição , data entre outros, e queria imprimir estas etiquetas conforme a QTD de produtos que eu tenho, por EX: se eu tenho 10 produtos no dia a quantidade total de ETIQ será 10.
imprimindo conforme a quantidade Total de etiq.
na planilha tem algumas outras informações que irão ajudar com o entendimento da situação.
estou anexando a planilha para VÇS darem uma olhada , esbocei a programação conforme uma outra planilha que eu tinha de gerar etiquetas, que é quase igual a esta nova planilha,mais com algumas informações diferentes.

desde de já agradeço pela ajuda

 
Postado : 02/04/2014 8:03 pm
(@humberto)
Posts: 76
Estimable Member
Topic starter
 

Boa noite,

estou no aguardo de alguma dica que possa me ajudar!!!

Obrigado!!!

 
Postado : 03/04/2014 8:10 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Primeiro você tem de definir um layout da pagina de impressão, tamanho do papel, qde de etiquetas por folha, dependendo do tamanho podemos ter somente 4 em uma folha, ou mais ou menos, pelo exemplo que postou quando eu o criei era para 10 etiquetas e os campos estavam nomeados etiqueta1 aetiqueta10, como alterou este layout os nomes das celulas se perderam.
Você chegou a ver os outros modelos?
Criar Etiquetas [Resolvido]
viewtopic.php?f=10&t=10834&p=57113#p57113

Criando Etiqueta no Excel
viewtopic.php?f=21&t=9018&p=55325#p55325

[]s

 
Postado : 04/04/2014 8:46 pm
(@humberto)
Posts: 76
Estimable Member
Topic starter
 

bom dia, Mauro

As etiquetas a serem criadas são individuais ,é um rolo de etiquetas, não uma folha A4 com variás etiquetas, a área de impressão é aquela área que esta em roxo do lado esquerdo, já com o tamanho certo da etiqueta, imprimindo uma por vez.
quando eu clicar no botão imprimir, vai imprimir apenas a parte em roxo e depois vai para aproxima etiqueta, isto dependendo da quantidade total de etiquetas..
Então, se eu tenho 10 etiquetas a serem impressas, sera impressa uma por vez, é o mesmo esquema da outra aplicação que vc me ajudou da outra vez com algumas alterações,só que eu não estou adequar a programação a esta nova aplicação.

Obrigado..

att Mais

 
Postado : 05/04/2014 5:44 am
(@humberto)
Posts: 76
Estimable Member
Topic starter
 

Boa noite Mauro
Dei uma olhada nos links que vc me passou, mais são diferentes das que uso aqui, eles usam folhas com varias etiquetas , eu uso um rolo de etiquetas , se eu quiser imprimir só uma, eu imprimo, se eu quiser imprimir 10 , tanto faz, vai depender da quantidade de etiquetas que forem geradas pela tabelas que estão os dados.
se a tabela tiverem 10 linhas de dados contendo uma etiqueta para cada linha ,no total vou imprimir as dez etiquetas, se a tabela tiverem 10 linhas de dados com 2 etiquetas por linha, vou imprimir 20 etiquetas, vai depender da quantidade total de etiquetas.
vão ser criada as etiquetas uma debaixo da outra depois vou imprimir as etiquetas geradas.

Att mais
Obrigado!!!

 
Postado : 06/04/2014 7:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Humberto, eu nunca cheguei a utilizar impressora com rolo de etiquetas, e fiquei com a seguinte duvida:

As etiquetas devem ser criadas uma abaixo da outra e depois enviar para impressora ou quer criar a primeira e enviar para a impressora, e depois a segunda e enviar para a impressora e assim por diante.
Este tipo de impressora ela pula página ? tipo se fosse em impressora normal a cada instrução PrintOut é referente a uma página(folha) e na impressora de rolo é da mesma forma ?
Se for para enviar direto, não sei ao certo o sistema de imprimir deste tipo de impressora, mas não precisaríamos apos criar a etiqueta copia-la para depois enviar, pergunto porque em seu anexo você diz que a área de impressão é o que está preenchido na cor Roxa.

Editando:
Resolvi colocar uma adapatação levando em conta a criação das etiquetas uma abaixo da outra, em sequencia respeitando a qde de cada uma:
Para que a mesma funcione corretamente em seu modelo conforme o anexo, faça as seguintes alterações:
Nomeie o Range S7 com o nome : rgCodigo
Nomeie o Range S12 com o nome : rgResponsavel
Nomeie o Range U11 com o nome : rgPeso
Nomeie o Range W11 com o nome : rgData
Nomeie o Range S15 com o nome : rgObs
Nomeie o Range W7 com o nome : rgDescricao

Sub Criar_EtiquetasRolo()
    Dim sQde
    Dim sCod
    Dim i As Long
    Dim x As Long
    Dim rng As Range
    'Dim rngSoma As Range
    Dim sLinEtq
    
    Dim sQdeTT As Double

    Set rng = Sheet6.Range("J3", Sheet6.Range("J65536").End(xlUp))
    
    Application.ScreenUpdating = False
    
    sLinEtq = 2
    
    x = 1
    
    For Each sCod In rng
        
        'Armazena a Qde de Etiquetas por Codigo
        sQde = sCod(1, 9).Value
        
        'Alimenta a Soma do Total de cada Etiqueta
        sQdeTT = sQdeTT + sQde
        
        'Cria as Etiquetas de acordo com a Qde
        For i = x To sQdeTT
            'Ranges nomeados
            Range("rgCodigo").Value = sCod 'S7
            Range("rgResponsavel").Value = sCod(1, 3).Value 'S12
            Range("rgPeso").Value = sCod(1, 4).Value 'U11
            Range("rgData").Value = sCod(1, 6).Value 'W11
            Range("rgObs").Value = sCod(1, 8).Value 'S15
            Range("rgDescricao").Value = sCod(1, -1).Value 'W7
            
            'Copia e cola as etiquetas criadas
            Range("rgCopyEtq").Copy Destination:=Range("B" & sLinEtq)
            
            sLinEtq = sLinEtq + 19
            
            x = x + 1
            
        Next i
    
    Next sCod
    
End Sub

Em seu modelo você tem a coluna "I" OCULTA sem nenhum dado, se for apagar a mesma lembre-se de ajustar as colunas nas instruções.
Faça os testes e veja se é isto.

[]s

 
Postado : 07/04/2014 6:51 pm
(@humberto)
Posts: 76
Estimable Member
Topic starter
 

Boa Noite, Mauro

Mudei as ranges como vc tinha me enviado, funciona até a linha 6 da Tabela de dados, se eu inserir Dados a partir da linha 6 da tabela ,e tento gerar as etiquetas esta dando um erro,coloco mais dados e tento gerar as etiquetas mais não consigo!!!
Eu não sei oque pode ser, estou postando o arquivo novamente para dar uma olhada.

Att mais

Obrigado !!!

 
Postado : 08/04/2014 9:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Humberto, aqui funcionou corretamente, alterei somente dois ranges nomeados e ajustei a rotina para Limpar as etiquetas, apesar que isto não causava nenhum erro, somente jogava os valores nos campos inversos, mas as etiquetas são criadas normalmente, testei conforme modelo anexo, 11 tipos de etiquetas no total de 21 etiquetas.
De uma olhada e faça outros testes.

Criar Etiquetas continuas

[]s

 
Postado : 08/04/2014 9:39 pm
(@humberto)
Posts: 76
Estimable Member
Topic starter
 

Boa tarde Mauro!!!

Aditei alguns nomes das range para adaptá-las, mais acabou que não esta funcionando corretamente, esta dando o seguinte erro " a área de copia é diferente da área de destino" , tem uma range nomeada "rgEtiquetas", que eu não sei qual a função dela.
Quando executou a programação ele criou etiqueta até a ultima Linha do Excel.
estava funcionando bem mais depois começou a aparecer este Erro !!estou postando novamente o arquivo...

Muito obrigado
Att mais

 
Postado : 12/04/2014 3:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Humberto, como não deu mais retorno e nem clicou na mãozinha agradecendo, pensei que já havia resolvido.

Procure acompanhar o raciocinio e analisar o que a rotina está fazendo, na planilha temos os Ranges nomeados, então toda vez que fizer alguma alteração no layout tem de ajustar os Ranges, novamente você alterou as colunas que antes eram mescladas e agora são únicas, alterou tambem as ordens dos titulos, portanto tem de ajustar os ranges na rotina, nas linhas onde captamos os valores a lançar nestes Ranges, e o erro é devido justamente por ter tirado a mesclagem de uma coluna.
Para evitar de ter de anexar novamente o arquivo, estou postando a rotina ajustada, veja que na frente de cada instrução que buscamos os valores está a a que Rance se refere, por exemplo:
Range("rgResponsavel").Value = sCod(1, 3).Value 'Q12 - o Range nomeado "rgResponsavel" se refere a celula "Q12" e " sCod(1, 3)" siginifica 3 celulas a direita a partir de sCod referente a Coluna "H".

Sub Criar_EtiquetasRolo()
    Dim sQde
    Dim sCod
    Dim i As Long
    Dim x As Long
    Dim rng As Range
    'Dim rngSoma As Range
    Dim sLinEtq
    
    Dim sQdeTT As Double

    Set rng = Sheet6.Range("H3", Sheet6.Range("H65536").End(xlUp))
    
    Application.ScreenUpdating = False
    
    sLinEtq = 2
    
    x = 1
    
    For Each sCod In rng
        
        'Armazena a Qde de Etiquetas por Codigo
        sQde = sCod(1, 8).Value
        
        'Alimenta a Soma do Total de cada Etiqueta
        sQdeTT = sQdeTT + sQde
        
        'Cria as Etiquetas de acordo com a Qde
        For i = x To sQdeTT
            'Ranges nomeados
            Range("rgCodigo").Value = sCod 'Q7
            Range("rgResponsavel").Value = sCod(1, 3).Value 'Q12
            Range("rgPeso").Value = sCod(1, 5).Value 'S11
            Range("rgData").Value = sCod(1, 6).Value 'U11
            Range("rgObs").Value = sCod(1, 7).Value 'Q15
            Range("rgDescricao").Value = sCod(1, 3).Value 'U7
            
            'Copia e cola as etiquetas criadas
            Range("rgCopyEtq").Copy Destination:=Range("B" & sLinEtq)
            
            sLinEtq = sLinEtq + 19
            
            x = x + 1
            
        Next i
    
    Next sCod
    
    Application.ScreenUpdating = True
    
End Sub

Sub limmparRangeEtiquetas()
    'limpa os ranges
    Range("B2:F5200").Clear
   
   ' Range("rgCopyEtq").ClearContents - O erro se da aqui por termos celulas mescladas
   
    Range("rgCodigo").Value = "" 'Q7
    Range("rgResponsavel").Value = "" 'Q12
    Range("rgPeso").Value = "" 'S11
    Range("rgData").Value = "" 'U11
    Range("rgObs").Value = "" 'Q15
    Range("rgDescricao").Value = "" 'U7
    
End Sub

[]s

 
Postado : 12/04/2014 6:35 pm
(@humberto)
Posts: 76
Estimable Member
Topic starter
 

Boa noite Mauro

obrigado pela ajuda, só estou com uma dificuldade, quero excluir a coluna " I " , sem ter que comprometer a programação..
E me tira uma duvida, só para modo de conhecimento, me explica por favor o que o comando "For Each sCod In rng" e o
comando " For i = x To sQdeTT " fazem !!!

Obrigado e até mais !!!

 
Postado : 13/04/2014 6:49 pm
(@humberto)
Posts: 76
Estimable Member
Topic starter
 

Boa noite Mauro

Obrigado pela ajuda, mais eu ainda estou com uma dificuldade.
eu queria deletar aquela coluna que esta oculta ("I"), sem comprometer a programação, aquela coluna não é necessária para a aplicação, por isso a necessidade de exclui-la.

Obrigado!!!

att mais

 
Postado : 14/04/2014 8:22 pm