Você está na página 1de 6

Imprimindo no Excel utilizando UseForms - A automatizao de uma planilha poder ...

Page 1 of 6

Imprimindo no Excel utilizando UseForms


A automatizao de uma planilha poder facilitar e muito o seu trabalho - principalmente quando voc precisar imprimir diversas cpias de planilhas moidificadas. Neste tutorial eu mostrarei como voc cria um boto para definir o nmero de cpias de uma planilha a ser impressa (para que voc no tenha de definir isso no prprio Excel, que algo mais trabalhoso) ...
04/07/03h

A automatizao de uma planilha poder facilitar e muito o seu trabalho - principalmente quando voc precisar imprimir diversas cpias de planilhas moidificadas. Neste tutorial eu mostrarei como voc cria um boto para definir o nmero de cpias de uma planilha a ser impressa (para que voc no tenha de definir isso no prprio Excel, que algo mais trabalhoso). Para comearmos nosso tutorial, iremos primeiramente configurar os padres 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 > Configuraes > Impressoras e aparelhos de fax. Se no houver nenhuma impressora instalada, instale-a clicando em Adicionar impressora. Se possuir a impressora instalada, vamos configur-la. Clique com o boto direito do mouse sobre a impressora instalada e clique em Propriedades:

Surgir esta tela:

Clique na aba Configuraes do dispositivo:

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

22/7/2011

Imprimindo no Excel utilizando UseForms - A automatizao de uma planilha poder ... Page 2 of 6

Selecione o tamanho do papel que ir utilizar na impresso. Agora iremos configurar as margens no documento do Excel: com a planilha aberta, clique em Arquivo e depois em Configurar Pgina:

Clique na aba Margens:

Configure os valores da margem da folha de acordo com sua necessidade e clique em OK. Agora salve a planilha para que fique gravadas as informaes. Pronto ! As margens e a impressora esto configuradas. Agora iremos definir a rea de impresso - veja a rea que ser demarcada:

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

22/7/2011

Imprimindo no Excel utilizando UseForms - A automatizao de uma planilha poder ... Page 3 of 6

Agora selecione a primeira clula do contedo a ser impresso e arraste o mouse at a ltima clula do contedo:

Agora clique em Arquivo > rea de impresso > Definir rea de impresso:

Pronto: agora j est tudo configurado corretamente. H duas maneiras de imprimir sem utilizar o sistema de impresso nativo do Windows - e irei explicar as duas maneiras. Utilizando cdigo VBA Com a planilha ainda aberta, clique em Ferramentas > Macro > Editor do Visual Basic. Ir abrir a tela de edio de cdigo VBA. No editor Visual Basic, clique em Inserir > Mdulo. Na tela da esquerda, voc deve inserir este cdigo de impresso: Sub imprimir() ncop = InputBox("Cpias a serem imprimidas") If ncop = "" Or ncop = "0" Then test3 = MsgBox("Impresso cancelada.Informe o nmero de cpias a serem imprimidas") End If Application.ScreenUpdating = True Range("A1").Select Application.ScreenUpdating = False ActiveWindow.SelectedSheets.PrintOut Copies:=ncop End Sub Explicando melhor: Sub imprimir() => Este o nome da nossa funo ncop= InputBox("Cpias a serem imprimidas:") => Aqui configuramos qual mensagem ser mostrada na tela. If ncop = "" Or ncop = "0" Then => Uma condio foi colocada.Se o nmero digitado for Zero ou nenhum nmero foi digitado ir mostrar a tela abaixo. test3 = MsgBox("Impresso cancelada.Informe o nmero de cpias a serem imprimidas") => Esta tela ir surgir se a condio citada acima for verdadeira. End If Application.ScreenUpdating = True Range("A1").Select => A clula selecionada ir para "A1" como no caso. Application.ScreenUpdating = False ActiveWindow.SelectedSheets.PrintOut Copies:=ncop => Este o cdigo que far a impresso.Note que depois de "Copies:" est o cdigo "=ncop" que ser a quantidade

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

22/7/2011

Imprimindo no Excel utilizando UseForms - A automatizao de uma planilha poder ... Page 4 of 6

de cpias da impresso! End Sub H apenas um inconveniente nesta maneira: se voc digitar um nmero de cpias superior a 1, a impresso (spool) ir o tanto de vezes da cpia. Exemplo: voc pede para imprimir 3 cpias e ao invs de ir para spool apenas a planilha selecionada, iro 3 delas para o spool de impresso. Pronto! Salve o cdigo (clique em Arquivo > Salvar). Agora iremos criar um boto de comando para redirecionarmos o cdigo criado: clique em Exibir > Barra de Ferramentas > Formulrios:

