Imprimir Em VBA

of 6 /6
 Imprimindo no Excel utilizando UseForms  A automatização de uma planilha poderá f acilitar e muito o seu trabalho - principalmente q uando você precisar imprimir diversas cópias de planilhas moidificadas. Neste tutorial eu mostrarei como você cria um botão para definir o número de cópias de uma planilha a ser impressa (para que você não tenha de definir isso no próprio Excel, que é algo mais trabalhoso) ... 04/07/03h  A automatização de uma planilha poderá f acilitar e muito o seu trabalho - principalmente q uando você precisar imprimir diversas cópias de planilhas moidificadas. Neste tutorial eu mostrarei como você cria um botão para definir o número de cópias de uma planilha a ser impressa (para que você não tenha de definir isso no próprio Excel, que é algo mais trabalhoso). Para começarmos nosso tutorial, iremos primeiramente configurar os padrões da impressora. Este processo será feito uma única vez (se a sua impressora já está configurada corretamente poderá pular este passo): clique no menu Iniciar > Configurações > Impressoras e aparelhos de fax. Se não houver nenhuma impressora instalada, instale-a clicando em Adicionar impressora. Se possuir a i mpressora instalada, vamos configurá-la. Clique com o botão direito do mouse sobre a impressora instalada e clique em Propriedades: Surgirá esta tela: Clique na aba Configurações do dispositivo: Page 1 of 6 Imprimindo no Excel utilizando UseForms - A automatização de uma planilha poderá ... 22/7/2011 http://www.baboo.co m.br/conteudo/mode los/Imprimindo-no-Excel-ut ilizando-UseFor ...

Transcript of Imprimir Em VBA

5/8/2018 Imprimir Em VBA - slidepdf.com

http://slidepdf.com/reader/full/imprimir-em-vba 1/6

 

Imprimindo no Excel utilizando UseForms A automatização de uma planilha poderá facilitar e muito o seu trabalho - principalmente quando você precisarimprimir diversas cópias de planilhas moidificadas. Neste tutorial eu mostrarei como você cria um botão paradefinir o número de cópias de uma planilha a ser impressa (para que você não tenha de definir isso no próprioExcel, que é algo mais trabalhoso) ...04/07/03h

 A automatização de uma planilha poderá facilitar e muito o seu trabalho - principalmente quando você precisar

imprimir diversas cópias de planilhas moidificadas. Neste tutorial eu mostrarei como você cria um botão paradefinir o número de cópias de uma planilha a ser impressa (para que você não tenha de definir isso no próprioExcel, que é algo mais trabalhoso).

Para começarmos nosso tutorial, iremos primeiramente configurar os padrões da impressora. Este processo seráfeito uma única vez (se a sua impressora já está configurada corretamente poderá pular este passo): clique nomenu Iniciar > Configurações > Impressoras e aparelhos de fax. Se não houver nenhuma impressorainstalada, instale-a clicando em Adicionar impressora. Se possuir a impressora instalada, vamos configurá-la.

Clique com o botão direito do mouse sobre a impressora instalada e clique em Propriedades:

Surgirá esta tela:

Clique na aba Configurações do dispositivo:

Page 1 of 6Imprimindo no Excel utilizando UseForms - A automatização de uma planilha poderá ...

22/7/2011http://www.baboo.com.br/conteudo/modelos/Imprimindo-no-Excel-utilizando-UseFor...

5/8/2018 Imprimir Em VBA - slidepdf.com

http://slidepdf.com/reader/full/imprimir-em-vba 2/6

p p 

 

Selecione o tamanho do papel que irá utilizar na impressão. Agora iremos configurar as margens no documentodo Excel: com a planilha aberta, clique em Arquivo e depois em Configurar Página:

Clique na aba Margens:

Configure os valores da margem da folha de acordo com sua necessidade e clique em OK . Agora salve aplanilha para que fique gravadas as informações. Pronto ! As margens e a impressora estão configuradas. Agorairemos definir a área de impressão - veja a área que será demarcada:

Page 2 of 6Imprimindo no Excel utilizando UseForms - A automatização de uma planilha poderá ...

22/7/2011http://www.baboo.com.br/conteudo/modelos/Imprimindo-no-Excel-utilizando-UseFor...

5/8/2018 Imprimir Em VBA - slidepdf.com

