1° Super desafio do ExcelMax® aos usuários do Excel | Excelmax Soluções e Controles

quinta-feira, maio 05, 2011

1° Super desafio do ExcelMax® aos usuários do Excel

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 & ","
            lin = lin + 1
        Loop
    Range("B1") = txt
    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é + ...


 

9 comentários:

  1. 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.
    Por 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.

    ResponderExcluir
  2. Eu sempre digo que no Excel as possibilidades são muitas. Obrigado por participar com seu comentário e pela sugestão.

    Ivair.

    ResponderExcluir
  3. Ivair, legal esse seu desafio.

    Realmente 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

    ResponderExcluir
  4. 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.

    Ficamos no aguardo de novos desafios. Vou ficar atento para tentar resolver os próximos.

    Solano S.

    ResponderExcluir
  5. Resolvi sair do anonimato...rsrs...em geral fazem piadinhas com mulheres...mas adoro desafios .. aguardo o proximo..

    Atenciosamente,

    ResponderExcluir
  6. 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.
    Ivair.

    ResponderExcluir
  7. 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.

    Abraço.
    Solano S.

    ResponderExcluir
  8. 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,

    Abraços.

    Prof. Baldini
    Excel Solutions

    ResponderExcluir
  9. 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.

    A 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

    ResponderExcluir

Seja um participante desta comunidade !
Deixe aqui seu comentário e/ou sugestão.
Obrigado !

Ivair Claudio Ferrari