Notifications
Clear all

Apagar dados da combobox

19 Posts
2 Usuários
0 Reactions
6,315 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Private Sub CbCidade_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))

Set b = Sheets("BDAlimentadores")

Set c = b.Range("A1:A65536").Find(CbCidade.Value, lookat:=xlWhole)

If Not c Is Nothing Then
If CStr(UCase(CbCidade.Value)) = CStr(UCase(c.Cells)) Then

Else
GoTo Alerta
End If
Else
GoTo Alerta
End If
Exit Sub
Alerta:
MsgBox "Digite Cidade Válida , " & Chr(13) & Chr(13) & " OU" & Chr(13) & Chr(13) & "SELECIONE NA CAIXA", vbOKOnly + vbCritical + vbInformation, ".:: [email protected] ::."
CbCidade.Text = ""
CbCidade.SelStart = 0
End Sub

estou tentanto usar este codigo, dentre outras coisas o que ele "tenta" fazer é ;ir auto completando ,mas se digitar algo que não esteja na lista em BDAlimentadores , dar uma msg que houve um erro e ; CbCidade.Text = ""; apagar o que foi escrito, mas sempre sobra uma letra na combo, alguem pode me dizer como resolver por favor?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/04/2012 9:37 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Claudinei, anexe um exemplo reduzido e compactado, fica mais fácil analisar com o modelo pronto do que recriar um outro.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/04/2012 10:23 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!
Além da postagem do mauro...

seria um comando.

ComboBox1.Clear
Me.comboBoxName.RowSource = ""

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/04/2012 11:41 am
arthurdiegoo
(@arthurdiegoo)
Posts: 99
Trusted Member
 

Alexandre, o segundo código perderia a conexão com a planilha de database, não?

O erro da primeira letra é proveniente do evento.

Caso as ajudas dos mestres acima não sejam suficientes, tente usar o comando no evento AfterUpdate da combobox:

Sub CbCidade_AfterUpdate
Alerta:
MsgBox "Digite Cidade Válida , " & Chr(13) & Chr(13) & " OU" & Chr(13) & Chr(13) & "SELECIONE NA CAIXA", vbOKOnly + vbCritical + vbInformation, ".:: claudineicemig@hotmail.com ::."
CbCidade.Text = ""
cbcidade.setfocus
End Sub

Att.

Atenciosamente,

Arthur Andrade
Seja Cordial, trate os outros membros com respeito!

Caso sua dúvida tenha sido resolvida, clique no botão verde no canto direito superior da sua tela, marcando como [RESOLVIDO]
Agradeça quem te ajudou! Clique na mãozinha!

 
Postado : 03/04/2012 11:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tá ai Mauro;
as outras sugestoes Clear etc , não resolveram

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/04/2012 6:16 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

O Problema é o seguinte:
abrindo o arquivo clicando em Inserir_Planilhas , chama-se um form com 3 combobox (que buscam seus valores na plan oculta BdAlimentadores) e 2 textbox,

1- Nos Combobox quando se clica na "setinha" para abrir a lista de escolha não aparece valor algum

2- No combobox 1(POLO) a escolha é de : ALFENAS , ITAJUBA ,LAVRAS , POUSO ALEGRE, TRES CORAÇOES , VARGINHA ; que só aparecem na lista ,apos digitar uma primeira letra ,independente de ser inicial destas cidades , na segunda letra a ser digitada se não for da sequencia dos nomes da cidade mostra; mostra que esta errado atraves de msgbox.
3- No combobox 2 (Cidade) tambem não "carrega a lista" sem antes digitar algo ,mesmo se escolher uma letra que seja inicial da cidade ,dá msgbox de erro e a partir daqui a lista é "carregada"

4- No combobox 4 mesmo erro do combobox 3

Agora acho que tá no final deste raio de planilha.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/04/2012 11:51 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Claudinei,
O Formulario é iniciado sem "carregar" nenhum controle, motivo pelo qual não aparece nada ao clicar na setinha.E só há "comandos" nos eventos KeyPress.
vc deve ao iniciar o form, carregar os combos que precisa.
O Combo cidade deve ser "carregado" no evento onchange do combo Polo (já que varia de acordo com a escolha).

