Notifications
Clear all

Botão Imprimir executando macro

22 Posts
2 Usuários
0 Reactions
9,985 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa Tarde a todos
Tenho uma pasta com varias abas , como faço para quando clicar no botão imprimir , estando ativo uma determinada aba (por exemplo: Plan2) ser executado uma macro e logo após imprimir a Plan2.
Estando ativa outra aba que não a Plan2 execute a impressão da Plan ativa ,mas sem executar a macro

 
Postado : 16/03/2012 8:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!

use a pesquisa do fórum.

Veja um exemplo, faça uma adaptação!

Sub Imrimir()
Dim sh As Worksheet
Set sh = ActiveSheet
Worksheets(Array("Plan1", "Plan2", "Plan4")).PrintOut
sh.Select
End Sub

 
Postado : 16/03/2012 9:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!

use a pesquisa do fórum.

Veja um exemplo, faça uma adaptação!

Alexandre fiz a pesquisa mas não achei, não tenho pratica com os códigos o que faço é adaptação mesmo.

Pelo que entendi esse cód q vc me passou é para funcionar associado a um botão/figura ,não é?

O que preciso é que se der CTRL P , ou ir na barra e BotãoImprimir ele faça o que quero.

 
Postado : 16/03/2012 9:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

O CTRL+P que preciso não tá aqui , nasci no dia de São Cadeado.

Sub DesligaTeclas()
'    File 
    Application.OnKey "^N", ""          'Ctrl+N novo arquivo
    Application.OnKey "^O", ""          'Ctrl+O abrir arquivo
    Application.OnKey "^S", ""          'Ctrl+S salvar
    Application.OnKey "{F12}", ""       'F12 salvar como
    Application.OnKey "%{F4}", ""       'Alt+F4 sair do Excel
    ' Edit 
    Application.OnKey "^H", ""          'Ctrl+H replace
    Application.OnKey "{F5}", ""        'F5 Goto
    ' Insert 
    Application.OnKey "^+{+}", ""       'Ctrl+Shift+ + inserir dialog box
    Application.OnKey "+{F11}", ""      'Shift+F11 novo worksheet
    Application.OnKey "{F11}", ""       'F11 novo gráfico
    Application.OnKey "^{F11}", ""      'Ctrl+F11 macro do Excel 4.0
    Application.OnKey "+{F3}", ""       'Ctrl+F3 definir nome
    Application.OnKey "{F3}", ""        'F3 colar nomes
    Application.OnKey "^+{F3}", ""      'Ctrl+Shift+F3 criar nomes
    ' Format 
    Application.OnKey "^1", ""          'Ctrl+1 formatar células
    Application.OnKey "^9", ""          'Ctrl+9 esconder linhas
    Application.OnKey "^+{(}", ""       'Ctrl+Shift+( mostrar linhas
    Application.OnKey "^0", ""          'Ctrl+0 esconder colunas
    Application.OnKey "^+{)}", ""       'Ctrl+Shift+) mostrar colunas
    ' Data 
    Application.OnKey "%+{RIGHT}", ""   'Alt+Shift+RightArrow agrupa linhas/colunas
    Application.OnKey "%+{LEFT}", ""    'Alt+Shift+LeftArrow desagrupa linhas/colunas
    ' Window 
    Application.OnKey "{F6}", ""        'F6 próximo painel
    Application.OnKey "+{F6}", ""       'Shift+F6 painel anterior
    Application.OnKey "^{F6}", ""       'Ctrl+F6 próxima janela
    Application.OnKey "^+{F6}", ""      'Ctrl+Shift+F6 janela anterior
    ' Outros 
    Application.OnKey "^{PGUP}", ""     'Ctrl+PgUp sheet anterior
    Application.OnKey "^{PGDN}", ""     'Ctrl+PgDn sheet posterior
    Application.OnKey "+{F12}", ""      'Shift+F12 salvar
    Application.OnKey "^{F12}", ""      'Ctrl+F12 abrir
    Application.OnKey "^{TAB}", ""      'Ctrl+Tab próxima janela
    Application.OnKey "^+{TAB}", ""     'Ctrl+Shift+Tab janela anterior
    Application.OnKey "^{-}", ""        'Ctrl+- exclui seleção
    Application.OnKey "^{;}", ""        'Ctrl+; insere data
    Application.OnKey "^{:}", ""        'Ctrl+: insere hora
