Notifications
Clear all

Anular Botão Cancelar

6 Posts
3 Usuários
0 Reactions
1,741 Visualizações
(@alvaro)
Posts: 78
Trusted Member
Topic starter
 

Pessoal boa noite.
Tenho a seguinte macro para converter uma sheet do excel em pdf.
Quando abre a caixa de "Salvar Como" mesmo quando eu clico em cancelar, executa a macro.
Alguem poderia me ajudar para que quando eu desse um click em "Cancelar", não executar a macro?

    Dim fname As Variant
    Dim ws As Worksheet
    Dim NewWb As Workbook
    Dim FileFormatValue As Long   

        fname = Application.GetSaveAsFilename(InitialFileName:=Range("AJ6").Text & "_" & Range("Y4").Value & "_" & Range("A4").Value, FileFilter:= _
       "PDF Files (*.pdf), *.pdf", _
        FilterIndex:=1, Title:="Salvar Como um Novo Arquivo de Inspeção")
       
        If fname = False Then
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fname, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
            MsgBox "Arquivo em PDF criado com sucesso."
         End If
 
Postado : 10/06/2016 3:23 pm
(@mprudencio)
Posts: 2749
Famed Member
 

O codigo esta incompleto, disponibilize novamente mas dessa vez com o arquivo

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 10/06/2016 4:13 pm
(@alvaro)
Posts: 78
Trusted Member
Topic starter
 

Marcelo, boa noite.
Realmente o codigo estava incompleto mesmo.

Sub SalvarComo()
    Dim fname As Variant
    Dim ws As Worksheet
    Dim NewWb As Workbook
    Dim FileFormatValue As Long   

        fname = Application.GetSaveAsFilename(InitialFileName:=Range("AJ6").Text & "_" & Range("Y4").Value & "_" & Range("A4").Value, FileFilter:= _
       "PDF Files (*.pdf), *.pdf", _
        FilterIndex:=1, Title:="Salvar Como um Novo Arquivo de Inspeção")
       
        If fname = False Then
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fname, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
            MsgBox "Arquivo em PDF criado com sucesso."
         End If
   
 
Postado : 10/06/2016 5:25 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Kd o arquivo amigo??

É necessario testar o codigo.

Apague dados confidenciais.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 10/06/2016 5:28 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

... mesmo quando eu clico em cancelar, executa a macro...
...
...

...
        If fname = False Then
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fname, _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
            MsgBox "Arquivo em PDF criado com sucesso."
         End If

Analisando por alto, penso que sua expressão condicional está invertida. Na verdade, ao contrário do que vc espera, ele somente irá executar o salvamento (exportação) se for clicado em cancelar, pois ao fazer isso fname terá o valor false então fará o que está dentro da expressão condicional. Penso que ao invés de usar

If fname = False Then

Terias que usar

If fname <> False Then
...

 
Postado : 10/06/2016 9:28 pm
(@alvaro)
Posts: 78
Trusted Member
Topic starter
 

Muito obrigado Edson, não tinha atentado para esse detalhe.
Deu certinho aqui.

 
Postado : 14/06/2016 4:30 pm