BABOO

CONTATO
ANUNCIE
SUGESTÕES
RSS
COPYRIGHT


Home Tutoriais

A automatização de uma planilha poderá facilitar e muito o seu trabalho - principalmente quando você precisar imprimir diversas cópias de planilhas modificadas. 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 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:

Selecione o tamanho do papel que irá utilizar na impressão. Agora iremos configurar as margens no documento do 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 a planilha para que fique gravadas as informações. Pronto ! As margens e a impressora estão configuradas. Agora iremos definir a área de impressão - veja a área que será demarcada:

Agora selecione a primeira célula do conteúdo a ser impresso e arraste o mouse até a última célula do conteú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 de impressã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 de edição de código VBA. No editor Visual Basic, clique em Inserir > Módulo. Na tela da esquerda, você deve inserir este código de impressão:

Sub imprimir()
ncop = InputBox("Cópias a serem imprimidas")
If ncop = "" Or ncop = "0" Then
test3 = MsgBox("Impressão cancelada.Informe o número de cópias 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 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 digitado for 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 = True
Range("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á a impressão.Note que depois de "Copies:" está o código "=ncop" que será a quantidade 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 spool apenas 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 para redirecionarmos 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 o mouse 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. Veja o 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ção de código VBA. Clique em Inserir > Useform:

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

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

No menu Caixa de ferramentas clique no segundo botão em destaque (citando novamente da esquerda para a direita) que é a caixa de texto, aonde será digitado a quantidade de cópias a serem impressas. Clique no botã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 em destaque 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 o botã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 Me
ncop = TextBox1
If ncop = "" Or ncop = "0" Then
test3 = MsgBox("Impressão cancelada.Informe o número de cópias 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 botão
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 digitado for 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 loop1
End If
ActiveWindow.SelectedSheets.PrintOut Copies:=ncop => Este é o código que fará a impressão.Note que depois de "Copies:" está o código "=ncop" que será a quantidade de 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 este código:

Private Sub CommandButton2_Click()
Unload Me
End 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 volte para a planilha para criarmos o último botão: o botão de comando para ativarmos 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 na planilha, arraste o mouse para um tamanho desejado e solte-o quando desejado: isso criará o botão. Dê um duplo-clique no botão e o editor VBA será aberto. Coloque este código:

Private Sub CommandButton3_Click()
UserForm2.Show
End 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á configurado para 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 tela acima:

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