Bloquear código já ...
 
Notifications
Clear all

Bloquear código já inserido em Plan1

6 Posts
2 Usuários
0 Reactions
1,609 Visualizações
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Considerando que eu insiro informações (código de produto) em uma plan1 através do meu texbox1 a partir de um botão de comando...

como posso através de um código bloquear que o "número" informado na minha texbox1 já foi inserido na minha plan1?

 
Postado : 07/10/2013 6:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

como posso através de um código bloquear que o "número" informado na minha texbox1 já foi inserido na minha plan1?

Fazendo a verificação se o numero já foi cadastrado antes de continuar o lançamento, para isto você pode estar se baseando no modelo abaixo, é só fazer as adaptações.

Function Pesquisar
viewtopic.php?f=21&t=2877

[]s

 
Postado : 08/10/2013 5:27 am
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Mauro... esse modelo é ótimo .. a parte de inserir o código na texbox e através do botão pesquisar ele me informar seria ideal..

Só que não estou conseguindo adaptar ao meu código.. pode me dar uma luz?

Abaixo o modelo exemplo que você me passou...
Dim codigo As String

'Valor a pesquisar
codigo = txtcodigo

If codigo = "" Then
MsgBox "Digite um Valor Inválido"
txtcodigo.SetFocus
Exit Sub

Else
'Chama a Function
Procuracodigo (codigo)
End If

If sLocaliza = True Then
MsgBox "Referencia :- " & codigo & " Localizada em :- " & sCel
Else
MsgBox "Referencia não Localizada"
End If

Abaixo o meu modelo

Dim UltimaLinha As Object

Set UltimaLinha = Plan1.Range("A2000").End(xlUp)

UltimaLinha.Offset(1, 0).Value = txtcodigo.Text
UltimaLinha.Offset(1, 1).Value = txtnfe.Text
UltimaLinha.Offset(1, 2).Value = txtdesc.Text
UltimaLinha.Offset(1, 3).Value = txtref.Text
UltimaLinha.Offset(1, 4).Value = txtsap.Text
UltimaLinha.Offset(1, 5).Value = txtqtd.Text
UltimaLinha.Offset(1, 6).Value = txtvalor.Text
UltimaLinha.Offset(1, 7).Value = txtICMS.Text
UltimaLinha.Offset(1, 8).Value = txtIPI.Text
UltimaLinha.Offset(1, 9).Value = txtdata.Text
UltimaLinha.Offset(1, 10).Value = txtdoc.Text
UltimaLinha.Offset(1, 11).Value = txtlinha.Text
UltimaLinha.Offset(1, 12).Value = txtmotivo.Text

If Me.CheckBox1.Value = True Then UltimaLinha.Offset(1, 13).Value = "Cliente"
If Me.CheckBox2.Value = True Then UltimaLinha.Offset(1, 13).Value = "Loja"
MsgBox "Item inserido com sucesso..."

txtnfe.Text = ""
txtdesc.Text = ""
txtref.Text = ""
txtsap.Text = ""
txtqtd.Text = ""
txtvalor.Text = ""
txtICMS.Text = ""
txtIPI.Text = ""
txtdata.Text = ""
txtdoc.Text = ""
txtlinha = ""
txtmotivo = ""
txtqtd = ""
CheckBox1 = False
CheckBox2 = False
txtcodigo.SetFocus

With txtcodigo
.SetFocus
.SelStart = 0
.SelLength = Len(txtcodigo.Text)

End With

End Sub

 
Postado : 08/10/2013 8:31 pm
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Esse resultado realmente não me serviu, será que não há outra forma mais simples?

Só preciso de um código que identifique que o item a ser inserido já consta na plan1

 
Postado : 10/10/2013 8:16 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Welington, mais acimavocê citou :

Mauro... esse modelo é ótimo .. a parte de inserir o código na texbox e através do botão pesquisar ele me informar seria ideal..

Agora você diz isto :

Esse resultado realmente não me serviu, será que não há outra forma mais simples?
Só preciso de um código que identifique que o item a ser inserido já consta na plan1

O que eu gosto do VBA e utilizando uma frase do perfil do fernando.fernandes "Existem mil maneiras de preparar Neston, invente uma!", ou seja, existem mil e diria mil e uma maneiras de se construir as rotinas, as vezes umas ficam mais leves mas não dão o resultado 100%.
Uma outra alternativa que provavelmente seja mais simples é utilizando o "objeto dictionary scripting", de uma olhada no link http://www.techbookreport.com/tutorials ... onary.html, se pesquisar no google encontrara uma infinidade de exemplos.

Mas voltando ao exemplo que indiquei, eu não acho ele tão complicado, uma vez que se analisar e procurar entender o procedimento, verá que só tem de alterar uma no máximo duas linhas, que seria acrescentar a chamada para a rotina continuar se o valor pesquisado não for localizado, ou seja :

'Aqui, se o textbox for vazio emitte a msg e retorna o foco no textbox
If codigo = "" Then
MsgBox "Digite um Valor Inválido"
txtcodigo.SetFocus
Exit Sub

Se não, continua e chama a Function
Else
'Chama a Function
Procuracodigo (codigo)
End If

Se o valor for localizado, significa que ele já existe, é só ajustar apos o msgbox para retornar ao textbox para nova digitação
If sLocaliza = True Then
MsgBox "Referencia :- " & codigo & " Localizada em :- " & sCel

Se não foi localizada, é porque não existe, então em vez da msgbox, troque pela chamada a sua rotina para continuar.
Else
MsgBox "Referencia não Localizada"
End If

[]s

 
Postado : 10/10/2013 3:51 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tópico considerado como Resolvido uma vez que não houve retorno do autor dizendo o contrário.
Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

 
Postado : 14/10/2013 9:19 pm