none
Macro para classificar dados no excel RRS feed

  • Pergunta

  • Tenho uma planilha para controle de contas correntes.

    A planilha tem as colunas Data, Descrição, Entrada, Saida, Valor e Saldo.

    A planilha é protegida para evitar que o usuário apague algumas fórmulas

    Eventualmente o usuário lança informações com datas fora de ordem.

    Preciso de uma macro que:

    1) Desbloqueie a planilha;

    2) Selecione os dados só as linhas que tem dados (não quero as linhas vazias no começo)

    3) Classifique os dados por ordem de data e como segunda classificação por ordem de descrição

    4) Bloqueie a planilha;

    5) Posicione o cursor na primeira linha em branco após os dados.

    É possível?

    sexta-feira, 5 de setembro de 2014 18:48

Todas as Respostas

  • Tenho uma planilha para controle de contas correntes.

    A planilha tem as colunas Data, Descrição, Entrada, Saida e Saldo.

    A planilha é protegida para evitar que o usuário apague algumas fórmulas

    Eventualmente o usuário lança informações com datas fora de ordem.

    Preciso de uma macro que:

    1) Desbloqueie a planilha;

    2) Selecione os dados só as linhas que tem dados (não quero as linhas vazias no começo)

    3) Classifique os dados por ordem de data e como segunda classificação por ordem de descrição

    4) Bloqueie a planilha;

    5) Posicione o cursor na primeira linha em branco após os dados.

    É possível?


    sexta-feira, 5 de setembro de 2014 19:05
  • Olá Cleber!

    Este procedimento você pode criar através do botão "Gravar Macro" na guia desenvolvedor.

    Clique no botão e faça exatamente tudo o que você descreveu até o item 4, após terminar clique em "Parar gravação".

    O único ponto que não ficará gravado é a senha do bloqueio, caso você coloque uma. Se você desejar por senha, terá que editar o código depois de pronto, caso faça o bloqueio da planilha sem senha, basta usar a macro gravada.

    Para selecionar a primeira célula vazia da lista, você pode utilizar o código abaixo no final da sua macro:

        Range("A" & Range("A:A").Count).Select
        Selection.End(xlUp).Select
        ActiveCell.Offset(1, 0).Range("A1").Select

    Se utiliza senha, terá que alterar o código, ficando neste formato:

    Sub Nome_da_Macro()
    
        ActiveSheet.Protect "Sua Senha"
        
        'Código aqui no meio
        
        Range("A" & Range("A:A").Count).Select
        Selection.End(xlUp).Select
        ActiveCell.Offset(1, 0).Range("A1").Select
    
        ActiveSheet.Unprotect "Sua Senha"
    
    End Sub

    Espero que ajude!

    ABraços!


    Rafael Kamimura

    • Sugerido como Resposta Rafael Kamimura domingo, 5 de outubro de 2014 00:42
    domingo, 5 de outubro de 2014 00:42