Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
xandymarinho

Excel RESOLVIDO Macro Calcular e Classificar

Recommended Posts

Olá galera, eu novamente aqui para mais dúvidas.

 

Meu problema é o seguinte, estou criando uma macro para otimizar um trabalho aqui, pois vou ter muitos cálculos para se repetirem iguais ao do meu exemplo.

Tenho essa planilha em anexo com produtos e seus valores de venda, preciso calcular o % que cada produto representa do total e no final classificar do maior valor para o menor

 

Resumindo, os cálculos e demais formatações consegui fazer na macro. O problema é quando vou aplicar a macro em  outras células (com mesma quantidade de linhas), pois como no cálculo o valor que é dividido é fixo, sendo assim ele leva essa fixação da célula para as outras.  

 

Como fazer pra conseguir usar essa macro em outras células sem fixar a célula ?

image.png.83e122f6476fb776f6583e0ad776ae13.png

 

Sub Macro13()
'
' Macro13 Macro
'

'
    ActiveCell.FormulaR1C1 = "=RC[-3]/R7C7"
    ActiveCell.Select
    Selection.AutoFill Destination:=ActiveCell.Range("A1:A4")
    ActiveCell.Range("A1:A4").Select
    ActiveCell.Offset(4, -4).Range("A1:E1").Select
    Selection.Font.Bold = True
    ActiveCell.Offset(0, 4).Range("A1").Select
    Selection.Style = "Percent"
    ActiveCell.Offset(-4, 0).Range("A1").Select
    Selection.End(xlToLeft).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("Planilha1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Planilha1").Sort.SortFields.Add Key:=ActiveCell. _
        Offset(0, 9).Range("A1:A4"), SortOn:=xlSortOnValues, Order:=xlDescending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Planilha1").Sort
        .SetRange ActiveCell.Range("A1:J4")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveCell.Offset(4, 9).Range("A1").Select
End Sub

 

Pasta7.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola xandymarinho

 

Não entendi o que você precisa.

No Range A3:J6 você tem 4 produtos e quer fazer os cálculos neste range?

Depois o Range A9:J12 terão os mesmos cálculos?

Os demais Ranges (se tiver) serão tb com 4 linhas?

 

Márcio

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 minutos atrás, Márcio Rodrigues disse:

Ola xandymarinho

 

Não entendi o que você precisa.

No Range A3:J6 você tem 4 produtos e quer fazer os cálculos neste range?

Depois o Range A9:J12 terão os mesmos cálculos?

Os demais Ranges (se tiver) serão tb com 4 linhas?

 

Márcio

 

 

 Isso mesmo @Márcio Rodrigues, o problema é que no ´calculo de produtos diferentes, todos são divididos pelo valor total, ou seja, travo essa célula e quando vou aplicar a macro em outro, ela trás a célula gravado do outro cálculo, tentei fazer sem travar a célula, mas quando classifico sai tudo da ordem

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, Márcio Rodrigues disse:

Ola xandymarinho

 

Fiz um código que solicita a célula inicial do Range.

Veja se é por aí...

 

Té +

Márcio

Pasta7 v1.rar

Oi Márcio, obrigado pela ajuda, mas abri seu arquivo aqui e qd clico na macro ele pede pra confirmar a célula inicial e qd clico em SIM ele dá erro e manda depurar.

 

O Código que eu tinha feito está assim (ARQUIVO EM ANEXO)

Pasta7.rar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola xandymarinho

 

Tente indicar a célula A3 e rode.

você tem que indicar a 1ª célula do Range A3 ou A9 no seu exemplo.

 

Márcio

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)
13 minutos atrás, Márcio Rodrigues disse:

Ola xandymarinho

 

Tente indicar a célula A3 e rode.

você tem que indicar a 1ª célula do Range A3 ou A9 no seu exemplo.

 

Márcio

 

 

Ahh entendi, aqui no exemplo funcionou :), vou tentar aplicar aqui na minha tabela, que é maior que o exemplo que te mandei, com mais colunas.

 

Só não aparece a fórmula na barra de fórmulas né ? aparece o valor direto, assim:

image.png.e34806310a35d8590425fceeda733e94.png

 

 

Só uma dúvida, porque tenho que clicar no inicio do Range pra ele calcular, é pra reconhecer onde tá os valores daquela célula ?

 

