Ir ao conteúdo
  • Cadastre-se

Formulário no Excel


RafaVillani

Posts recomendados

Galera estou desenvolvendo um pequeno sistema, usando o VB do Excel, como meu bando de dados são as planilhas do Excel, não quero que os usuários consigam acessar tais planilhas, estou pelejando com varios códigos para desabilitar o botão fechar dos forms, mas não estou tendo sucesso, alguem poderia me dar uma luz?

Link para o comentário
Compartilhar em outros sites

Use a instrução Unload, exemplo:


Private Cancelar As Integer

Private Sub CommandButton1_Click()
   Cancelar = 0
   Unload Me
End Sub

Private Sub UserForm_Initialize()
   Cancelar = 1
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   Cancel = Cancelar
End Sub

Link para o comentário
Compartilhar em outros sites

Amigo existe outra maneira de se fazer isso, pois com o evento UNLOAD não consegui. Na ajuda do excell achei dessa maneira:

' Este é o procedimento do evento Initialize para UserForm1

Private Sub UserForm_Initialize()

Load UserForm2

UserForm2.Show

End Sub

' Este é o evento Click para UserForm2

Private Sub UserForm_Click()

Unload UserForm2

End Sub

' Este é o evento Click para UserForm1

Private Sub UserForm_Click()

Unload UserForm1

End Sub

consegui fazer em um novo arquivo, mas no meu sistema não acontece nada.

Link para o comentário
Compartilhar em outros sites

Provavelmente está dando erro no seu programa, porque no trecho abaixo, você esta tentando fechar UserForm1 (que é o nome padrão de um formulário, o seu deve ser diferente). Por isso você deve usar Me (Unload Me), Me é uma palavra chave que se refere ao objeto onde o código está sendo executado, neste caso o Formulário.

' Este é o evento Click para UserForm1

Private Sub UserForm_Click()

Unload UserForm1

End Sub

Link para o comentário
Compartilhar em outros sites

Acabei de testar o exemplo da ajuda em outra planilha, e percebi que realmente o fato de não funcioar visto que o botão fechar esta desabilitado.

Testei a priveira vez sem este comando:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Cancel = 1

End Sub

na segunda vez testei com ele e não funcionou.

Link para o comentário
Compartilhar em outros sites

Amigo,

Vamos tentar achar o problema passo a passo, porque este é um procedimento simples e deve ser algum detalhe que está fazendo com que o código não funcione corretamente.

1° Crie uma nova planilha, insira um formulário e um botão.

2° Cole o código abaixo.


Private Cancelar As Integer

Private Sub CommandButton1_Click()
  Cancelar = 0
  Unload Me
End Sub

Private Sub UserForm_Initialize()
  Cancelar = 1
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  Cancel = Cancelar
End Sub

Observe que com o código acima, você não vai conseguir fechar o formulário pelo botão (X). Você só vai conseguir fechar o formulário pelo botão.

Essa é a variável, que vai nos "dizer" se queremos ou não, habilitar o botão (X).

Private Cancelar As Integer

Quando Cancelar for igual a 1, (X) ficará desabilitado e quando for igual a zero, volta a seu estado original.

É isso o que fazemos no Botão que inserimos, antes de usar Unload Me, Cancelar recebe zero, para (X) voltar a seu estado original.

Private Sub CommandButton1_Click()

Cancelar = 0

Unload Me

End Sub

Com os procedimentos acima, você pode aplicar estes códigos em qualquer formulário.

Link para o comentário
Compartilhar em outros sites

Acho que sei o que esta havendo, para desabilitar o botão fechar usamos o seguinte código:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Cancel = 1

End Sub

e para fechar os fomrs usamos este:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Cancel = Cancelar

End Sub

será que está conflitando as variaveis?

Link para o comentário
Compartilhar em outros sites

Funcionou, mas consegui fechar pelo botão (X) também, o que esta acontecendo é que no evento Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer), cancel esta recebendo 1 e ao mesmo tempo recebendo cancelar, e se coloco outro evento Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer), aparece um mensagem "Nome repetido encontrado: QueryClose".

Link para o comentário
Compartilhar em outros sites

Oliver, continua a mesma coisa, consigo fechar pelo commandbutton e pelo botão (X), eis o meu código:

Private Sub UserForm_Initialize()

OptionButton1.Value = True

Cancelar = 1

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Cancel = Cancelar

End Sub

Private Sub CommandButton2_Click()

Cancelar = 0

Unload Me

End Sub

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por RafaVillani@04 de novembro de 2005, 18:13

Oliver não sei se tem a ver, mas em todos os meus forms coloquei o evento:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Cancel = 1

End Sub

Rafael,

Esqueça este "Cancel = 1", dessa forma não vai dar certo. Cancel deve receber o valor da variável Cancelar (Cancel = Cancelar).

Link para o comentário
Compartilhar em outros sites

As colunas? Nome, Telefone-01...

Se for isso, vamos supor que os dados estejam no intervalo A1:C4, onde, exemplo: A1 = Codigo, B1 = Nome e C1 = Endereço. O Código abaixo lista a tabela no controle ListBox1, observe o uso das propriedades ColumnHeads e ColumnCount.


Private area As Range

Private Sub UserForm_Initialize()

Set area = Range("A2:C4")

With Me.ListBox1
   
   .ColumnHeads = True
   .ColumnCount = area.Columns.Count
   
   .RowSource = area.Address

End With
End Sub

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!