locked
Duvida-Formulário RRS feed

  • Pergunta

  •  

    Bom Dia

     

    Pessoal,tenho uma pasta de trabalho do excel que pela qual é realizada uma pesquisa por meio de formulários!A pesquisa se inicia no evento Activate da pasta de trabalho mostrando o Primeiro Formulário,no ultimo formulário a pasta de trabalho é salva e fecha automaticamente!Até aí tudo bem, o problema é que o Formulário tem o botão fechar e se o usuário clicar nele ele pode fechar o formulário e ter acesso à planilha!

     Eu queria saber como posso bloquear o click no botão fechar ou até mesmo saber qual o evento porque assim poderia por uma senha para se ter acesso à planilha se clicado o botão fechar do form,alguem pode me ajudar?

     

    grato pela ajuda

     

     

    sexta-feira, 18 de abril de 2008 12:47

Respostas

  • Xox, não se esqueça de usar esta propriedade

    Caso o usuário tente apertar ctrl+pause/break e assim ele poderia interromper seu código mesmo seu projeto tendo senha...

    Use essa propriedade com muito cuidado. Se você usar xlDisabled, não haverá como interromper um loop descontrolado ou outro código que não termine a si mesmo.

     

    Code Snippet

    Application.EnableCancelKey = xlDisabled

     

     

    Até..

    domingo, 20 de abril de 2008 17:05
  • Boa Tarde

     

     

    Estive testando as sugestões mas infelizmente ela não serviu a minha necessidade.

    Em teste eu consegui o seguinte:

     


    Code Snippet

     

    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, _
    ByVal wFlags As Long) As Long

    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

    Private Const MF_BYPOSITION = &H400&

     

    Private Sub UserForm_Initialize()

    Dim lHwnd As Long
    lHwnd = FindWindow("ThunderDFrame", Me.Caption)

    Do While lHwnd = 0
    lHwnd = FindWindow("ThunderDFrame", Me.Caption)

    DoEvents
    Loop
    RemoveMenu GetSystemMenu(lHwnd, 0), 6, MF_BYPOSITION

    End Sub

     

     

     

     

    Essa macro desabilita o botao fechar do formulário!

     

    Muito Obrigado pelas dicas e sugestões se precisarem de ajuda estou disponivel !

     

    Boa Tarde e obrigado pela atenção!

    Ah,Evangelista muito obrigado pela dica foi de muito bom uso!

     

    Grato

     

    terça-feira, 22 de abril de 2008 18:14

Todas as Respostas

  • Não tive tempo de testar, mas faria algo mais ou menos assim:

    Code Snippet

    Private Sub UserForm_Terminate()

    'Ativa um InputBox quando o UserForm é fechado
    Senha = InputBox("Digite a senha", "Password")
    Select Case Senha
    Case "123"

    'Se a senha digitada for igual a 123, seleciona Sheets(1).
    Sheets(1).Select
    Case Else
    'Instrução para o caso da senha não estar correta"
    End Select
    End Sub

     

    [ ]s e bom final de semana

    sábado, 19 de abril de 2008 19:10
  • Xox, não se esqueça de usar esta propriedade

    Caso o usuário tente apertar ctrl+pause/break e assim ele poderia interromper seu código mesmo seu projeto tendo senha...

    Use essa propriedade com muito cuidado. Se você usar xlDisabled, não haverá como interromper um loop descontrolado ou outro código que não termine a si mesmo.

     

    Code Snippet

    Application.EnableCancelKey = xlDisabled

     

     

    Até..

    domingo, 20 de abril de 2008 17:05
  • Boa Tarde

     

     

    Estive testando as sugestões mas infelizmente ela não serviu a minha necessidade.

    Em teste eu consegui o seguinte:

     


    Code Snippet

     

    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, _
    ByVal wFlags As Long) As Long

    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

    Private Const MF_BYPOSITION = &H400&

     

    Private Sub UserForm_Initialize()

    Dim lHwnd As Long
    lHwnd = FindWindow("ThunderDFrame", Me.Caption)

    Do While lHwnd = 0
    lHwnd = FindWindow("ThunderDFrame", Me.Caption)

    DoEvents
    Loop
    RemoveMenu GetSystemMenu(lHwnd, 0), 6, MF_BYPOSITION

    End Sub

     

     

     

     

    Essa macro desabilita o botao fechar do formulário!

     

    Muito Obrigado pelas dicas e sugestões se precisarem de ajuda estou disponivel !

     

    Boa Tarde e obrigado pela atenção!

    Ah,Evangelista muito obrigado pela dica foi de muito bom uso!

     

    Grato

     

    terça-feira, 22 de abril de 2008 18:14