Ir ao conteúdo
  • Cadastre-se

vínculo em forma de resumo


CarlosMario

Posts recomendados

Eu estou trabalhando em uma planilha. Na primeira planilha, tenho uma tabela com 4 colunas x 30 linhas. preciso vincular uma segunda planilha, onde apareçam apenas as linhas da primeira planilha em que haja conteúdo, ou seja, que tenha pelo menos uma das células com valor diferente de zero. a segunda planilha seria um resumo da primeira. ocorre que a primeira planilha será preenchida aleatoriamente, ou seja, pode ser que tenha conteúdo na primeira linha, na quarta, na sétima, na oitava.... e ficará com algumas linhas sem valores ( no caso, segunda, terceira, quinta, sexta,...). estou precisando muito terminar meu projeto. [email protected]

Link para o comentário
Compartilhar em outros sites

Isso mesmo, colega. Na segunda planilha, terei uma outra planílha 30x4 (só para esclarecer, é importante salientar que na segunda planilha, preciso que somente as n primeiras linhas sejam preenchidas, ou seja, se na primeira planilha eu tiver 10 linhas com valores maiores que zero, na segunda as dez primeiras linhas serão preenchidas. Obrigado

Link para o comentário
Compartilhar em outros sites

Márcio, obrigado pela atenção, mas da forma que você me passou eu teria, na segunda planilha, uma cópia da primeira. o que eu preciso é que a segunda seja um resumo, ou seja, na primeira planilha eu terei 30 linhas e na segunda eu teria tantas linhas quantas fossem as com valores positivos na primeira. alguém me ajude, por favor...

Link para o comentário
Compartilhar em outros sites

Carlos:

Para isso será preciso uma macro conforme abaixo:

Toda vez que houver valor maior que zero na matriz de Plan1 e criado uma nova linha na Plan2.

Fiz uma tabela 30x4 em Plan1 com valores maiores que zero em A2, B3, C3, C23 e D24.

Após executar a Macro o resultado foi valores em A1, A2, A3, A4 e A5.

Sub LerMatriz30x4()

' LerMatriz30x4 Macro

' Macro gravada em 04/06/05 por Márcio Rodrigues

Dim ContaCelulas As Integer

ContaCelulas = 1

For Each MaiorZero In Worksheets("Plan1").Range("A1:D30")

If MaiorZero.Value > 0 Then

Worksheets("Plan2").Range("A" & ContaCelulas) = MaiorZero.Value

ContaCelulas = ContaCelulas + 1

End If

Next MaiorZero

MsgBox ("Fim")

End Sub

Acho que é isso...

Link para o comentário
Compartilhar em outros sites

Márcio,

Muito obrigado pela ajuda. Deu para perceber que você é realmente fera no excel. Com a sua ajuda, já estou quase conseguindo resolver meu problema. A macro que você criou, está bem próxima da minha solução. O meu problema é que preciso que seja transferida toda a linha da planilha 1 para a planilha 2, quanto uma das células for maior que 0. Na planilha 1,se A1 ou B1 ou C1 ou D1 for maior que zero, os valores serã transferidos para A1, B1, C1 e D1 na planilha 2, e assim por diante. Por favor, me dê esta força. Muito obrigado mesmo.

Link para o comentário
Compartilhar em outros sites

Fiquei tão entusiasmado com a macro passado pelo márcio, que sinto que falta pouco para eu terminar meu projeto, que diga-se de passagem, é um projeto muito importante para mim.

Vou tentar explicar mais detalhadamente o que eu preciso: na planilha 1, quando a soma das quatro céulas de uma linha for maior que 0 (ex: A1+b1+c1+d1>0) então toda a linha será transferida para a planilha 2 e assim por diante. preciso transferir todas as linhas que tenham algum valor positido da planilha 1 para a planilha 2. Obrigado

Link para o comentário
Compartilhar em outros sites

Carlos:

A solução mais pratica seria usar a coluna E da plan1 e fazer a soma, apos isto usar a macro para ler somente a coluna E conforme abaixo;

Sub LerMatriz30x4()

' LerMatriz30x4 Macro

' Macro gravada em 04/06/05 por Márcio Rodrigues

Dim ContaCelulas As Integer

ContaCelulas = 1

For Each MaiorZero In Worksheets("Plan1").Range("E1:E30")

If MaiorZero.Value > 0 Then

Worksheets("Plan2").Range("A" & ContaCelulas) = MaiorZero.Value

ContaCelulas = ContaCelulas + 1

End If

Next MaiorZero

MsgBox ("Fim")

End Sub

Ou fazer assim, que é pouco mais complicado:

Sub LerMatriz30x4_V2()

QtdeLinhas = 30

ContaCelulas = 1

For i = 1 To QtdeLinhas

For x = 1 To 4

Worksheets("Plan1").Activate

ValorCelula = Range(Cells(i, 1), Cells(i, 4)).Value

If ValorCelula(1, x) = Empty Then

Else

SomaValor = ValorCelula(1, x) + SomaValor

End If

Next x

If SomaValor > 0 Then

Worksheets("Plan2").Range("A" & ContaCelulas) = SomaValor

ContaCelulas = ContaCelulas + 1

End If

SomaValor = 0

x = 0

Next i

End Sub

Acho que é isso...

Link para o comentário
Compartilhar em outros sites

Grande Márcio,

Inicialmente, gostaria de te agradecer pela grande ajuda. você é muito conhecedor do excel. Parabéns. As macros que me enviou funcionaram maravilhosamente bem, para se adequar 100% às minhas necessidades, te peço mais uma dica. Como faço para que além dos dados a serem lançados na planilha 2 (seguindo as suas macros), preciso que não só seja preenchido uma coluna, preciso que seja transferida toda a linha, ou seja, os conteúdos de A, B, C e D. Quando a soma for maior que zero, toda a linha deve ser transferida. Exemplo

Planilha 1

A B C D E(SOMA)

0 1 0 0 1

0 0 0 0 0

2 2 0 0 4

0 0 0 0 0

0 0 0 0 0

4 4 0 2 10

Planilha 2 (resultado a ser obtido)

A B C D E(SOMA)

0 1 0 0 1

2 2 0 0 4

4 4 0 2 10

Observe que quando a soma foi maior que zero, foram transferidos todos os valores para a planilha 2.

Muito obrigado

Link para o comentário
Compartilhar em outros sites

Olá Carlos:

Com exemplo ficou mais claro, porém mais complicado de resolver...

Não usei a coluna de soma nesta macro...

Vê se dá certo...

Sub LerMatriz30x4_V4()

' LerMatriz30x4_V4 Macro

' Macro gravada em 06/06/05 por Márcio Rodrigues

QtdeLinhas = 30

ContadorLinhas = 1

MatrizLetras = Array("A", "B", "C", "D")

For i = 1 To QtdeLinhas

For x = 1 To 4

Worksheets("Plan1").Activate

ValorCelula = Range(Cells(i, 1), Cells(i, 4)).Value

If ValorCelula(1, x) = Empty Then

Else

For z = 1 To 4

Worksheets("Plan2").Range(MatrizLetras(z - 1) & ContadorLinhas).Value = Worksheets("Plan1").Range(MatrizLetras(z - 1) & i).Value

Next z

ContadorLinhas = ContadorLinhas + 1

Exit For

End If

Next x

x = 0

Next i

End Sub

Acho que é isso...

Link para o comentário
Compartilhar em outros sites

Márcio,

Agora você pegou pesado: resolveu todo o meu problema. Parabéns. Como é bom contar com pessoas tão prestativas como você. Muito obrigado mesmo. você é muito fera. onde eu consigo estudar excel e suas macros para um dia ficar fera como você? parabéns!!! um abraço. Eu nunca encontrei um curso ou apostila com conteúdo avançado de macros. Valeu

Link para o comentário
Compartilhar em outros sites

Márcio, sem querer abusar...rs.....(desculpa mesmo)....

Uma das colunas, ou melhor, a coluna D, na verdade não possui conteúdo numérico, ela tem um conteúdo em forma de texto. O que preciso alterar a macro?

A B C D E(SOMA)

0 1 0 CIVEL 1

0 0 0 CRIME 0

2 2 0 FAMIL 4

0 0 0 SUCES 0

0 0 0 REGIS 0

4 4 0 TRIBU 8

Planilha 2 (resultado a ser obtido)

A B C D E(SOMA)

0 1 0 CIVEL 1

2 2 0 FAMIL 4

4 4 0 TRIBU 8

Agora é para fechar 100%.

Quebra só mais esta.

Obrigado

Link para o comentário
Compartilhar em outros sites

Carlos:

Segue ai as alterações.

Boa sorte...

Alterei a MatrizLetras e o segundo e terceiro For e o RangeCells...

Sub LerMatriz30x4_V4()

' LerMatriz30x4_V4 Macro

' Macro gravada em 06/06/05 por Márcio Rodrigues

QtdeLinhas = 30

ContadorLinhas = 1

MatrizLetras = Array("A", "B", "C", "D", "E")

For i = 1 To QtdeLinhas

For x = 1 To 3

Worksheets("Plan1").Activate

ValorCelula = Range(Cells(i, 1), Cells(i, 3)).Value

If ValorCelula(1, x) = Empty Then

Else

For z = 1 To 5

Worksheets("Plan2").Range(MatrizLetras(z - 1) & ContadorLinhas).Value = Worksheets("Plan1").Range(MatrizLetras(z - 1) & i).Value

Next z

ContadorLinhas = ContadorLinhas + 1

Exit For

End If

Next x

x = 0

Next i

End Sub

Acho que é isso...

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!