1° Super desafio do ExcelMax® aos usuários do Excel
Tenho uma planilha com 5.000 nomes na coluna 'A'. Como colocar estes 5.000 nomes na célula 'B1' separados por vírgula?
A resposta veio de meu amigo Marcos Fávero.
Ele desenvolveu um pequeno código (macro) que percorre as 5.000 linhas da coluna 'A', que possui 5.000 nomes de pessoas, e os coloca na célula 'B1' separados por vírgula: segue abaixo, como ficou o código:
---------------------------------------------------------------
Sub desafio()
lin = 1
Do Until Cells(lin, 1) = ""
txt = txt & Cells(lin, 1).Value & ","
txt = txt & Cells(lin, 1).Value & ","
lin = lin + 1
Loop
Loop
Range("B1") = txt
MsgBox "Encontrado " & lin - 1 & " registros de nomes"
MsgBox "Encontrado " & lin - 1 & " registros de nomes"
End Sub
---------------------------------------------------------------
Se desejarem testar o código, é só copiá-lo em um módulo do excel e rodar. Lembrando que é preciso colocar alguns nomes na coluna 'A' da planilha ativa. (não é necessário colocar 5.000 nomes para testar (basta colocar alguns nomes)).
Parabéns Marcos Fávero!!! Grande amigo, colaborador e TOP 10 número 1 do ExcelMax® (neste momento).
Colocarei o 2° desafio em alguns dias para que, aqueles que desejarem, possam participar.
Se desejarem enviar sugestões para os próximos desafios, será bem vindo.
Até + ...
Para as pessoas que gostam de dar "um jeitinho", e nao são familiarizadas com programação. Pode ser feito de forma paleativa e com raciocinio.
ResponderExcluirPor ememplo;
1-) Cria-se uma coluna C com a seguinte formula: "A*"&";".
2-) Depois uma coluna "D" concatenando a linha atual com a de cima.
Dessa maneira ao chegar na linha 5.000 também se obterá a lista completa em uma celula apenas.
Att.
Eu sempre digo que no Excel as possibilidades são muitas. Obrigado por participar com seu comentário e pela sugestão.
ResponderExcluirIvair.
Ivair, legal esse seu desafio.
ResponderExcluirRealmente como o Ivair mencionou, tem várias formas de fazer....graças á flexibilidade do nosso grande amigo o Sr. Excel....
Abços e até o próximo...hehe
MF
Parabéns ao professor Ivair pela iniciativa. Gostei do desafio. Parabéns ao colega Marcos pela resposta. Também, parabéns a sugestão do nosso amigo anônimo.
ResponderExcluirFicamos no aguardo de novos desafios. Vou ficar atento para tentar resolver os próximos.
Solano S.
Resolvi sair do anonimato...rsrs...em geral fazem piadinhas com mulheres...mas adoro desafios .. aguardo o proximo..
ResponderExcluirAtenciosamente,
Olá Karina. Obrigado pela participação. Aqui todos são bem vindos! Fique atenta aos novos desafios então. Repasse o endereço a seus amigos também. Se desejar enviar uma sugestão, para um desafio aqui no Excelmax®, será bem vindo.
ResponderExcluirIvair.
Olá Ivair! Tentei resolver o 2º desafio e não tive êxito. Será que alguém vai tentar ou então, conto com sua resposta.
ResponderExcluirAbraço.
Solano S.
Olá Ivair como vai, esse seu algoritmo deveria sempre contar o ultimo resultado e começar de baixo para cima e não de cima para baixo,
ResponderExcluirAbraços.
Prof. Baldini
Excel Solutions
Baldini: Concordo contigo que poderia ser feita uma contagem do último resultado encontrado na coluna com os dados. Porém com o algorítimo postado também funciona, desde que não haja nenhuma linha em branco. Com sua sugestão o código fica melhor.
ResponderExcluirA variável abaixo pode ser utilizada para fazer conforme sua sugestão:
ultimaLinha = Sheets("Plan1").Cells(Sheets("Plan1").Rows.Count, "a").End(xlUp).Row.
Ao Baldini, Obrigado pela participação!!!
Ivair