Cinco dicas que foram muito úteis para mim:
1) Quando não sei fazer algo no VBA, vou ao menu EXIBIÇÃO >> MACROS >> GRAVAR MACRO
Faço o que eu quero aí volto ao menu EXIBIÇÃO >> MACROS >> PARAR GRAVAÇÃO
Aperto Alt + F11 e vejo como a macro fez aquilo. Tento entender e tento adaptar.
2) Quando vou criar um código e o resultado não está saindo como o esperado, entro no código e vou apertando F8 para executar passo a passo, aí vou passando o mouse sobre as variáveis para verificar se o valores delas estão corretos, já consertei milhares de códigos dessa forma.
3) Antes de executar o código, vou ao menu Depurar >> Compilar. Isso ajuda a corrigir erros mais simples, como o nome de uma variável digitado errado.
4) Declaro todas as variáveis. Isso também evita erros.
5) Sempre uso o Option Explicit lá no início. Ele me obriga a declarar as variáveis.
Private Sub cmdpesquisar_Click()
With Worksheets("base").Range("A:A")
'Set c = .Find(txtsenha.Value, LookIn:=xlValues, LookAt:=xlWhole)
If txtsenha.Text = "" Then
'MsgBox "Digite uma senha para pesquisar!", vbInformation, "SENHA EM BRANCO"
'desabilitando as opcoes
Me.txtfornecedor.Enabled = False
Me.txtdata.Enabled = False
Me.cbrecebida.Enabled = False
Me.cbrecusada.Enabled = False
Me.cbnoshow.Enabled = False
Me.frmoc.Enabled = False
Me.cbsemoc.Enabled = False
Me.cbavaria.Enabled = False
Me.cbhorario.Enabled = False
Me.cbpaletizacao.Enabled = False
Me.cbqualidade.Enabled = False
Me.cbshelf.Enabled = False
Me.cberrocad.Enabled = False
Me.cbnf.Enabled = False
Me.cberroped.Enabled = False
Me.cbveiculo.Enabled = False
Me.frmobs.Enabled = False
Me.txtobs.Enabled = False
Me.txtsenha.Enabled = False
Me.txtobs.BorderStyle = fmBorderStyleSingle
Me.txtobs.SpecialEffect = fmSpecialEffectSunken
MsgBox "Digite uma senha para pesquisar!", vbInformation, "SENHA EM BRANCO"
goto fim
Else
Set c = .Find(txtsenha.Value, LookIn:=xlValues, LookAt:=xlWhole)
'Else
If Not c Is Nothing Then
'c.Activate
Sheets("base").Visible = True
txtsenha.Value = c.Value
txtfornecedor.Value = c.Offset(0, 1).Value
txtdata.Value = c.Offset(0, 2).Value
'opcoes
'opcao recebida
If c.Offset(0, 3).Value = "1" Then
cbrecebida.Value = True
Else
cbrecebida.Value = False
End If
'opcao recusada
If c.Offset(0, 4).Value = "1" Then
cbrecusada.Value = True
Else
cbrecusada.Value = False
End If
'opcao noshow
If c.Offset(0, 5).Value = "1" Then
cbnoshow.Value = True
Else
cbnoshow.Value = False
End If
'opcoes
If c.Offset(0, 6).Value = "1" Then
cbsemoc.Value = True
Else
cbsemoc.Value = False
End If
If c.Offset(0, 7).Value = "1" Then
cbavaria.Value = True
Else
cbavaria.Value = False
End If
If c.Offset(0, 8).Value = "1" Then
cbhorario.Value = True
Else
cbhorario.Value = False
End If
If c.Offset(0, 9).Value = "1" Then
cbpaletizacao.Value = True
Else
cbpaletizacao.Value = False
End If
If c.Offset(0, 10).Value = "1" Then
cbqualidade.Value = True
Else
cbqualidade.Value = False
End If
If c.Offset(0, 11).Value = "1" Then
cbshelf.Value = True
Else
cbshelf.Value = False
End If
If c.Offset(0, 12).Value = "1" Then
cberrocad.Value = True
Else
cberrocad.Value = False
End If
If c.Offset(0, 13).Value = "1" Then
cbnf.Value = True
Else
cbnf.Value = False
End If
If c.Offset(0, 14).Value = "1" Then
cberroped.Value = True
Else
cberroped.Value = False
End If
If c.Offset(0, 15).Value = "1" Then
cbveiculo.Value = True
Else
cbveiculo.Value = False
End If
Sheets("base").Visible = False
Else
'Limpar as caixas de texto
txtsenha.Value = Empty
txtfornecedor.Value = Empty
txtdata.Value = Empty
MsgBox "Verifique a senha digitada!", vbCritical, "SENHA NÃO LOCALIZADA"
'foco na senha
txtsenha.SetFocus
End If
End If
End With
'habilitando as opcoes
Me.txtfornecedor.Enabled = False
Me.txtdata.Enabled = False
Me.cbrecebida.Enabled = True
Me.cbrecusada.Enabled = True
Me.cbnoshow.Enabled = True
Me.frmoc.Enabled = True
Me.cbsemoc.Enabled = True
Me.cbavaria.Enabled = True
Me.cbhorario.Enabled = True
Me.cbpaletizacao.Enabled = True
Me.cbqualidade.Enabled = True
Me.cbshelf.Enabled = True
Me.cberrocad.Enabled = True
Me.cbnf.Enabled = True
Me.cberroped.Enabled = True
Me.cbveiculo.Enabled = True
Me.frmobs.Enabled = True
Me.txtobs.Enabled = True
Me.txtsenha.Enabled = True
Me.txtsenha2.Enabled = True
Me.txtobs.BorderStyle = fmBorderStyleNone
Me.txtobs.SpecialEffect = fmSpecialEffectSunken
'desabilitando os botoes
Me.cmdnovo.Visible = False
Me.cmdeditar.Visible = False
fim:
End Sub
Postado : 23/07/2018 6:35 am