Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rubens Vieira

Auto preenchimento no Excel

Recommended Posts

Pessoal,Meu primeiro post aqui prá encher o saco de vocês.Não sou programador e sim um usuário que fuça muito no excel...rs...Preciso de uma rotina que faça um auto preencimento de valores , baseados em uma lista existente, conforme se vá digitando os numeros na célula/form.Explico:Tenho a seguinte lista:214005299921400530062140053032214005305721400530732140053103214006004521400607382140061459214006154821400627062642422873264242299726424230152642432879à medida que preencho a celula/ou campo do formulário, imaginei uma rotina que vá sugerindo os próximos valores, por exemplo:digito 2, abre um popu com toda a listaacrescento o 1 (21) o popup exclui os valores que começam com 264.acrescento 4006 (214006) o popup mostra somente os cinco dados que correspondem a busca.Conto com a ajuda de vocês e perguntem caso eu não tenha me feito entender.obrigado,Rubens

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,Meu primeiro post aqui prá encher o saco de vocês.Não sou programador e sim um usuário que fuça muito no excel...rs...Preciso de uma rotina que faça um auto preencimento de valores , baseados em uma lista existente, conforme se vá digitando os numeros na célula/form.Explico:Tenho a seguinte lista:214005299921400530062140053032214005305721400530732140053103214006004521400607382140061459214006154821400627062642422873264242299726424230152642432879à medida que preencho a celula/ou campo do formulário, imaginei uma rotina que vá sugerindo os próximos valores, por exemplo:digito 2, abre um popu com toda a listaacrescento o 1 (21) o popup exclui os valores que começam com 264.acrescento 4006 (214006) o popup mostra somente os cinco dados que correspondem a busca.Conto com a ajuda de vocês e perguntem caso eu não tenha me feito entender.obrigado,Rubens

Rubens, eu só pergutnar uma coisa, você quer isso em excel ou no VB?Se for no vb, isso abaixo pode te ajudar: Opções de Busca rápida.________________________________________Vamos mostrar como criar uma janela de localização onde à medida que o usuário digita o nome a procurar ,o sistema se antecipe ao que ele esta escrevendo mostrando na tela o item digitado.Muito difícil !!!Siga o roteiro passo a passo: 1. Crie um novo formulário (form) , desenhe nele uma caixa de texto e, logo abaixo dela uma caixa de listagem (listview). 2. Adicione dois botões de comando, um Cancelar para encerrar o programa e outro OK para mostrar como se determina o valor do texto selecionado na caixa de listagem. 3. Código para o botão Cancelar4. Sub Cancelar_Click5. end6. End Sub7. Código para o botão OK8. Sub OK_Click9. msgbox "Você selecionou " + list1.text 10. End Sub11. Na rotina do evento Form_Load , use o comando AddItem para preencher a caixa de listagem com alguns nomes de cidades: 12. Sub Form_Load( )13. list1.AddItem "Salvador"14. list1.AddItem "Fortaleza"15. list1.AddItem "Recife"16. list1.AddItem "São Paulo"17. list1.AddItem "Rio de Janeiro"18. list1.AddItem "Natal"19. list1.AddItem "Vitória"20. list1.AddItem "Porto Alegre"21. list1.AddItem "Manaus"22. list1.AddItem "Porto Velho"23. list1.AddItem "Belém"24. End Sub25. No evento Text1_Change, digite a rotina de busca, ela entra em ação a cada caractere escrito e tenta localizar na caixa de listagem o item iniciado pelo conjunto de letras já digitado. 26. Sub Text1_Change( )27. Search$=UCase$(text1.text)28. Searchlen=len(Search$)29. If Searchlen then30. For i=0 to list1.ListCount-131. if Ucase$(Left$(List.List(i),Searchlen))=Search$ then32. List1.ListIndex=I33. Exit For34. End if35. Next36. Endif37. End Sub38. 39. 40. A localização do item coincidente e feito pelo laço For/Next que transfere a barra de seleção41. para o item correspondente(List1.ListIndex=I), saindo do loop com Exit For.42. 43. Pronto ! Agora Salve o seu projeto e teste-o. Que tal ? Simples, não ?Fonte:Revista Exame InformáticaAbraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claudio.Muito obrigado, é quase isso.A ideia é fazer um form mesmo, mas a lista vai estar na planilha do excel e vai ser editada periodicamente, portanto pode estar no código.Tem como fazer a busca da lista num range específico de células? O que mudaria no código?antecipadamente grato,Rubens

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é possivel utilizando o VBA no excel segue abaixo o codigo deve ser colocado no evento initialize do UserForm: Sheets("plan1").Select Dim i As Integer For i = 1 To 10 Dim conteudo conteudo = Cells(i, 1) ComboBox1.AddItem conteudo Nextqualque coisa deixe seu email para que eu possa enviar a xls de teste...jolienai@bol.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claudio.Muito obrigado, é quase isso.A ideia é fazer um form mesmo, mas a lista vai estar na planilha do excel e vai ser editada periodicamente, portanto pode estar no código.Tem como fazer a busca da lista num range específico de células? O que mudaria no código?antecipadamente grato,Rubens

Rubens, não manjo tanto dessa parte de conexão com excel.Para adicionar uma única linha do excel no listview consegui, seria assim:
Private Sub Form_Load()Dim xl As New Excel.ApplicationDim xlw As Excel.WorkbookSet xlw = xl.Workbooks.Open("C:\nomes.xls")List1.AddItem Range("a" & 1).FormulaR1C1LocalEnd Sub
Deve ter algum jeito de fazer um loop que consiga olhar, enquanto a célula não for vazia, vai adicionando. Mas isso não sei fazer porque não conheço as funções.Ah, para conectar com o excel, deve fazer referência a biblioteca microsot excel 11.0.Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

jolienai, muito obrigado pela força, meu e-mail é rvieirapda@aim.com, se puder enviar ficarei imensamente grato.Claudio, ídem.

não sei se serviria para você, mas uma planilia do excel pode ser salva no formato csv (separado por virgulas, que é reconhecido em qqer versão do excel) que o vb consegue ler tranquilamente como um arquivo qqer ".txt"e neste formato se ele salva o valor de cada linha em uma linha desse arquivo, dai seria somente o caso de passar esse dados para o programa no momento da busca.dessa forma ele salvaria por linha a posição do texto, tipo:1,2,3,,412,2,3,4,5seria o modo que estaria salvo um arquivo que tem 5 colunas onde a 4 coluna da primeira linha esta em branco e a primeira coluna da segunda linha é 12.dai com isso acredito que você consiga fazer o que o ou amigo falou aqui em cima.só não ponho os comandos de leitura de arquivo texto pq eu não lembro http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.