Exemplo:
Carregar o Combo Polo ao iniciar

Private Sub UserForm_Initialize()
Dim rnLista, rnCell As Range
Dim wkData As Worksheet
Set wkData = ThisWorkbook.Sheets("BDAlimentadores")
Set rnLista = wkData.Range("C3:C8")
    For Each rnCell In rnLista
        CbPOLO.AddItem rnCell.Value
    Next rnCell
  Set rnLista = wkData.Range("B1:B1")

For Each rnCell In rnLista
    CbCidade.AddItem rnCell.Value
 Next rnCell
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/04/2012 1:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Poderia por favor comentar o código ? Para que eu o entenda e consiga adapta-lo às minhas necessidades .
Por hora muito obrigado .

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 14/04/2012 5:33 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom, o codigo é parte do que vc tem em um de seus eventos de modificação das combos (e eu o utilizei como exemplo)mas vamos lá; veja se lhe auxilia:

Private Sub UserForm_Initialize()
'Definição e declaração de variaveis
Dim rnLista, rnCell As Range
Dim wkData As Worksheet
'Declara a planilha BDAlimentadores em uma variavel, para simplificar o acesso à mesma
    Set wkData = ThisWorkbook.Sheets("BDAlimentadores")
' "Nomeia" a range com que irá trabalhar
    Set rnLista = wkData.Range("C3:C8")
 'Inicia o loop para incluir os valores na range   no combo    Polo
         For Each rnCell In rnLista
                CbPOLO.AddItem rnCell.Value
        Next rnCell
' "Renomeia" a range utilizada
Set rnLista = wkData.Range("B1:B1")

'Loop para incluir os dados na combo Cicade
        For Each rnCell In rnLista
            CbCidade.AddItem rnCell.Value
        Next rnCell
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/04/2012 7:26 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

ok , acho que entendi o codigo,
nao consigo é fazer com que quando digito por exemplo a letra W ,que nao existe nem um dado iniciado com W , de erro , apague o W e fique "pronto para digitar novamente ,
1- se digitar W e der enter vai para a proxima combo sem dar erro
2- se digitar W duas vezes ou 2 outras letras quaisquer que não sejam iniciais do dado da combo ai dá o erro , porem apaga somente a segunda letra ,
usei:
NomeDaCombo.setfocus
NomeDaCombo.clear
CbCidade.SelStart = 0
NomeDaCombo.text = " "
mais nada apaga a primeira letra

Como resolver?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/04/2012 9:26 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Experimente utilizar o codigo no evento change do combo e não no Keypress.
Ficaria algo assim:

Private Sub cbpolo_change()
Dim rnLista, rnCell As Range
Dim wkData As Worksheet
Set wkData = ThisWorkbook.Sheets("BDAlimentadores")
Set rnLista = wkData.Range("C3:C8")
If Len(CbPOLO.Value) = 0 Then Exit Sub

Set Y = wkData.Range("C3:C65536").Find(CbPOLO.Value, LookAt:=xlWhole)
  If Not Y Is Nothing Then
    If CStr(UCase(CbPOLO.Value)) = CStr(UCase(Y.Cells)) Then
    
    Else
      GoTo Alerta
    End If
  Else
   GoTo Alerta
  End If