End Sub

Sub LigaTeclas()
'    File 
    Application.OnKey "^N"          'Ctrl+N novo arquivo
    Application.OnKey "^O"          'Ctrl+O abrir arquivo
    Application.OnKey "^S"          'Ctrl+S salvar
    Application.OnKey "{F12}"       'F12 salvar como
    Application.OnKey "%{F4}"       'Alt+F4 sair do Excel
'    Edit 
    Application.OnKey "^H"          'Ctrl+H replace
    Application.OnKey "{F5}"        'F5 Goto
'    Insert 
    Application.OnKey "^+{+}"       'Ctrl+Shift+ + inserir dialog box
    Application.OnKey "+{F11}"      'Shift+F11 novo worksheet
    Application.OnKey "{F11}"       'F11 novo gráfico
    Application.OnKey "^{F11}"      'Ctrl+F11 macro do Excel 4.0
    Application.OnKey "+{F3}"       'Ctrl+F3 definir nome
    Application.OnKey "{F3}"        'F3 colar nomes
    Application.OnKey "^+{F3}"      'Ctrl+Shift+F3 criar nomes
'    Format 
    Application.OnKey "^1"          'Ctrl+1 formatar células
    Application.OnKey "^9"          'Ctrl+9 esconder linhas
    Application.OnKey "^+{(}"       'Ctrl+Shift+( mostrar linhas
    Application.OnKey "^0"          'Ctrl+0 esconder colunas
    Application.OnKey "^+{)}"       'Ctrl+Shift+) mostrar colunas
'    Data 
    Application.OnKey "%+{RIGHT}"   'Alt+Shift+RightArrow agrupa linhas/colunas
    Application.OnKey "%+{LEFT}"    'Alt+Shift+LeftArrow desagrupa linhas/colunas
'    Window 
    Application.OnKey "{F6}"        'F6 próximo painel
    Application.OnKey "+{F6}"       'Shift+F6 painel anterior
    Application.OnKey "^{F6}"       'Ctrl+F6 próxima janela
    Application.OnKey "^+{F6}"      'Ctrl+Shift+F6 janela anterior
'    Outros 
    Application.OnKey "^{PGUP}"     'Ctrl+PgUp sheet anterior
    Application.OnKey "^{PGDN}"     'Ctrl+PgDn sheet posterior
    Application.OnKey "+{F12}"      'Shift+F12 salvar
    Application.OnKey "^{F12}"      'Ctrl+F12 abrir
    Application.OnKey "^{TAB}"      'Ctrl+Tab próxima janela
    Application.OnKey "^+{TAB}"     'Ctrl+Shift+Tab janela anterior
    Application.OnKey "^{-}"        'Ctrl+- exclui seleção
    Application.OnKey "^{;}"        'Ctrl+; insere data
    Application.OnKey "^{:}"        'Ctrl+: insere hora
End Sub

 
Postado : 16/03/2012 9:43 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Achei um pouco confusa a explicação, acredito que o evento "Workbook_BeforePrint" seja o que está querendo, o mesmo é acionado quando mandamos Imprimir.

viewtopic.php?f=10&t=2482&hilit=BeforePrint

[]s

 
Postado : 16/03/2012 10:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ok Mauro é com Workbook_BeforePrint mesmo, deu certo após umas Gambiarras aqui;

 
Postado : 16/03/2012 11:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desculpem mas o Zé Ruela aqui havia colocado RESOLVIDO e na verdade não está.

Este foi o código usado:
Porém precisava que quando desse CTRL+P ou clicasse em Arquivo imprimir ele rodasse o código para depois abrir a página de impressão permitindo assim VISUALIZAR a impressão ; e da forma que está clico em Arquivo imprimir ou CTRL+P então é aberta a cx de impressão sem rodar o código , o código só roda quando clico no botão imprimir com o desenho da impressora (excel 2010) ,

 Private Sub Workbook_beforePrint(Cancel As Boolean)
      On Error Resume Next
