Notifications
Clear all

Substituir valores em determinada célula e copiar resultados

10 Posts
2 Usuários
0 Reactions
1,640 Visualizações
(@gilson-filho)
Posts: 16
Eminent Member
Topic starter
 

Caros, é o seguinte, estou precisando criar uma macro que faça uma substituição de uma algumas linhas em determinadas células que contem fórmulas, e copie os resultados em outra planilha. Segue um simples exemplo:
Imagine que tenho na coluna "A" 100 valores (A1:A100) e na coluna "B" outros 100 valores (B1:B100). O que eu quero é que os valores de "A1" e "B1" sejam transferidos para outra planilha (Plan 2) para as células "C1" e "D1", respectivamente. Nesta outra planilha tenho uma equação na célula "E1", digamos "=C1+D1". O que eu quero é que todos os valores de (A1:A100) e (B1:B100) seja transferidos automaticamente e que os resultados de "E1" sejam colados como "valores" em outro coluna, ex. "F".
Vocês podem estar se perguntando porque simplesmente não somar todos as células A e B diretamente na primeira planilha, é que este é só um exemplo, na verdade, minha planilha é bem mais complexa e não são só duas variáveis que tenho que substituir e sim uma série e o local onde vai receber taais variáveis é um modelo complexo de equações que não tem como calcular individualmente para cada linha.

abaixo segue um exemplo para as duas primeiras linhas. Eu tenho cerca de 400 linhas e gostaria de fazer isso automático com comandos simples.

Range("A1").Select
Selection.Copy
Range("C1").Select
ActiveSheet.Paste
Range("B1").Select
Application.CutCopyMode = False
Selection.Copy
Range("D1").Select
ActiveSheet.Paste
Range("E1").Select
Application.CutCopyMode = False
Selection.Copy
Range("F1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Range("C1").Select
ActiveSheet.Paste
Range("B2").Select
Application.CutCopyMode = False
Selection.Copy
Range("D1").Select
ActiveSheet.Paste
Range("E1").Select
Application.CutCopyMode = False
Selection.Copy
Range("F2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

atenciosamente

 
Postado : 19/04/2013 8:34 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente:

Sub iguala()
Dim uRow As Long
With Sheets("Plan2")
    For uRow = 2 To Sheets("Plan1").Cells(Cells.Rows.Count, "A").End(xlUp).Row 'Ultima linha na planilha 1
    .Cells(uRow, 3) = Sheets("Plan1").Cells(uRow, 1).Value 'coluna C da planilha 2 = valor coluna A planilha 1
    .Cells(uRow, 4) = Sheets("Plan1").Cells(uRow, 2).Value ''coluna D da planilha 2 = valor coluna B planilha 1
    .Cells(uRow, 6) = .Cells(uRow, 5).Value 'coluna F da planilha 2 = Valor Coluna E da planilha 2
    Next
End With
End Sub
 
Postado : 19/04/2013 8:45 am
(@gilson-filho)
Posts: 16
Eminent Member
Topic starter
 

Obrigado Reinaldo, mas não era bem isso. Acho que não me expressei mal anteriormente. Todas as células em A e B tem de ser copiadas apenas para C1 e D1 e o resultado de D1 (fórmula) é que tem de ser gravado em F1, F2, F3... Ou seja, C1 e D1 são as unicas céulas que deverão receber todos os valores em A e B, e o resultado gerado para cada combinação destas céulas que é calculado em D1 tem de ser gravados na coluna F.

A1, A2, ... An
B1, B2, .... Bn

C1 e D1, células onde os valores tem de ser substítuidos.

D1 - tem um fórmula, ex. C1 + D1.

F1, F2, ... Fn - Células onde deverá existir a somas de A1 + B1, A2 + B2, .... An + Bn.

 
Postado : 20/04/2013 7:20 am
(@gilson-filho)
Posts: 16
Eminent Member
Topic starter
 

Alguem ai pode dar uma ajuda?? Estou precisando disso para terminar minha tese!!

obrigado!

 
Postado : 21/04/2013 1:38 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Poste seu arquivo modelo compactado!!

Att

 
Postado : 21/04/2013 1:45 pm
(@gilson-filho)
Posts: 16
Eminent Member
Topic starter
 

Segue em anexo um arquivo com um exemplo simples. Claro que uma forma mais simples, mas eu entendendo a dinâmica da macro consigurei implementar no meu arquivo real.

 
Postado : 21/04/2013 2:01 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Creio ser meio (ou inteiro) leso, não entendi??.
Antes era de uma sheet para outra, agora e na mesma. É para substituir o valor e colar em sequencia, seria um loop ate o final ou não. Ai não há objhetivo em "substituir", o que interessa não é o valor em F??

 
Postado : 21/04/2013 2:26 pm
(@gilson-filho)
Posts: 16
Eminent Member
Topic starter
 

Caro Reinaldo, desculpa pelo meu post anterior, na verdade quis dizer que me expressei mal.
Não importa se de uma planilha para outra, este é só um exemplo bem simples, se colocar minha planilha aqui iria ficar bem complicado de entender ou explicar. Sim, o que interessa é o valor em F, que seria a soma de A1 + B1, A2 + B2, ..., An + Bn. Preciso copiar todos os valores de A e B apenas em C1 e D1, pegar o resultado da equação em E1 e colar em F, de forma que F terá o mesmo numero de linhas de A e B.

obrigado

 
Postado : 21/04/2013 2:52 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Na realidade importa, é muito, se for na mesma planilha ou em outra, mas veja se lhe atende

Sub iguala()
Dim uRow As Long
    For uRow = 1 To Sheets("Plan1").Cells(Cells.Rows.Count, "A").End(xlUp).Row 'Ultima linha na planilha 1
        Sheets("Plan1").Cells(1, 3) = Sheets("Plan1").Cells(uRow, 1).Value 'coluna C
        Sheets("Plan1").Cells(1, 4) = Sheets("Plan1").Cells(uRow, 2).Value 'coluna D
        Sheets("Plan1").Cells(uRow, 6) = Sheets("Plan1").Cells(1, 5).Value 'coluna F
    Next
End Sub
 
Postado : 21/04/2013 3:15 pm
(@gilson-filho)
Posts: 16
Eminent Member
Topic starter
 

Era exatamente isso Reinaldo, muito obrigado!! A partir daqui acho que consigo expandir pra planilha original!

 
Postado : 21/04/2013 3:28 pm