Jump to content

[Resolvido] Dúvida Excel - Ordenação de Células com Fórmulas


alexvaz
 Share

Recommended Posts

Boa tarde. Tenho uma folha de cálculo em excel para um torneio de cartas. Tem as jornadas e os resultados, até aí tudo bem. Depois tenho uma tabela de classificaçãoque tem as equipas e os pontos, que é apenas a SOMA das células que dizem erspeito a resultados dessa equipa. O problema é ordenar essa tabela pelos pontos. O que acontece é que a ordem da coluna dos pontos é alterada e consequentemente as formulas também.

Alguém sabe como posso fazer com que as formulas se mantenham mesmo passando para outra linah ou outra forma de resolver o problema?

Obrigado

Link to comment
Share on other sites

Boas,

Não sei se percebi bem a tua dúvida, mas se o problema é a alteração das fórmulas quando as copias para outra célula, podes resolver isso "trancando" as referências que estão presentes na fórmula. Isto faz-se colocando um $ antes da letra e do número que fazem parte da referência.

Exemplo:

Se tiveres na célula A1 a fórmula " = A2*2 " e a copiares para a célula A2, a fórmula vai ser colada automaticamente como " =A3*2 ", pois a referência é relativa - depende da sua posição.

Por outro lado, se alterares a fórmula para " = $A$2*2 ", ela mantém-se igual mesmo que a copies para qualquer célula da folha - é uma referência absoluta.

Link to comment
Share on other sites

Já agora uma sugestão para o Excel ordenar a tabela automaticamente quando muda um valor na folha

No Editor de Visual Basic selecciona o evento Workbook_SheetChange

e coloca este código


Range("A1:B5").Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

A única coisa que tens de mudar é o range e colocar as células onde está a tua tabela de pontos

por exemplo a tua tabela de pontos está de B2 a d4 :  Range("B2:D4").Select

nesta parte do código  Selection.Sort Key1:=Range("B2"),  tens de escolher a célula onde começa a coluna dos pontos

Atenção que primeiro tens de colocar as referências absolutas nas fórmulas como já foi dito

encerra o livro volta a abrir autorizando macros e já está a tabela actualiza-se automáticamente

Link to comment
Share on other sites

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Range("A1:c5").Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlDescending, Key2:=Range("C2") _
        , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
End Sub

Assim alinha primeiro por pontos e depois por jogos.

O Excel gera código VBA auitomáticamente através de gravação de Macros. Se quiseres ver o código para determinada acção: Menu Ferramentas - Macros Gravar nova Macro- fazes a acção ou acções que queres e terminas a gravação da Macro.

Vais ao editor Visual Basic e está lá uma pasta Module com o código gerado, depois basta copiar esse código para o evento que queres, seja quando abres o livro, quando ele é alterado ou podes associar esse comando a um botão ou a outro objecto qualquer. A maneira mais facil de aprender VBA (talvez não a mais correcta) é assim. 😁

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.