Notifications
Clear all

Botão não funciona

6 Posts
3 Usuários
0 Reactions
1,158 Visualizações
(@valdecirrk)
Posts: 230
Reputable Member
Topic starter
 

Bom dia

Estava fazendo algumas melhorias no leiaute, e quando fui inicar novamente o projeto, o botão para iniciar não estava mais funcionando, la dentro ele habilitava uma macro para localizar e desbloquear para edição.

 
Postado : 08/01/2014 8:15 am
(@depoisteconto)
Posts: 183
Reputable Member
 

Olá.

Seguinte: Quando você pressiona o botão "Iniciar Registro" ele executa uma sub chamada Localizar.

Veja o código abaixo: Ele varre a planilha "TS" e realiza alguns testes, se favorecer ele chama outra sub "Desbloquear", senão ele mantém tudo bloqueado.

Entenda o que está sendo testado e conserte para ter o desbloqueio dos campos.

Sub Localizar()
 Dim UltimaLinha, i As Long
 Dim Resultado As VbMsgBoxResult
    
    UltimaLinha = Sheets("TS").Cells(Cells.Rows.Count, 1).End(xlUp).Row
   
    If UltimaLinha < 2 Then UltimaLinha = 2
      For i = 2 To UltimaLinha
        If Sheets("TS").Range("A" & i).Value = FrmTerceiros.TextBox18.Value Then
            FrmTerceiros.Label21.Caption = Sheets("TS").Range("B" & i).Value
            Desbloquear
        Exit For
      End If
    
    Next
      If Sheets("TS").Range("A" & i).Value <> FrmTerceiros.TextBox18.Value Then
        Resultado = MsgBox("Cadastro não existe, digite um válido", vbYes, "Aviso")
        FrmTerceiros.TextBox18.Value = ""
        FrmTerceiros.TextBox18.SetFocus
        Bloquear
     End If

End Sub

At

 
Postado : 08/01/2014 9:57 am
(@valdecirrk)
Posts: 230
Reputable Member
Topic starter
 

mas mesmo eu digitando o valor que corresponde dentro da planilha ele não desbloqueia.

 
Postado : 08/01/2014 10:02 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

valdecirrk,

Boa Tarde!

Bom... primeiro o seu TextBox18 (que é testado no código Localizar estava escondido atrás do TextBox22. Eu apenas coloquei ele visível no formulário em um local diferente. Veja onde deve colocá-lo no layout do seu Form.

Depois, no teste existente na rotina Localizar (para chamar a rotina Desbloquear) você estava tentando comparar Número com Texto. Então utilizei a função Val para transformar o conteúdo da caixa de texto em Número e assim fazer o teste corretamente. Veja se assim lhe atende.

 
Postado : 08/01/2014 10:58 am
(@valdecirrk)
Posts: 230
Reputable Member
Topic starter
 

era isso mesmo, não me atentei, valeu mesmo.

 
Postado : 08/01/2014 11:14 am
(@depoisteconto)
Posts: 183
Reputable Member
 

É tudo que o Morel disse.

Trocar no código textbox18 por 22.

E compara número com número, ou seja, o valor recuperado da célula pode ficar armazenado em uma variável do tipo integer.

Veja como ficaria esse trecho:

Sub Localizar()
Dim UltimaLinha, i As Long
Dim Resultado As VbMsgBoxResult
Dim Valor as Integer  

    UltimaLinha = Sheets("TS").Cells(Cells.Rows.Count, 1).End(xlUp).Row
   
    If UltimaLinha < 2 Then UltimaLinha = 2
      For i = 2 To UltimaLinha
      Valor = Sheets("TS").Range("A" & i).Value
        If Valor = FrmTerceiros.TextBox18.Value Then
            FrmTerceiros.Label21.Caption = Sheets("TS").Range("B" & i).Value
            Desbloquear
        Exit For
      End If

Outra coisa. Sua contagem inicia em 2 e na planilha "TS", os dados inicial em 1. Se mantiver assim, vai deixar de testar uma linha.

At

 
Postado : 08/01/2014 11:17 am