Usuário com melhor resposta
Duvidas - Vba

Pergunta
-
Ola uso o vb do excel 2007 e tenho algumas duvidas
como tirar o X que fica na aba da pagina no programa que criei ? (o X de fechar anula o codigo que criei para entra - um LOGIN-) dai quando nao souber a senha
é clicar no x que ele fecha a aba e continua no programa.E como fazeer um codigo para que quando de algo errado no programa ele nao va pedir para depurar e sim so fechar o programa?
E um codigo que va usar para coverter gramas de um textbox para kg em outro textbox.
urgencia
tudo no vba do excel 2007
Respostas
-
1 - Remover o X de um formulário
Na verdade, o código abaixo não remove o X, e sim inutiliza-o. O motivo disto é evitar chamadas API desnecessárias.
Crie um formulário com um botão de comando btnSair e use o código abaixo:
Private Sub btnSair_Click() Unload Me End Sub Private Sub UserForm_QueryClose _ (Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True MsgBox "Favor clicar no botão 'Sair' para encerrar o programa" _ , vbCritical _ , "Erro" End If End Sub
Observe que o evento QueryClose é chamando quando se pressiona Alt+F4 ou tenta-se fechar o programa ao clicar no X vermelho.
2 - Suprimir erros de um programa
Não é recomendável pular os erros de um programa, e sim desenvolver um código robusto que possua uma quantidade mínima possível de falhas e gerenciar os erros não previstos. No entanto, você pode aproveitar o código abaixo:
Sub EncontrarErro() 'O comando abaixo suprimirá erros: On Error GoTo Erro 'A linha de código abaixo gera um erro (não é possível dividir um número por zero): Debug.Print 1 / 0 Exit Sub Erro: MsgBox "Erro " & Err.Number & " encontrado no módulo 'EncontrarErro' " & vbNewLine & _ "Descrição: " & Err.Description & vbNewLine & _ ". Saindo do programa..." _ , vbCritical _ , "Erro" End Sub
3 - Converter gramas em kilogramas
Crie um formulário com um botão de comando btnSair, e duas caixas de texto, uma chamada txtGrama e outra chamada txtKilograma. Use o código abaixo:
Private Sub btnConverter_Click() On Error Resume Next txtKilogramas = txtGramas / 1000 End Sub
Para baixar uma Pasta de Trabalho com todos esses exemplos, clique no link:
http://www.megaupload.com/?d=WOGOOKDD
Felipe Costa Gualberto - http://www.ambienteoffice.com.br- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 14:26
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 14:27
Todas as Respostas
-
-
-
-
1 - Remover o X de um formulário
Na verdade, o código abaixo não remove o X, e sim inutiliza-o. O motivo disto é evitar chamadas API desnecessárias.
Crie um formulário com um botão de comando btnSair e use o código abaixo:
Private Sub btnSair_Click() Unload Me End Sub Private Sub UserForm_QueryClose _ (Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True MsgBox "Favor clicar no botão 'Sair' para encerrar o programa" _ , vbCritical _ , "Erro" End If End Sub
Observe que o evento QueryClose é chamando quando se pressiona Alt+F4 ou tenta-se fechar o programa ao clicar no X vermelho.
2 - Suprimir erros de um programa
Não é recomendável pular os erros de um programa, e sim desenvolver um código robusto que possua uma quantidade mínima possível de falhas e gerenciar os erros não previstos. No entanto, você pode aproveitar o código abaixo:
Sub EncontrarErro() 'O comando abaixo suprimirá erros: On Error GoTo Erro 'A linha de código abaixo gera um erro (não é possível dividir um número por zero): Debug.Print 1 / 0 Exit Sub Erro: MsgBox "Erro " & Err.Number & " encontrado no módulo 'EncontrarErro' " & vbNewLine & _ "Descrição: " & Err.Description & vbNewLine & _ ". Saindo do programa..." _ , vbCritical _ , "Erro" End Sub
3 - Converter gramas em kilogramas
Crie um formulário com um botão de comando btnSair, e duas caixas de texto, uma chamada txtGrama e outra chamada txtKilograma. Use o código abaixo:
Private Sub btnConverter_Click() On Error Resume Next txtKilogramas = txtGramas / 1000 End Sub
Para baixar uma Pasta de Trabalho com todos esses exemplos, clique no link:
http://www.megaupload.com/?d=WOGOOKDD
Felipe Costa Gualberto - http://www.ambienteoffice.com.br- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 14:26
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 14:27
-
Olá, alguém pode me ajudar?
Tenho um cadastro que é realizado pelo CPF e armazena CPF, Nome, RG, data nascimento e serviço.
Dependendo do serviço, o cliente pode ser cadastrado mais de uma vez no banco de dados, por exemplo:
CPF 012.345.678.99 cliente José serviço 01
CPF 012.345.678.99 cliente José serviço 02
CPF 012.345.678.99 cliente José serviço 04
Ocorre que quando vou fazer a pesquisa e digito o cpf de José, só aparece o primeiro serviço e quando clico de novo no botão “pesquisar” ela não faz a busca pelos outros serviços de Jose
Como faço para quando eu clicar no botão “pesquisar” novamente, ir aparecendo os outros serviços de jose? Ou seja, como faço para quando eu apertar o botão “pesquisar” apareça a informação de outra linha que tenha o número do CPF de josé?
Private Sub cmdPequisar_Click()
'Verificar se foi digitado um nome na primeira caixa de texto
If txtCPF.Text = "" Then
MsgBox "Digite o CPF de um cliente"
txtCPF.SetFocus
GoTo Linha1
End If
With Worksheets("Dados Clientes").Range("A:A")
Set c = .Find(txtCPF.Value, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
c.Activate
TxtRg.Value = c.Offset(0, 1).Value
txtNome.Value = c.Offset(0, 2).Value
txtNascimento.Value = c.Offset(0, 3).Value
txtServiço.Value = c.Offset(0, 5).Value
'Carregando o botão de opção
If c.Offset(0, 4) = "Masculino" Then
OptionButton1.Value = True
Else
OptionButton2.Value = True
End If
Else
MsgBox "Cliente não encontrado!"
End If
End With
Linha1:
End Sub