http://slidepdf.com/reader/full/imprimir-em-vba 3/6

p p 

 

 Agora selecione a primeira célula do conteúdo a ser impresso e arraste o mouse até a ú ltima célula doconteúdo:

 Agora clique em Arquivo > Área de impressão > Definir área de impressão:

Pronto: agora já está tudo configurado corretamente. Há duas maneiras de imprimir sem utilizar o sistema deimpressão nativo do Windows - e irei explicar as duas maneiras.

Utilizando código VBA

Com a planilha ainda aberta, clique em Ferramentas > Macro > Editor do Visual Basic. Irá abrir a tela deedição de código VBA. No editor Visual Basic, clique em Inserir > Módulo. Na tela da esquerda, você deveinserir este código de impressão:

Sub imprimir()ncop = InputBox("Cópias a serem imprimidas")If ncop = "" Or ncop = "0" Thentest3 = MsgBox("Impressão cancelada.Informe o número de cópias a serem 

imprimidas")End If

 Application.ScreenUpdating = TrueRange("A1").Select Application.ScreenUpdating = False ActiveWindow.SelectedSheets.PrintOut Copies:=ncop

End Sub

Explicando melhor:

Sub imprimir() => Este é o nome da nossa função ncop= InputBox("Cópias a serem imprimidas:") => Aqui configuramos qual mensagem será mostrada na tela. If ncop = "" Or ncop = "0" Then => Uma condição foi colocada.Se o número digitadofor Zero ou nenhum número foi digitado irá mostrar a tela abaixo. test3 = MsgBox("Impressão cancelada.Informe o número de cópias a serem imprimidas") => Esta tela irá surgir se a condição citada acima for verdadeira. End If

 Application.ScreenUpdating = TrueRange("A1").Select => A célula selecionada irá para "A1" como no caso.  Application.ScreenUpdating = False ActiveWindow.SelectedSheets.PrintOut Copies:=ncop => Este é o código que fará aimpressão.Note que depois de "Copies:" está o código "=ncop" que será a quantidade

Page 3 of 6Imprimindo no Excel utilizando UseForms - A automatização de uma planilha poderá ...

22/7/2011http://www.baboo.com.br/conteudo/modelos/Imprimindo-no-Excel-utilizando-UseFor...

5/8/2018 Imprimir Em VBA - slidepdf.com

http://slidepdf.com/reader/full/imprimir-em-vba 4/6

p p 

de cópias da impressão!

End Sub

Há apenas um inconveniente nesta maneira: se você digitar um número de cópias superior a 1, a impressão(spool) irá o tanto de vezes da cópia. Exemplo: você pede para imprimir 3 cópias e ao invés de ir para spoolapenas a planilha selecionada, irão 3 delas para o spool de impressão.

Pronto! Salve o código (clique em Arquivo > Salvar). Agora iremos criar um botão de comando pararedirecionarmos o código criado: clique em Exibir > Barra de Ferramentas > Formulários:

Clique no ícone do botão (em destaque na célula acima) e defina o seu tamanho: clique na planilha, arraste omouse para um tamanho desejado e solte-o. Isso irá criar o botão e surgirá esta tela:

Lembrando que nossa função se chama "Imprimir", selecione-a na tela acima e clique no botão OK . Pronto:nosso botão está configurado para que imprima a área definida anteriormente quando ele for pressionado. Vejao exemplo:

Quando não for indicado o número de cópias a serem impressas, surgirá esta tela de mensagem:

Utilizando UseForms.

 Abra a planilha e clique em Ferramentas > Macro > Editor do Visual Basic. Isso irá abrir a tela de ediçãode código VBA. Clique em Inserir > Useform:

Feito isto, clique em no menu Exibir > Caixa de ferramentas:

Page 4 of 6Imprimindo no Excel utilizando UseForms - A automatização de uma planilha poderá ...

22/7/2011http://www.baboo.com.br/conteudo/modelos/Imprimindo-no-Excel-utilizando-UseFor...

5/8/2018 Imprimir Em VBA - slidepdf.com

http://slidepdf.com/reader/full/imprimir-em-vba 5/6

p p 

 

Os botões em destaque serão os que utilizaremos para criarmos o UseForm: o primeiro (da esquerda para adireita na tela acima) significa rótulo , que nada mais é que um texto! Clique nele e cole-o no UseForm, ficandodesta maneira:

No menu Caixa de ferramentas clique no segundo botão em destaque (citando novamente da esquerda paraa direita) que é a caixa de texto , aonde será digitado a quantidade de cópias a serem impressas. Clique nobotão, vá ao UseForm, segure e arraste o mouse dando formato à caixa de texo, soltando-o em seguida:

 Agora criaremos dois botões: um OK e um Cancelar. Clique na opção Botão de comando (o terceiro emdestaque da esquerda para a direita na imagem dos botões mais acima) no menu Caixa de ferramentas .Clique em Botão de comando, arraste-o sobre o UseForm e quando atingir um tamanho adequado, solte obotão do mouse. Faça isto em duas vezes e o UseForm ficará assim:

 Agora dê dois cliques no botão OK que foi criado e surgirá a tela de edição do código VBA.

Coloque o seguinte código:

Private Sub CommandButton1_Click()Unload Mencop = TextBox1If ncop = "" Or ncop = "0" Thentest3 = MsgBox("Impressão cancelada.Informe o número de cópias a serem imprimidas")GoTo loop1End If ActiveWindow.SelectedSheets.PrintOut Copies:=ncoploop1:

UserForm1.ShowEnd Sub

Em detalhes:

Private Sub CommandButton1_Click() => Este é o nome do botão 

Page 5 of 6Imprimindo no Excel utilizando UseForms - A automatização de uma planilha poderá ...

22/7/2011http://www.baboo.com.br/conteudo/modelos/Imprimindo-no-Excel-utilizando-UseFor...

5/8/2018 Imprimir Em VBA - slidepdf.com

http://slidepdf.com/reader/full/imprimir-em-vba 6/6

p p 

Unload Me => A tela será descarregada se já foi clicada ncop = TextBox1 => Aqui indica que o número de cópias será indicado no textbox,chamado de "TextBox1"If ncop = "" Or ncop = "0" Then => Uma condição foi colocada.Se o número digitadofor Zero ou nenhum número foi digitado irá mostrar a tela abaixo. test3 = MsgBox("Impressão cancelada.Informe o número de cópias a serem imprimidas") => Esta tela irá surgir se a condição citada acima for verdadeira. GoTo loop1End If ActiveWindow.SelectedSheets.PrintOut Copies:=ncop => Este é o código que fará aimpressão.Note que depois de "Copies:" está o código "=ncop" que será a quantidadede cópias da impressão! 

loop1:UserForm1.Show => Mostra o UseForm que criamos End Sub

 Agora dê dois cliques sobre o botão Cancelar do UseForm que foi criado. Na tela que irá surgir, coloque estecódigo:

Private Sub CommandButton2_Click()Unload MeEnd Sub

Detalhando:

Private Sub CommandButton2_Click() => Nome do botão Unload Me => Descarrega o UseForm da tela End Sub => Fim da função

 Agora salve o código VBA e vol te para a planilha para criarmos o último botão: o botão de comando paraativarmos a impressão. Clique em Exibir >Barra de Ferramentas > Caixa de ferram. de controle:

Clique em Botão de comando (em destaque na tela acima). Agora defina um tamanho do botão, clique naplanilha, arraste o mouse para um tamanho desejado e solte-o quando desejado: isso criará o botão. Dê umduplo-clique no botão e o editor VBA será aberto. Coloque este código:

Private Sub CommandButton3_Click()UserForm2.ShowEnd Sub

Explicando:

Private Sub CommandButton3_Click() => Nome do botão criado UserForm2.Show => Mostrará o UseForm que criamos End Sub => Fim da função

Salve o código novamente e feche o editor. Salve a planilha também. Pronto! Nosso botão está configuradopara imprimir a área definida anteriormente quando ele for clicado. Veja o exemplo:

Quando não for indicado as cópias a serem imprimidas, surgirá esta tela de erro e logo após voltará para a telaacima:

Estas são as duas formas que conheço sobre impressão no Excel. São bem utéis e simples de fazer :) ...

Page 6 of 6Imprimindo no Excel utilizando UseForms - A automatização de uma planilha poderá ...

22/7/2011http://www.baboo.com.br/conteudo/modelos/Imprimindo-no-Excel-utilizando-UseFor...