2 MACROS EM UM BOTÃO

GHSOUSA 22/06/2017 16:51:40
#474670
Boa tarde,

Tenho um Vba de impressão, dois macros em um botão, quero o 2º só seja executado se a caixa de texto do primeiro for clicado em sim, se for clicado em não quero que interrompa.

No jeito que está, ele está imprimindo mesmo clicando em NÃO, alguém ajuda por favor.


[txt-color=#007100]Private Sub Confirmacao()

Dim resultado As VbMsgBoxResult

resultado = MsgBox([Ô]Deseja Imprimir os Indicadores de Despesas Administrativas?[Ô], vbYesNo, [Ô]Confirmação[Ô])

If resultado = vbYes Then
MsgBox [Ô]Impressão CONFIRMADA![Ô]

Else
MsgBox [Ô]Impressão CANCELADA![Ô]

Exit Sub

End If


End Sub
Private Sub Imprimir()
Dim sh As Worksheet
Set sh = ActiveSheet
Worksheets(Array([Ô]RE02-098[Ô], [Ô]RE02-099[Ô], [Ô]RE02-100[Ô], [Ô]RE02-101[Ô], [Ô]RE02-102[Ô], [Ô]RE02-103[Ô])).PrintOut
sh.Select

End Sub

Sub confirm()

Call Confirmacao
Call Imprimir


End Sub
[/txt-color]
JONATHANSTECKER 23/06/2017 05:33:07
#474682
Olá GHSOUSA,

Em seu método principal, ativado pelo botão, você chama apenas uma rotina
Sub confirm()

Call Confirmacao

End Sub


No método de confirmação, você chama a função de imprimir caso o retorno da mensagem seja sim.
Private Sub Confirmacao()

Dim resultado As VbMsgBoxResult
resultado = MsgBox([Ô]Deseja Imprimir os Indicadores de Despesas Administrativas?[Ô], vbYesNo, [Ô]Confirmação[Ô])

If resultado = vbYes Then
MsgBox [Ô]Impressão CONFIRMADA![Ô]
Call Imprimir
Else
MsgBox [Ô]Impressão CANCELADA![Ô]
Exit Sub
End If

End Sub

Private Sub Imprimir()

Dim sh As Worksheet
Set sh = ActiveSheet

Worksheets(Array([Ô]RE02-098[Ô], [Ô]RE02-099[Ô], [Ô]RE02-100[Ô], [Ô]RE02-101[Ô], [Ô]RE02-102[Ô], [Ô]RE02-103[Ô])).PrintOut
sh.Select

End Sub
GHSOUSA 23/06/2017 08:39:29
#474684
Muuuiiiitoooo Obrigadooooooo caraaa, Funcionou perfeitamente [txt-color=#007100] [/txt-color]
GHSOUSA 23/06/2017 15:59:40
#474693
JONATHANSTECKER, me ajuda em outra coisa por favor, o último deu certo, agora coloque um sub para selecionar a impressora desejada, quando clico em sim ele imprime normal, quando clico em cancelar ele imprimi também


Private Sub Confirmacao()

Dim resultado As VbMsgBoxResult
resultado = MsgBox([Ô]Deseja Imprimir os Indicadores de Despesas Administrativas?[Ô], vbYesNo, [Ô]Confirmação[Ô])

If resultado = vbYes Then
MsgBox [Ô]Impressão CONFIRMADA![Ô]
Call AbreDialogImpr
Call Imprimir
Else
MsgBox [Ô]Impressão CANCELADA![Ô], 64, [Ô]AVISO[Ô]
Exit Sub
End If

End Sub

Private Sub Imprimir()

Dim sh As Worksheet
Set sh = ActiveSheet

Worksheets(Array([Ô]RE02-098[Ô], [Ô]RE02-099[Ô], [Ô]RE02-100[Ô], [Ô]RE02-101[Ô], [Ô]RE02-102[Ô], [Ô]RE02-103[Ô])).PrintOut
sh.Select

End Sub
Sub AbreDialogImpr()

Application.Dialogs(xlDialogPrint).Show

End Sub


Sub confirm()

Call Confirmacao

End Sub
JAKSONLZ 25/06/2017 19:34:31
#474717
Citação:

:
Sub AbreDialogImpr()

Application.Dialogs(xlDialogPrint).Show

End Sub




Substitua por este e vê se funciona...não cheguei a testar....

 Sub AbreDialogImpr()

if (Application.Dialogs(xlDialogPrint).Show) = TRUE then msgbox [Ô]Imprime aqui[Ô]: exit sub

End Sub

GHSOUSA 26/06/2017 08:34:41
#474727
Bom dia, funcionou não amigo, mesmo cancelando a impressão ele ta imprimindo.
JAKSONLZ 26/06/2017 08:51:30
#474728
Citação:

:
Bom dia, funcionou não amigo, mesmo cancelando a impressão ele ta imprimindo.



Cara testei agora de manhã parece funcionar...tenta apenas este sub pra você verificar...


 Sub AbreDialogImpr()

If (Application.Dialogs(xlDialogPrint).Show) = True Then
MsgBox [Ô]Imprime aqui[Ô]
Exit Sub
Else
MsgBox [Ô]Impressão Cancelada[Ô]
End If

End Sub


Obs: Tente reformular seu [ô]sub Imprimir[ô] e chama-lá após a confirmação da impressão, e não separada, talvez seja aí o problema...
Faça seu login para responder