none
Uso de repetição do While RRS feed

  • Pergunta

  • Pessoal boa noite

    Tenho uma planilha "BD" que recebe valores, de outras 8 pastas de trabalho de usuarios diferentes, atraves de importação de dados externos, o formato desta planilha é o seguinte uso as colunas de A:V e deixo 500 linhas para receber valores de cada usuario, tipo a1:v500, recebe valores do usuario A; a501:v1000 recebe valores do usuario B, e assim por diante, minha necessidade é ter uma planilha que receba, todos estes valores da minha planilha "BD" pensei em usar Do While, quando encontrar celulas vazias pularia para o proximo conjunto de valores... caso alguem puder me ajudar ficarei muito grato.

    Até mais...

    quinta-feira, 17 de novembro de 2011 01:42

Respostas

Todas as Respostas

  • Você pode copiar todas as Pastas de Trabalho e, em seguida, executar uma macro que concatena todas as Planilhas de todas as Pastas de Trabalho: http://www.ambienteoffice.com.br/excel/concatenar_varias_pastas_de_trabalho/
    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    quinta-feira, 17 de novembro de 2011 13:06
    Moderador
  • Benzadeus, Boa noite;

     

    Muito bom seu exemplo, ja vi oportunidades para mim usando seu exemplo, mas na verdade, quando as planilhas são concaternadas, se existir algumas linhas vazias elas veêm junto, vou postar o que eu estava tentando de repente você pode me ajudar...

    Private Sub CommandButton1_Click()

    l = 1
    Do While (Plan2.Cells(l, 1) <> "")
    For c = 1 To 19
    Plan1.Cells(l, c) = Plan2.Cells(l, c)
    Next c
    Loop

    l = 501
    Do While (Plan2.Cells(l, 1) <> "")
    For c = 1 To 19
    Plan1.Cells(l, c) = Plan2.Cells(l, c)
    Next c
    Loop


    l = 1001
    Do While (Plan2.Cells(l, 1) <> "")
    For c = 1 To 22
    Plan1.Cells(l, c) = Plan2.Cells(l, c)
    Next c
    Loop

     

    End Sub

    e assim por diante... Porem quando eu rodo este codigo ta travando a planilha toda...

    Não repara não... ainda sou bem inexperiente...

    Caso possa me ajudar ficarei grato!

    sexta-feira, 18 de novembro de 2011 01:35
  • Ao invés de usar l = 501, por exemplo, use algo como:

    l = Plan1.Cells(Plan1.Rows.Count, "A").End(xlUp).Row + 1

    Mais detalhes em:

    http://www.ambienteoffice.com.br/excel/obter_primeira_e_ultima_celula_de_um_intervalo/


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    sexta-feira, 18 de novembro de 2011 02:08
    Moderador