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

segunda-feira, junho 20, 2011

Sugestão II - 1° Super desafio do ExcelMax® aos usuários do Excel

Na postagem: 1° Super desafio do ExcelMax® aos usuários do Excelfoi lançada a seguinte pergunta:
  • Tenho uma planilha com 5.000 nomes na coluna 'A'. Como colocar estes 5.000 nomes na célula 'B1' separados por vírgula?



Como resposta foi postado o seguinte algorítmo:

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

Este algoritmo (macro) funciona bem desde que, não haja nenhuma linha em branco em toda a coluna que contenha os nomes.
Para que solucionar isto, com sugestão de nosso amigo Prof. Baldini - Excel Solutions, segue algorítmo:

Utilizando a instrução Do...Loop
    ---------------------------------------------------------------
    Sub desafio2()
    lin = 1
    ultLinha  = Sheets("Plan1").Cells(Sheets("Plan1").Rows.Count, "a").End(xlUp).Row
        Do Until lin = ultLinha
            If Cells(lin, 1).Value <> "" Then
                txt = txt & Cells(lin, 1).Value & ","
            End If
            lin = lin + 1
        Loop
    Range("B1") = txt
    MsgBox "Encontrado " & lin - 1 & " registros de nomes"
    End Sub
    ---------------------------------------------------------------

Ou ainda, utilizando a instrução For ... Next
    ---------------------------------------------------------------
    Sub desafio3()
    ultLinha = Sheets("Plan1").Cells(Sheets("Plan1").Rows.Count, "a").End(xlUp).Row
        For i = 1 To ultLinha
            If Cells(i, 1).Value <> "" Then
                txt = txt & Cells(i, 1).Value & ","
            End If
        Next
    Range("B1") = txt
    MsgBox "Encontrado " & lin - 1 & " registros de nomes"
    End Sub
    ---------------------------------------------------------------

Mais uma vez, obrigado ao Prof. Baldini - Excel Solutions, pela sugestão.
Até a próxima ...
 
 

Um comentário:

  1. Cheguei há pouco tempo e tenho visto muitos videos, coisas interessantes. Muito bom mesmo, tem me ajudado muito. Parabéns

    ResponderExcluir

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

Ivair Claudio Ferrari