Função FileDialog(S...
 
Notifications
Clear all

Função FileDialog(SaveAs). Clicando no botão "cancelar"

5 Posts
3 Usuários
0 Reactions
783 Visualizações
(@wolneypk)
Posts: 188
Reputable Member
Topic starter
 

Calma!
Esse não é mais um Tópico perguntando sobre como criar um botão de "Salvar como"!

Meu caso é o seguinte: Já tenho toda função que "Salva o Arquivo Como" pronta, só que com o seguinte problema:
Se o camarada clica em "Salvar Como" e coloca o nome do arquivo bonitinho e salva... Normal!
Mais se o camarada clica em "Salvar Como" e por algum motivo clica em Cancelar... F%%$#!
O arquivo original é sobreposto pelo que está em uso...

Existe alguma maneira de eu fazer ele compreender que se a pessoa clicar em Cancelar, ele deverá cancelar a Função FileDialog(SaveAs) e fechar essa FileDiolog?

Segue aqui a função que eu estou usando:

If MsgBox"Deseja salvar um novo arquivo?"=VbYes Then
    Dim CaixaDialogo As FileDialog
    Set CaixaDialogo = Application.FileDialog(msoFileDialogSaveAs)
    With CaixaDialogo
    .Show
    .Execute
    End With

Else
Faz uma sequencia de coisas que não vêm ao caso...
 
Postado : 04/04/2013 12:56 pm
(@alminen)
Posts: 77
Trusted Member
 

Um If logo depois de End With, talvez?

If CaixaDialogo = vbNullString Then Exit Sub

Ou um GoTo, para logo depois do Else (caso queira continuar a sequência de atividades).

 
Postado : 04/04/2013 1:10 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Uma outra possibilidade pode ser

    
With CaixaDialogo
        If .Show = 0 Then Exit Sub
        CaixaDialogo.Execute
End With
 
Postado : 04/04/2013 1:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Você pode usar esta tambem, é só fazer asa adaptações necessárias :

Private Sub MsgSalvarComo()

    Dim sMsg
        
    sMsg = MsgBox("Deseja salvar um novo arquivo", vbYesNo + vbDefaultButton1 + vbQuestion, _
                      "Salvar Como")
    
    Application.EnableEvents = False
    
    Cancel = True
    
    If sMsg = vbYes Then
    
       Application.Dialogs(xlDialogSaveWorkbook).Show
       
    ElseIf sMsg = vbNo Then
    
        MsgBox " cancelou"
        
    Else
    
        Cancel = True
        
    End If
    
    Application.EnableEvents = True
   
End Sub

[]s

 
Postado : 04/04/2013 5:06 pm
(@wolneypk)
Posts: 188
Reputable Member
Topic starter
 

Perfeito amigos!
Ajudaram a resolver um problema antigo!

Muito Obrigado e Parabéns pelo conhecimento vasto.
Forte abraço!

 
Postado : 05/04/2013 7:49 am