Dim Rng As Range
   If ActiveSheet.Range("A1") > 1 Then
             
        Set Rng = Range("A55:A96")
        Rng.EntireRow.Hidden = False
        ActiveWindow.FreezePanes = False
         Columns("O:IV").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.EntireColumn.Hidden = True
        Else
    Exit Sub
    End If
        End Sub
 
Postado : 16/03/2012 12:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Vou dar um chute, caso não seja desconsidere minha postagem.

Private Sub Workbook_beforePrint(Cancel As Boolean)
    Dim Ws As Worksheet
    Dim PrntRng As Range, HiddenRng As Range
    
    For Each Ws In Worksheets
        If Ws.Range("A1").Value > 1 Then
        Set PrntRng = Ws.Range("A55:A96")
        PrntRng.EntireRow.Hidden = False
        Set HiddenRng = Ws.Columns("O:IV")
        Set HiddenRng = Ws.Range(HiddenRng, HiddenRng.End(xlToRight))
        HiddenRng.EntireColumn.Hidden = True
        Ws.PageSetup.PrintArea = PrntRng.Address
    Next Ws
End Sub
 
Postado : 16/03/2012 1:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

ainda não deu

 
Postado : 19/03/2012 4:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Deixa-me tentar de novo.
Tenho uma parte da minha planilha ( da linha 1 a linha 96) que fica oculta ; tenho um código que reexibi da linha 31 a 96 ( da linha 1 a 31 sempre fica oculta).nome do código ocultar_reexibir_anexo

Preciso do seguinte:
Quando clicar “arquivo imprimir” ou a lupa de visualização ou CTRL P , que execute o código ocultar_reexibir_anexo ; isto seria o ideal ; mas se não houver como fazer isto como faço para desabilitar somente nesta pasta de trabalho a função “arquivo imprimir” a lupinha de visualização e CTRL P , criar na plan um botão “imprimir” que rode o código e permita a visualização da impressão com posterior impressão.
Tem como?

 
Postado : 27/06/2012 2:23 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tentei esse código .
mas nesse código dou “arquivo imprimir” ou a lupinha de visualização ou CTRL P , ai abre a tela de impressão e só após clicar no botão imprimir roda a função ,
e o que preciso é:

dou “arquivo imprimir” ou a lupinha de visualização ou CTRL P , rode a função ,depois abra a tela de impressão

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  ocultar_reexibir_anexo 'NomeDaFuncao
End Sub
 
Postado : 28/06/2012 12:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

ou uma outra solução seria desativar o CTRL P, visualizar impressão e "arquivo imprimir" ; ai criar um botão para rodar a função e logo em seguida imprimir , alguém sabe como

 
Postado : 28/06/2012 5:37 pm
(@benzadeus)
Posts: 78
Trusted Member
 

Acho que há uma forma mais simples de resolver isso, não? Cole na classe da Pasta de Trabalho do seu projeto:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    With Sheets("Plan2")
        If ActiveSheet.Name = .Name Then
            'Código aqui.
        End If
    End With
End Sub

O contra desse exemplo é que se houver mais de uma Planilha selecionada no ato de ordenar uma impressão, pode ser que a macro que manipula Plan2 não seja executada.

 
Postado : 29/06/2012 12:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Muito Obrigado BenzaDeus;
Mas não deu certo não; continua rodando a funçao somente após o clique no segundo botão IMPRIMIR

 
Postado : 29/06/2012 6:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Posso estar errado mas;
Private Sub Workbook_beforePrint(Cancel As Boolean) é associado ao botão com o desenho da impressora , que é aquele que após clicar o arquivo vai pra impressora ( é que quando clico em “arquivo imprimir” ou a lupa de visualização ou CTRL P o código não roda , só roda depois que clico no botão imprimir que tem o desenho da impressora.)

“arquivo imprimir” ou a lupa de visualização ou CTRL P - Não seria visualização de impressão com um evento diferente do BeforePrint?

 
Postado : 29/06/2012 6:38 pm
Página 1 / 2