Jump to content
Sign in to follow this  
jmaocubo

Mensagem de aviso se Macros desactivados

Recommended Posts

jmaocubo

Olá a todos

Após concluído o trabalho para a empresa, na qual vocês muito me ajudaram, surgiu agora um problema que eu não estava à espera.

Quem tem um conhecimento razoável em excel sabe que tem que activar as macros para que estas funcionem.... o problema é quem não sabe!!! B)

Será possivel fazer uma especie de popup com uma mensagem a avisar que as macros estão desactivadas e poder a partir dessa caixa "popup" activar sendo a escolha "ACTIVAR" e "NÃO ACTIVAR"....

Share this post


Link to post
Share on other sites
jmaocubo

Tens que ver nos níveis de segurança.

Sim.... no meu os niveis de segurança estão OK para as macros. O grande problema é que a folha de cálculo vai ser usada em "n" computadores que poderão não estar com nivel de segurança que permita activar as macros e claro pode estar a ser usada por alguém que não saiba activar.

Share this post


Link to post
Share on other sites
Forgon
Sim.... no meu os níveis de segurança estão OK para as macros. O grande problema é que a folha de cálculo vai ser usada em "n" computadores que poderão não estar com nivel de segurança que permita activar as macros e claro pode estar a ser usada por alguém que não saiba activar.

Não sei se é possível fazer o que estás a perguntar. Se calhar é escrever no rodapé do programa (1ª folha) como activar o macro.

Share this post


Link to post
Share on other sites
anolsi

Office 2007 ou 2003?


"Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."
Não respondo a questões por PM que possam ser colocadas no fórum!

Share this post


Link to post
Share on other sites
jmaocubo

Olá a todos

Após concluído o trabalho para a empresa, na qual vocês muito me ajudaram, surgiu agora um problema que eu não estava à espera.

Quem tem um conhecimento razoável em excel sabe que tem que activar as macros para que estas funcionem.... o problema é quem não sabe!!! :)

Será possivel fazer uma especie de popup com uma mensagem a avisar que as macros estão desactivadas e poder a partir dessa caixa "popup" activar sendo a escolha "ACTIVAR" e "NÃO ACTIVAR"....

Bem, desta forma não seria possivel criar nada uma vez que preciso das macros activadas para fazer o acima descrito.

Depois de fazer uma pesquisa intensiva na net cheguei ao seguinte código de um senhor chamado Mark:

Option Explicit

Const WelcomePage = "Macros"

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

'Macro Purpose: Ensure that the macro instruction sheet is saved as the only
'               visible worksheet in the workbook
    Dim ws As Worksheet
    Dim wsActive As Worksheet
    Dim vFilename As Variant
    Dim bSaved As Boolean

    'Turn off screen flashing
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    'Record active worksheet
    Set wsActive = ActiveSheet

    'Save workbook directly or prompt for saveas filename
    If SaveAsUI = True Then
        vFilename = Application.GetSaveAsFilename( _
        fileFilter:="Excel Files (*.xls*), *.xls*")
        If CStr(vFilename) = "False" Then
            bSaved = False
        Else
            'Save the workbook using the supplied filename
            Call HideAllSheets
            ThisWorkbook.SaveAs vFilename
            Application.RecentFiles.Add vFilename
            Call ShowAllSheets
            bSaved = True
        End If
    Else
        'Save the workbook
        Call HideAllSheets
        ThisWorkbook.Save
        Call ShowAllSheets
        bSaved = True
    End If

    'Restore file to where user was
    wsActive.Activate

    'Restore screen updates
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    
    'Set application states appropriately
    If bSaved Then
        ThisWorkbook.Saved = True
        Cancel = True
    Else
        Cancel = True
    End If

End Sub

Private Sub Workbook_Open()

'Macro Purpose: Unhide all worksheets since macros are enabled
    Application.ScreenUpdating = False
    Call ShowAllSheets
    Application.ScreenUpdating = True
    ThisWorkbook.Saved = True
End Sub

Private Sub HideAllSheets()

'Macro Purpose: Hide all worksheets except the macro welcome page

    Dim ws As Worksheet

    Worksheets(WelcomePage).Visible = xlSheetVisible

    For Each ws In ThisWorkbook.Worksheets
        If Not ws.Name = WelcomePage Then ws.Visible = xlSheetVeryHidden
    Next ws

    Worksheets(WelcomePage).Activate
End Sub

Private Sub ShowAllSheets()

'Macro Purpose: Show all worksheets except the macro welcome page

    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        If Not ws.Name = WelcomePage Then ws.Visible = xlSheetVisible
    Next ws

    Worksheets(WelcomePage).Visible = xlSheetVeryHidden
End Sub

Ou seja numa folha com o nome de macros coloco uma informação de que é necessário activar as macros e se efectivamente as macros estão desactivadas apenas aparece esta folha com o nome macros e não as restantes.

Quando é activado as macros, a folha macros deixa de aparecer e aparecem as outras

É uma forma de contornar o problema.

Share this post


Link to post
Share on other sites
jmaocubo

Viva pessoal, afinal este código tem um problema que não estou a conseguir resolver.

Quando faço gravar como (saveas) e lhe mudo o nome ele dá erro no ponto

  If SaveAsUI = True Then
        vFilename = Application.GetSaveAsFilename( _
        fileFilter:="Excel Files (*.xls*), *.xls*")
        If CStr(vFilename) = "False" Then
            bSaved = False
        Else
            'Save the workbook using the supplied filename
            Call HideAllSheets
            ThisWorkbook.SaveAs vFilename                 ' O ERRO É NESTE PONTO
            Application.RecentFiles.Add vFilename
            Call ShowAllSheets
            bSaved = True

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.