Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#12343
Boa tarde!

Preciso de um ajudinha dos programadores em VBA, com a planilha em anexo.
Basicamente o que eu fiz foi tentar automatizar a rotina de geração do documento, onde as variáveis são a Linha, o numero da ordem e o TAG (células em amarelo).
Gravei uma macro para copiar as informações variáveis e colar no formulário (as variáveis são exportadas do ERP que utilziamos no setor), logo depois mandando imprimir, e assim o processo foi repetido 11x.

GAP: se eu quiser imprimir apenas 1 formuários, ele irá preencher o primieiro e sera impresso mais 10 formulários coom o campo das variáveis em branco.

Essa lista ela possui um número variável de ordens, podendo chegar a 500 formulários a serem gerados. Gostaria de saber se alguém saberia programar uma validação do tipo ("se a célula estiver diferente de vazia -> copiar/colar/imprimir as 3 informações, se não parar o programa e não imprimir mais nenhuma ficha") para que eu consiga imprimir o número correto de formulários e não precise repetir a rotina de 11 em 11 vezes, bem como gastar impressões desnecessárias.

P.S.: se quiserem reformular ou tiverem alguma sugestão de rotina, fiquem a vontade
Agradeço desde já!
#12347
Boa tarde!!

Eu não entendi muito bem, mas quanto a parte de fazer algo somente se os campos estiverem preenchidos...
Código: Selecionar todos
Sub amsgbox()
    If Range("b4").Value <> "" And Range("g4").Value <> "" And Range("i4").Value <> "" Then
        'Faça alguma coisa
    Else
        msgbox "favor preencher os campos (B4, G4 e I4)"
    End If
End Sub
Att
#12350
Alexandre,
Na planilha do anexo, o range N8:P18 é alimentado manualmente. Quando eu clico em imprimir (macro gravada), a rotina faz:
1. a célula N8 é copiada e colada na célula B4;
2. a célula O8 é copiada e colada na célula G4;
3. a célula P8 é copiada e colnada na célula I4.
4. o document é impresso.
5. repete os 4 passos novamente, mas ao invés da linha 8, são copiadas as informações da linha 9, depois 10, 11, 12.. e assim sucessivamente até a linha 18.

Eu tenho que repetir esse processo para gerar 11 documentos sempre, mas gostaria que ele imprimisse um range indefinido de informações, ou seja, se eu tivesse 500 tags, o.m. e linha (range N8:P500). Quando a célula não estiver preenchida, ele pare de gerar e imprimir..

Deu pra entender?

De qualquer forma, lhe agradeço pela resposta
#12361
Boa tarde!!

Tente assim...
Código: Selecionar todos
Sub AleVBA_2456()
Dim rngTag As Range
Dim rngCell As Range

Set rngTag = Range("N8:N" & Cells(Rows.Count, 14).End(xlUp).Row)

For Each rngCell In rngTag
    Range("B4") = rngCell.Offset(0, 2)
    Range("G4") = rngCell.Offset(0, 1)
    Range("I4") = rngCell
    'Coloque o comando para imprimir aqui
Next rngCell
End Sub
Att
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord