Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Somar Colunas ao Iniciar [RESOLVIDO]
-
- Colaborador
- Mensagens: 34
- Registrado em: Seg Set 24, 2012 5:06 pm
Somar Colunas ao Iniciar [RESOLVIDO]
Bom dia Pessoal,
Estou montando um cadastro de produtos com diversas planilhas. Gostaria que antes de iniciar a primeira UserForm (Menu Principal) o programa realiza-se diversas contas, princialmente de somar em algumas planilhas, por exemplo: na Planilha ProdutoA, somar todas as células da coluna A (as que contém valores) com a coluna B (as que contém valores) e o resultado fosse colocado na coluna C. E assim nas demais planilhas.
Será que vocês poderiam me ajudar?
Estou montando um cadastro de produtos com diversas planilhas. Gostaria que antes de iniciar a primeira UserForm (Menu Principal) o programa realiza-se diversas contas, princialmente de somar em algumas planilhas, por exemplo: na Planilha ProdutoA, somar todas as células da coluna A (as que contém valores) com a coluna B (as que contém valores) e o resultado fosse colocado na coluna C. E assim nas demais planilhas.
Será que vocês poderiam me ajudar?
Editado pela última vez por ricardourias em Seg Dez 17, 2012 2:47 pm, em um total de 1 vez.
Re: Somar Colunas ao Iniciar
Boa tarde
Não é possivel fazer este cálculo ao abrir o arquivo?
Acredito que colocar uma função no initialize também fará o seu cálculo.
abraço
Não é possivel fazer este cálculo ao abrir o arquivo?
Acredito que colocar uma função no initialize também fará o seu cálculo.
abraço
-
- Colaborador
- Mensagens: 34
- Registrado em: Seg Set 24, 2012 5:06 pm
Re: Somar Colunas ao Iniciar
Obrigado Neri, mas como eu realizo esta função, pois já tentei e não deu muito certo.
Por exemplo, eu tentei fazer deste jeito para atualizar somente uma planilha e em uma sequencia de linhas das colunas A e B:
Dim i As Integer
Dim j As Integer
For j = 2 To 50
Sheets("teste").Select
Range("C" & j).Value = Range("A" & j).Value + Range("B" & j).Value
Next j
Por exemplo, eu tentei fazer deste jeito para atualizar somente uma planilha e em uma sequencia de linhas das colunas A e B:
Dim i As Integer
Dim j As Integer
For j = 2 To 50
Sheets("teste").Select
Range("C" & j).Value = Range("A" & j).Value + Range("B" & j).Value
Next j
-
- Colaborador
- Mensagens: 34
- Registrado em: Seg Set 24, 2012 5:06 pm
Re: Somar Colunas ao Iniciar
Pessoal,
Outra forma que tentei fazer foi diretamente no código da planilha:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim j As Integer
For j = 2 To 65000
Range("C" & j).Value = Range("A" & j).Value + Range("B" & j).Value
Next j
End Sub
Além de demorar uma eternidade para ler todas as linhas o programa emite uma mgs de erro de tempo de execução.
Alguém pode me ajudar?
Outra forma que tentei fazer foi diretamente no código da planilha:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim j As Integer
For j = 2 To 65000
Range("C" & j).Value = Range("A" & j).Value + Range("B" & j).Value
Next j
End Sub
Além de demorar uma eternidade para ler todas as linhas o programa emite uma mgs de erro de tempo de execução.
Alguém pode me ajudar?
- BaptistaCG
- Colaborador
- Mensagens: 96
- Registrado em: Seg Jul 30, 2012 10:33 pm
- Localização: Sorocaba/SP
Re: Somar Colunas ao Iniciar
Caro amigo,
Coloca ela ai pra gente dar uma olhada, e se possivel explique o que e quais celulas deseja somar..
Att.
Coloca ela ai pra gente dar uma olhada, e se possivel explique o que e quais celulas deseja somar..
Att.
Re: Somar Colunas ao Iniciar
Tente usar este código.
Este código serve para somar os valores de uma planilha só!
Caso queira somar todas as planilhas, altere o valor da ("Plan1").
Abraço....
Código: Selecionar todos
Private Sub UserForm_Initialize()
'Seleciona a célula de destino da soma
ThisWorkBook.WorkSheets("Plan1").Activate
Range("c1").Select
' Enquanto tiver algum valor na coluna A ou na coluna B, somará as duas colunas
While ActiveCell.Offset(0, -1) <> "" Or ActiveCell.Offset(0, -2) <> ""
ActiveCell.Value = ActiveCell.Offset(0, -1).Value + ActiveCell.Offset(0, -2).Value
' Ativa a próxima linha
ActiveCell.Offset(1, 0).Select
' Se não tiver nenhum valor na coluna A nem na coluna B, deletará a linha
If ActiveCell.Offset(0, -1) = "" And ActiveCell.Offset(0, -2) = "" Then
ActiveCell.EntireRow.Delete
End If
Wend
End Sub
Caso queira somar todas as planilhas, altere o valor da ("Plan1").
Abraço....
-
- Colaborador
- Mensagens: 34
- Registrado em: Seg Set 24, 2012 5:06 pm
Re: Somar Colunas ao Iniciar
McJota, boa tarde...
Gostaria de agradecer pelo ajuda que vc me deu, mas será que você poderia me ajudar ainda neste assunto? Na verdade o código que você me passou funcionou perfeitamente, porém tenho algumas dúvidas:
- Como eu faço para ler a coluna "V" (o comando que vc me passou faz a leitura da coluna "A", ou seja, ActiveCell.Offset(0, -1), quando eu substituo o -1 por -22 o programa apresenta um erro).
Será que voce poderia me ajudar?
Abs.
Ricardo
Gostaria de agradecer pelo ajuda que vc me deu, mas será que você poderia me ajudar ainda neste assunto? Na verdade o código que você me passou funcionou perfeitamente, porém tenho algumas dúvidas:
- Como eu faço para ler a coluna "V" (o comando que vc me passou faz a leitura da coluna "A", ou seja, ActiveCell.Offset(0, -1), quando eu substituo o -1 por -22 o programa apresenta um erro).
Será que voce poderia me ajudar?
Abs.
Ricardo
- BaptistaCG
- Colaborador
- Mensagens: 96
- Registrado em: Seg Jul 30, 2012 10:33 pm
- Localização: Sorocaba/SP
Re: Somar Colunas ao Iniciar
Olá ricardourias
Pelo que entendi do codigo que o Mcjota criou,
ActiveCell.Offset(0,-1) significa que esta contando a partir da celula ativa que no caso é a c1, desta forma o -1 significa uma celula à esquerda da celula ativa pois a celula ativa é = 0, é assim que funciona a função offset ("LINHA", "COLUNA") então para fazer o que voce quer ativar na celula da coluna v, vc deve colocar "22" e não "-22"...
Estou online se quiser discutir o assunto.
Att...
Pelo que entendi do codigo que o Mcjota criou,
ActiveCell.Offset(0,-1) significa que esta contando a partir da celula ativa que no caso é a c1, desta forma o -1 significa uma celula à esquerda da celula ativa pois a celula ativa é = 0, é assim que funciona a função offset ("LINHA", "COLUNA") então para fazer o que voce quer ativar na celula da coluna v, vc deve colocar "22" e não "-22"...
Estou online se quiser discutir o assunto.
Att...
Re: Somar Colunas ao Iniciar
Boa tarde....
O exemplo de código que sugeri, soma as células da coluna A "Offset(0 ,-2)" e da coluna B "Offset(0,-1)"!
Caso queira somar as celulas da coluna V, seria "Offset(0, 19)", pois começa a contar a partir da coluna C, que é a célula ativa!
Abraço.....
O exemplo de código que sugeri, soma as células da coluna A "Offset(0 ,-2)" e da coluna B "Offset(0,-1)"!
Caso queira somar as celulas da coluna V, seria "Offset(0, 19)", pois começa a contar a partir da coluna C, que é a célula ativa!
Abraço.....
- BaptistaCG
- Colaborador
- Mensagens: 96
- Registrado em: Seg Jul 30, 2012 10:33 pm
- Localização: Sorocaba/SP
Re: Somar Colunas ao Iniciar
Exatamente,McJota escreveu:Boa tarde....
O exemplo de código que sugeri, soma as células da coluna A "Offset(0 ,-2)" e da coluna B "Offset(0,-1)"!
Caso queira somar as celulas da coluna V, seria "Offset(0, 19)", pois começa a contar a partir da coluna C, que é a célula ativa!
Abraço.....
Eu confundi pois me empolguei no -22 é isso mesmo ricardourias se for utilizar a coluna v é (0,19).
E se quiser somar de outra planilha pode usar sheets("nome da planilha").cells(linha,coluna), mas o codigo .cell se comporta diferente do .offset a numeração é exata e não à partir da celula como .offset excelente sugestão McJota, gostei do uso de while wend que utilizou parabéns.