Exit Sub
Alerta:
  MsgBox "Polo Inválida ; " & Chr(13) & Chr(13) & "Digite Corretamente" & Chr(13) & Chr(13) & _
  "                   OU" & Chr(13) & Chr(13) & "SELECIONE NA CAIXA", vbOKOnly + vbCritical _
  + vbInformation, "::.ERRO DE DIGITAÇÃO.::"
   CbPOLO.Text = ""
   CbPOLO.SelStart = 0

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/04/2012 6:39 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Quase deu certo, Desculpem-me mas continuo aproveitando da boa vontade de todos
se digitar W e der enter vai para a proxima combo sem dar erro
2- se digitar W duas vezes ou 2 outras letras quaisquer que não sejam iniciais do dado da combo ai dá o erro , porem apaga somente a segunda letra ,
usei:
O problema que estava tendo de mudar de combo mesmo com dado errado , acabou.
O problema é que:
1 - Quando digito a primeira letra na CbPOLO, se existe o dado na combo , o cursor já muda automaticamente para a proxima combo ( ótimo ) O problema é que se houver 2 dados com as mesmas iniciais o cursor muda escolhendo por conta própria.
2 - Nas combos CbCidade e CbAlimentador , quando digito , mesmo existindo aquela inicial , aparece a msgbox de erro.

Por exemplo
1- abre a CbPOLO e digita L , verá que somente ao digitar L será escolhido Lavras ja vai pra txtDispositivo ; ÉRRADO pois no caso de haver mais de uma Polo com as mesmas iniciais daria errado
2- Na CbCidade digita "W" verá que aparecerá a Msgbox de erro , CERTO pois na polo LAVRAS não existe cidade começada com W
3- Na CbCidade digita "C" verá que aparecerá a Msgbox de erro ,ERRADO pois na polo LAVRAS existe 4 cidades começada com C sendo elas CAMPO BELO, CANA VERDE, CANDEIAS, CRISTAIS

P.S- Pensei em arrumar uma maneira de não deixar digitar e somente escolher nas combos o dado necessitado , mas o problema é que em alguns casos algumas combos vão ter mais de 100 dados ,abrir e procurar o dado escolhido vai ser um pouco trabalhoso.

Peço que quem for responder se não for muito trabalhoso ,comente o código ; para que eu entenda a lógica do código e faça as adaptações necessárias agora e futuramente , evitando assim de incomoda-los com perguntas que para muitos pode parecer idiota . Esclareço que os códigos constante neste arquivo não foram nenhum escrito por mim e sim adaptados .
Antecipadamente agradecido.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/04/2012 10:57 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alguem saberia?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/04/2012 12:53 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Sobrou só esse que não consegui resolver ;
O problema é que:
1 - Quando digito a primeira letra na CbPOLO, se existe o dado na combo , o cursor já muda automaticamente para a proxima combo ( ótimo ) O problema é que se houver 2 dados com as mesmas iniciais o cursor muda escolhendo por conta própria.

Por exemplo
1- abre a CbPOLO e digita L , verá que somente ao digitar L será escolhido Lavras ja vai pra txtDispositivo ; ÉRRADO pois no caso de haver mais de uma Polo com as mesmas iniciais daria errado

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/04/2012 8:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alguem saberia?

Claudinei, imagino que com a ancia de chegar ao resultado que espera, tenha postado a frase acima inocentemente, no meu ponto de ver eu a considero um pouco imprória, uma vez que não só neste Forum, mas na maioria o pessoal tem feito o possível e impossível para colaborar, todos com ideias e formas diferentes, e pelo que vejo foi o caso deste tópico, então se nenhuma das opções foram satisfatória, não é que não saibamos, mas sim até por falta de tempo de se lidar com a questão.
Peço a gentileza, de pelo menos não utilizar mais este tipo e citação, que com certeza, ficará sem respostas, e isto, serve para a maioria dos Foruns.

Voltando ao assunto deste Tópico, não testei nenhuma das opções citadas e não utilizei o seu exemplo, simplesmente fiz uma adaptação baseado em um post e exemplo anexado do JoséA no forum abaixo, trocando TextBox por ComboBox, veja se é isto o que quer, se for é só a daptar ao seu modelo, lembrando que dependendo das adaptações que for fazer, leevar em consideração as recomendações dos colegas quanto aos Eventos dos Controles.

Fonte
http://www.tomasvasquez.com.br/forum/vi ... f=17&t=638
TextBox Auto Completar...
Por JoséA

Adaptado para ComboBox - Mauro Coutinho

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/04/2012 7:31 pm
Página 1 / 2