Ir ao conteúdo

Posts recomendados

Postado

Olá amigos do fórum, conta com ajuda de vocês, tenho uma planilha de impressão de etiquetas, eu preciso incluir a opção de escolher a  impressora e mensagem para confirmar a impressão.

 

Sub Print_Etiquetanf()
    Dim i As Long
    Dim ws As Worksheet
    Set ws = Sheets("Etiquetanf")
    i = 1
    With ws
        For i = i To .[G14]
            .Range("E14") = i    ' atualiza o nº volume
            .PageSetup.PrintArea = ""  'Limpa a area definida
            .PageSetup.PrintArea = .Range("b2:H17").Address  'define a area a imprimir
            .PrintOut  'imprime
        Next
    End With
End Sub

 

Fico no aguardo e ja agradeço.

 

Elcio 

Minuta.xlsx

Postado

Acrescente a linha de comando conforme abaixo.

            .PageSetup.PrintArea = .Range("b2:H17").Address  'define a area a imprimir
            Application.Dialogs(xlDialogPrinterSetup).Show ' <--- acrescente esta linha
            .PrintOut  'imprime

 

 

dica - ajuste manualmente apenas uma vez o intervalo de impressão e aí você pode excluir do seu código as duas linhas abaixo.

           

		.PageSetup.PrintArea = ""  'Limpa a area definida
		.PageSetup.PrintArea = .Range("b2:H17").Address  'define a area a imprimir

 

Postado
Em 07/07/2025 às 21:44, OreiaG disse:

Acrescente a linha de comando conforme abaixo.

            .PageSetup.PrintArea = .Range("b2:H17").Address  'define a area a imprimir
            Application.Dialogs(xlDialogPrinterSetup).Show ' <--- acrescente esta linha
            .PrintOut  'imprime

 

 

dica - ajuste manualmente apenas uma vez o intervalo de impressão e aí você pode excluir do seu código as duas linhas abaixo.

           

		.PageSetup.PrintArea = ""  'Limpa a area definida
		.PageSetup.PrintArea = .Range("b2:H17").Address  'define a area a imprimir

 

 

Bom dia, quero aqui agradecer pela ajuda, mas não funcionou.

 

Quando eu executo o comando  aparece uma janela para escolher a macro e em seguida outra janela com opção de escolher a impressora. Mas como está planilha e para gerar etiquetas de volume, se for mais que uma etiqueta vai pedir toda hora para escolher a impressora, outro detalhe, se eu escusar a impressão ela gera dos mesmo jeito.

 

A ideia aqui e apenas a opção de escolher a impressora e podendo interromper a impressão " Deseja continuar com a impressão"? Sim ou não.

 

Outra coisa e na hora da impressão acionar a impressora apenas uma vês, mesmo que gere varias etiquetas, tipo 1/5, 2/5, e assim por diante.

 

Sub Print_Etiquetanf()
    Dim i As Long
    Dim ws As Worksheet
    Set ws = Sheets("Etiquetanf")
    i = 1
    With ws
        For i = i To .[G14]
            .Range("E14") = i    ' atualiza o nº volume
            Application.Dialogs(xlDialogPrinterSetup).Show ' <--- acrescente esta linha .PrintOut 'imprime
            .PrintOut  'imprime
        Next
    End With
End Sub

Postado

@Elcio Silva Alves
Por favor, veja se melhorou.
Antes de testar, ajuste manualmente uma única vez o intervalo de impressão da planilha Etiquetanf.

 

Sub Print_Etiquetanf()
 Dim i As Long, resp As Variant
  resp = Application.Dialogs(xlDialogPrint).Show
  If resp = False Then Exit Sub
  If MsgBox("DESEJA CONTINUAR?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
  With Sheets("Etiquetanf")
   For i = 1 To .[G14]
    .[E14] = i    ' atualiza o nº volume
    .PrintOut  'imprime
   Next
  End With
End Sub

 

Postado
3 horas atrás, Elcio Silva Alves disse:

 ... mas na hora da impressão ele manda imprimir outra aba da planilha por nome Minuta ...

 

Bem estranho esse erro. 
Existem outras macros no seu arquivo?


Você pode disponibilizar o arquivo com a macro que passei instalada?

Postado

São num total de quatro macro, o que me chama atenção que ela só imprime na aba da planilha que estiver aberta.

aqui não carrega as planilhas com macro, mas vou deixar cada uma aqui.

 

Sub arquivo()
    Range("AM4").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("Arquivo").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("Formulario").Select
    Range("B2:AI2").Select
    ActiveWorkbook.Save
End Sub

 

Sub limpar()
    Range("C4:D4,F4:N4,P4,C13:N13,V13:AI13,AH13:AJ13,C16:F16,H16:K16,M16,O16:AJ16").Select
    Range("H16").Activate
    Selection.ClearContents
End Sub

 

Sub Print_Etiquetanf()
 Dim i As Long, resp As Variant
  resp = Application.Dialogs(xlDialogPrint).Show
  If resp = False Then Exit Sub
  If MsgBox("DESEJA CONTINUAR?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
  With Sheets("Etiquetanf")
   For i = 1 To .[G14]
    .[E14] = i    ' atualiza o nº volume
    .PrintOut  'imprime
   Next
  End With
End Sub

 

Sub Print_Etiqueta()
    Dim i As Long
    Dim ws As Worksheet
    Set ws = Sheets("Etiqueta")
    i = 1
    With ws
        For i = i To .[d13]
            .Range("b13") = i    ' atualiza o nº volume
            .PageSetup.PrintArea = ""  'Limpa a area definida
            .PageSetup.PrintArea = .Range("b2:e13").Address  'define a area a imprimir
            .PrintOut  'imprime
        Next
    End With
End Sub

 

 

 

 

Minuta.test2.xlsx

Postado

Experimente este abaixo no lugar do anterior.

 

Sub Print_Etiquetanf()
 Dim i As Long, resp As Variant
  resp = Application.Dialogs(xlDialogPrinterSetup).Show
  If resp = False Then Exit Sub
  If MsgBox("DESEJA CONTINUAR?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
  With Sheets("Etiquetanf")
   For i = 1 To .[G14]
    .[E14] = i    ' atualiza o nº volume
    .PrintOut  'imprime
   Next
  End With
End Sub

 

dica - ao postar códigos ou fórmulas aqui no fórum utilize o recurso Code: selecione o código/fórmula e clique no correspondente ícone ( <> )

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!