none
Abrir save as RRS feed

  • Pergunta

  • Boa tarde,

    Tenho um projecto feito com addin-express e precisava de saber duas coisas se for possivel.

    Primeira:

    Ao carregar num botão valida se o ficheiro está guardado localmente, se não estiver queria abrir a janela de saveas do office. Como posso fazê-lo ou qual a melhor maneira de fazer?

    Segunda:

    Quando fechasse o workbook no excell gostava que desparasse um evento para colocar algumas variaveis a false. Como posso fazê-lo ou qual a melhor maneira de fazer?

    Obrigado,

    Élio

    quinta-feira, 10 de maio de 2012 14:25

Respostas

Todas as Respostas

  • Primeiro:

    Vamos partir da premissa que uma Pasta de Trabalho/Suplemento está guardado localmente se o início do seu caminho for igual ao início do caminho do Excel (por exemplo, os dois tem que estar no c:\):

    Sub Teste()
        Dim wb As Workbook
        Set wb = ThisWorkbook
        If IsLocal(ThisWorkbook) Then
            'MsgBox "A Pasta de Trabalho '" & ThisWorkbook.Name & "' é local."
        Else
            'MsgBox "A Pasta de Trabalho '" & ThisWorkbook.Name & "' não é local."
            Application.Dialogs(xlDialogSaveAs).Show
        End If
    End Sub
    
    Function IsLocal(Optional wb As Workbook) As Boolean
        If wb Is Nothing Then Set wb = ThisWorkbook
        IsLocal = (Left(Application.Path, InStr(1, Application.Path, "\")) = _
          Left(wb.Path, InStr(1, wb.Path, "\")))
    End Function


    Segundo:

    Crie um módulo de classe chamado appExcel com o código:

    Public WithEvents appExcel As Application
    
    Private Sub appExcel_WindowDeactivate(ByVal Wb As Workbook, ByVal Wn As Window)
        'Variável1 = False
        'Variável2 = False
        '...
    End Sub

    Em seguida, no evento Workbook_Open do seu Addin, coloque o código:

    Dim app As cAppExcel
    
    Private Sub Workbook_Open()
        Set app = New cAppExcel
        Set app.appExcel = Application
    End Sub

    Salve o Addin e abra-o novamente.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    domingo, 13 de maio de 2012 23:22
    Moderador
  • O meu código está feito em c#.

    Tentei experimentar o Application.Dialogs(xlDialogSaveAs).Show mas não funcionou.


    segunda-feira, 21 de maio de 2012 11:48
  • segunda-feira, 21 de maio de 2012 21:15
    Moderador