1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ordenar listas em Exel

Discussão em 'Programação' iniciada por RicardoSilva, 20 de Abril de 2005. (Respostas: 4; Visualizações: 904)

  1. RicardoSilva

    RicardoSilva Power Member

    Ois ppls!
    Agradecia mto se me podessem ajudar... é assim..tenho numa folha de Exel, 6 colunas (tipo base de dados) e gostaria de colocar junto do titulo de cada, 1 botão para ordenar de A-Z essa as linhas dessa coluna, mudando as outras como é obvio!!
    mto obg e espero k me possão ajudar!! :003:
     
  2. DisturbedGod

    DisturbedGod 1st Folding then Sex

    Boas,

    Penso que seja isto que queiras...

    Não sei se sabes trabalhar com macros e vba, mas penso que não haja problema...

    Cria os teus command buttons todos na tua folha.
    Seguida, vais a tools -> macro -> visual basic editor. Dentro do visual basic editor fazes, insert -> module, dentro do module passa este
    Código principal:

    Sub Macro1()
    Range("F2:I6").Sort Key1:=Range("F2"), Order1:=xlAscending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    End Sub


    No range("F2:I6") muda para as colunas que queres ordenar.
    Onde diz range("F2") muda para a 1ª coluna que queres que seja feito o ordenamento das tabelas. Usei as células de F2 a I6 e neste caso a primeira coluna será F2.

    A seguir volta para a tua folha e: botão do lado direito do rato no botão que queres utilizar -> view code e metes este
    Código para chamar a macro:

    Private Sub CommandButton1_Click()
    Call Macro1
    End Sub


    Depois para o segundo botão é só fazeres um copy do código Macro1, mudares o nome para Macro2, por exemplo.
    Podes usar o mesmo module para todos os códigos principais.
    Mudares tambem o range("F2") para a 2ª coluna, ou neste caso iria ficar como range("g2"), visto ser a segunda coluna.
    E mudares tambem o código do 2º botão para Call Macro2 por exemplo.

    Depois para veres os botões a funcionar, tens que sair do modo de desenho.
    É só carregar num que tenha um esquadro, uma régua e um lápis.
    Se não encontrares, vai a View -> Toolbars -> Control Toolbox. Isto tambem serve para o caso de não saberes como desenhares os botões.

    Espero ter ajudado, fica bem :)
     
  3. RicardoSilva

    RicardoSilva Power Member

    Ois desc lá amigo... mas ele tá a dar-me erro nesta parte do código.... "DataOption1:=xlSortNormal" o erro é o seguinte: "Name argument not found" eu esquecime de dizer que estou a usar o Excel 97 ... já agr...eu não percebo assim mto de vb mas dá-me a sensação que com este código ele só vai ordenar a coluna especificada não ordenando as outras... mas sekalhar estou errado.. só digo isto pk posso não ter sido mto especifico no meu post... de qualquer maneira mto obg!! ;)
     
    Última edição: 21 de Abril de 2005
  4. DisturbedGod

    DisturbedGod 1st Folding then Sex

    Boas,

    Experimenta este código, possivelmente já dá. É que estou a fazer isto no excel 2003 e podem acontecer estes erros.

    Sub Macro1()

    Range("F2:I6").Sort Key1:=Range("f2"), Order1:=xlAscending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom

    End Sub

    Se não der, teremos que fazer uma macro e depois aproveitar o código.

    Ao fazermos o Range("F2:I6").Sort estamos a dizer para ele escolher este range todo de células, do F2, F3, F4, F5, F6 a I2, I3, I4, I5, I6 . Depois com a parte do código Range("f2") . Estamos a dizer que vamos utilizar a coluna F, para ordenar as colunas e rows por ordem ascendente.

    Por exemplo, temos:

    célula F2 = Pedro
    célula F3 = Maria

    célula G2 = João
    célula G3 = Manuel

    Ao fazermos a ordenação ascendente na coluna F ele irá por as colunas assim

    célula F2 = Maria
    célula F3 = Pedro

    célula G2 = Manuel
    célula G3 = João

    Penso que seja isto que queiras...
    Fica bem :)
     
  5. RicardoSilva

    RicardoSilva Power Member

    exactamente!!! nem mais... era mesmo essa a ideia.... mto obrigado!! enquanto esperava uma resposta fui tentando fazer sózinho...acabei por apagar este bucado que era onde estava a dar erro : "DataOption1:=xlSortNormal" (inteligente, não? :P) e dp começei a ver que quando carregava num botão os botões vinham parar ao final da lista...lol mas d ***** maneira ele estava a ordenar correctamente!! (optimo!!) foi só meter a ordenar só apartir de "A2"!! e já está a bombar!! agr surgiu-me outro prob...que é no caso d a lista aumentar... ele só vai fazer por exemplo até á 6 linha né?? (para despachar fix ("A2:E18000")) :P e Resultou!!
     

Partilhar esta Página