adicionado 8 minutos depois

Não consegui fazer funcionar na minha tabela, acho que por ter mais colunas, to mandando em anexo o arquivo original só que com menos linhas e a mesma qtd de colunas pra você ver. (arquivo original tem 16 mil linhas)

Analise Mix_AMOSTRA.rar

Editado por xandymarinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola xandymarinho

 

1 - você precisa que apareça a fórmula?

9 minutos atrás, xandymarinho disse:

Só não aparece a fórmula na barra de fórmulas né ? aparece o valor direto, assim

 

2 - Eu não sei onde você vai criar a range, então tenho que indicar o primeiro endereço.

9 minutos atrás, xandymarinho disse:

Só uma dúvida, porque tenho que clicar no inicio do Range pra ele calcular, é pra reconhecer onde tá os valores daquela célula ?

4 horas atrás, xandymarinho disse:

Como fazer pra conseguir usar essa macro em outras células sem fixar a célula ?

 

Qualquer dúvida, manda aí...

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)
7 minutos atrás, Márcio Rodrigues disse:

Ola xandymarinho

 

1 - você precisa que apareça a fórmula?

 

2 - Eu não sei onde você vai criar a range, então tenho que indicar o primeiro endereço.

 

Qualquer dúvida, manda aí...

 

A fórmula aparecer não é primordial, mas não consegui fazer funcionar na minha tabela, não entendi muito bem o que é range...rsss

 

Esse modelo que você fez é fixo pra cálculo de 4 linhas ? depois de pronto quero adaptar pra outros tamanhos de cálculos.

 

você viu o arquivo que mandei no post anterior ?

 

Sei que estou enchendo seu saco, mas isso vai quebrar um galhao pra mim :thumbsup:

Editado por xandymarinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola xandymarinho

 

Com o seu modelo Analise Mix_AMOSTRA.rar ficou mais fácil de entender, mas mais difícil de fazer (rs).

Range é uma seleção de células, por exemplo de B82 até AG96 é um Range de Bebidas Importadas de 08 anos (está parte é a melhor).

Vou ver se dá pra fazer um código para este modelo.

Dúvidas: você vai rodar a macro em cada Range ou pode rodar tudo de uma vez?

Todos os Ranges (olha ele aqui de novo) vão ter de uma até n linhas ai pula duas linhas e começa o outro Range (cara chato este Range)?

Vai ter que classificar até a coluna AG?

 

That's all folks!

 

Márcio

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 minutos atrás, Márcio Rodrigues disse:

Ola xandymarinho

 

Com o seu modelo Analise Mix_AMOSTRA.rar ficou mais fácil de entender, mas mais difícil de fazer (rs).

Range é uma seleção de células, por exemplo de B82 até AG96 é um Range de Bebidas Importadas de 08 anos (está parte é a melhor).

Vou ver se dá pra fazer um código para este modelo.

Dúvidas: você vai rodar a macro em cada Range ou pode rodar tudo de uma vez?

Citação

Todos os Ranges (olha ele aqui de novo) vão ter de uma até n linhas ai pula duas linhas e começa o outro Range (cara chato este Range)?

Vai ter que classificar até a coluna AG?

 

That's all folks!

 

Márcio

 

ahhh agora entendi o que é range,....rssss

 

Então, vou rodar a macro em cada range, porque são muitas e tenho que ir analisando uma a uma, por isso queria algo que facilitasse os outros processos.

 

A Classificação vai até AE

 

Citação

Todos os Ranges (olha ele aqui de novo) vão ter de uma até n linhas ai pula duas linhas e começa o outro Range (cara chato este Range)?

Isso, de 1 a n linhas e pula só uma linha para o começo do outro

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)
59 minutos atrás, Márcio Rodrigues disse:

Ola xandymarinho

 

Alterei o código.

Inclui um teste para saber se esta no começo do range.

Teste e veja se é por ai..

 

Té +

Márcio

Analise Mix_AMOSTRA v1.rar

 

 

Carammmmmmmba cara, você fez mágica, salvou minha vida, tá perfeito !!!! :aplausos:

 

Pra você ter uma ideia, nesse meu arquivo eu teria que fazer manualmente esse cálculo e a classificação 1.735 vezes

 

Muito obrigado mesmo !!!!!

Editado por xandymarinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×