Clique no cone do boto (em destaque na clula acima) e defina o seu tamanho: clique na planilha, arraste o mouse para um tamanho desejado e solte-o. Isso ir criar o boto e surgir esta tela:

Lembrando que nossa funo se chama "Imprimir", selecione-a na tela acima e clique no boto OK. Pronto: nosso boto est configurado para que imprima a rea definida anteriormente quando ele for pressionado. Veja o exemplo:

Quando no for indicado o nmero de cpias 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 edio de cdigo VBA. Clique em Inserir > Useform:

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

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

22/7/2011

Imprimindo no Excel utilizando UseForms - A automatizao de uma planilha poder ... Page 5 of 6

Os botes em destaque sero os que utilizaremos para criarmos o UseForm: o primeiro (da esquerda para a direita na tela acima) significa rtulo, que nada mais que um texto! Clique nele e cole-o no UseForm, ficando desta maneira:

No menu Caixa de ferramentas clique no segundo boto em destaque (citando novamente da esquerda para a direita) que a caixa de texto, aonde ser digitado a quantidade de cpias a serem impressas. Clique no boto, v ao UseForm, segure e arraste o mouse dando formato caixa de texo, soltando-o em seguida:

Agora criaremos dois botes: um OK e um Cancelar. Clique na opo Boto de comando (o terceiro em destaque da esquerda para a direita na imagem dos botes mais acima) no menu Caixa de ferramentas . Clique em Boto de comando, arraste-o sobre o UseForm e quando atingir um tamanho adequado, solte o boto do mouse. Faa isto em duas vezes e o UseForm ficar assim:

Agora d dois cliques no boto OK que foi criado e surgir a tela de edio do cdigo VBA. Coloque o seguinte cdigo: Private Sub CommandButton1_Click() Unload Me ncop = TextBox1 If ncop = "" Or ncop = "0" Then test3 = MsgBox("Impresso cancelada.Informe o nmero de cpias a serem imprimidas") GoTo loop1 End If ActiveWindow.SelectedSheets.PrintOut Copies:=ncop loop1: UserForm1.Show End Sub Em detalhes: Private Sub CommandButton1_Click() => Este o nome do boto

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

22/7/2011

Imprimindo no Excel utilizando UseForms - A automatizao de uma planilha poder ... Page 6 of 6

Unload Me => A tela ser descarregada se j foi clicada ncop = TextBox1 => Aqui indica que o nmero de cpias ser indicado no textbox, chamado de "TextBox1" If ncop = "" Or ncop = "0" Then => Uma condio foi colocada.Se o nmero digitado for Zero ou nenhum nmero foi digitado ir mostrar a tela abaixo. test3 = MsgBox("Impresso cancelada.Informe o nmero de cpias a serem imprimidas") => Esta tela ir surgir se a condio citada acima for verdadeira. GoTo loop1 End If ActiveWindow.SelectedSheets.PrintOut Copies:=ncop => Este o cdigo que far a impresso.Note que depois de "Copies:" est o cdigo "=ncop" que ser a quantidade de cpias da impresso! loop1: UserForm1.Show => Mostra o UseForm que criamos End Sub Agora d dois cliques sobre o boto Cancelar do UseForm que foi criado. Na tela que ir surgir, coloque este cdigo: Private Sub CommandButton2_Click() Unload Me End Sub Detalhando: Private Sub CommandButton2_Click() => Nome do boto Unload Me => Descarrega o UseForm da tela End Sub => Fim da funo Agora salve o cdigo VBA e volte para a planilha para criarmos o ltimo boto: o boto de comando para ativarmos a impresso. Clique em Exibir >Barra de Ferramentas > Caixa de ferram. de controle:

Clique em Boto de comando (em destaque na tela acima). Agora defina um tamanho do boto, clique na planilha, arraste o mouse para um tamanho desejado e solte-o quando desejado: isso criar o boto. D um duplo-clique no boto e o editor VBA ser aberto. Coloque este cdigo: Private Sub CommandButton3_Click() UserForm2.Show End Sub Explicando: Private Sub CommandButton3_Click() => Nome do boto criado UserForm2.Show => Mostrar o UseForm que criamos End Sub => Fim da funo Salve o cdigo novamente e feche o editor. Salve a planilha tambm. Pronto! Nosso boto est configurado para imprimir a rea definida anteriormente quando ele for clicado. Veja o exemplo:

Quando no for indicado as cpias a serem imprimidas, surgir esta tela de erro e logo aps voltar para a tela acima:

Estas so as duas formas que conheo sobre impresso no Excel. So bem utis e simples de fazer :) ...

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

22/7/2011