2 MACROS EM UM BOTÃO
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]
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]
Olá GHSOUSA,
Em seu método principal, ativado pelo botão, você chama apenas uma rotina
No método de confirmação, você chama a função de imprimir caso o retorno da mensagem seja sim.
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
Muuuiiiitoooo Obrigadooooooo caraaa, Funcionou perfeitamente [txt-color=#007100] [/txt-color]
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
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
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
Bom dia, funcionou não amigo, mesmo cancelando a impressão ele ta imprimindo.
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