Notifications
Clear all

Repetir uma sequencia de comandos até a ultima célula

9 Posts
2 Usuários
0 Reactions
2,552 Visualizações
(@pedrohlo)
Posts: 14
Active Member
Topic starter
 

Bom dia,

Estou com as formulas abaixo e gostaria que a macro repetisse este comando todo até a ultima célula preenchida.

    Sheets("Resumo").Select
    Range("A19").Select
    Selection.Copy
    Sheets("Detalhado").Select
    Range("G2:I2").Select
    ActiveSheet.Paste
    Sheets("Resumo").Select
    Range("F19").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
    Range("F19").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False

- começa na célula F18
- Pega a célula A19, copia.
- Vai na "detalhado", cola na célula mesclada G12:I12.
- Volta na aba "resumo", faz uma fórmula de procv para pegar a informação atualizada na aba "detalhado"
- cola valores para tirar a fórmula.

Através de uma Macro, quero repetir tudo isso para a célula F19, F20, F21, F22 até a ultima célula da coluna F que estiver preenchida.

 
Postado : 13/06/2014 8:27 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Use um loop!!
https://www.google.com.br/search?q=loop ... ndo.com.br

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/06/2014 10:10 am
(@pedrohlo)
Posts: 14
Active Member
Topic starter
 

Boa tarde,

Não consegui nenhum loop... não sei como usá-lo.

 
Postado : 13/06/2014 11:35 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu não entendi muito bem, você pretende repetir várias vezes essa ação ou o código deve percorrer com essa ação outras células ?

Poste seu arquivo modelo!!

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/06/2014 11:55 am
(@pedrohlo)
Posts: 14
Active Member
Topic starter
 

pretendo repetir varias vezes esta ação.

Veja como é a macro hoje. Se ela tivesse um comando de repetição eu não precisaria colocar ela linha por linha, da linha 19 a linha 50 eu fiz.

Não consegui anexar o arquivo, ele tem 300Kb e o limite é 100Kb.

Sheets("Resumo").Select
    Range("A19").Select
    Selection.Copy
    Sheets("Detalhado").Select
    Range("G2:I2").Select
    ActiveSheet.Paste
    Sheets("Resumo").Select
    Range("F19").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
    Range("F19").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    
    Sheets("Resumo").Select
    Range("A20").Select
    Selection.Copy
    Sheets("Detalhado").Select
    Range("G2:I2").Select
    ActiveSheet.Paste
    Sheets("Resumo").Select
    Range("F20").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
    Range("F20").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    
    
    Sheets("Resumo").Select
    Range("A21").Select
    Selection.Copy
    Sheets("Detalhado").Select
    Range("G2:I2").Select
    ActiveSheet.Paste
    Sheets("Resumo").Select
    Range("F21").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
    Range("F21").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    
    
    Sheets("Resumo").Select
    Range("A22").Select
    Selection.Copy
    Sheets("Detalhado").Select
    Range("G2:I2").Select
    ActiveSheet.Paste
    Sheets("Resumo").Select
    Range("F22").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
    Range("F22").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    
    
    Sheets("Resumo").Select
    Range("A23").Select
    Selection.Copy
    Sheets("Detalhado").Select
    Range("G2:I2").Select
    ActiveSheet.Paste
    Sheets("Resumo").Select
    Range("F23").Select
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
    Range("F23").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
 
Postado : 13/06/2014 12:52 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Sinceramente não precisa ser dessa forma, há formas melhores de se fazer!

Porque ainda não postou seu arquivo modelo?????????????????????

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/06/2014 12:59 pm
(@pedrohlo)
Posts: 14
Active Member
Topic starter
 

Não estava conseguindo postar, por causa do tamanho da planilha.

Agora consegui, segue anexo. veja a macro que fiz, preciso simplifica-la.

 
Postado : 13/06/2014 1:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Veja se ajuda

Sub AleVBA_12079()
    With Worksheets("Resumo")
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A19")
        .Range("F19").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
        
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A20")
        .Range("F20").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
        
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A21")
        .Range("F21").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
        
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A22")
        .Range("F22").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
        
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A23")
        .Range("F23").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
        
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A24")
        .Range("F24").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
                
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A25")
        .Range("F25").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
        
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A26")
        .Range("F26").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
        .Range("E19:E26").Value = .Range("E19:E26").Value
    End With
End Sub

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/06/2014 2:21 pm
(@pedrohlo)
Posts: 14
Active Member
Topic starter
 

Alexandre, bom dia.

A macro está colando sempre o valor da última linha para todas as células da coluna F, para corrigir teria que colar valores para todos os comandos, assim ficaria bem parecido com a macro que fiz.

Acho que não terá jeito mesmo, terá sempre que repetir o comando para cada linha. Acredito que não tem jeito de fazer um comando e criar um loop ou algo mais automático.

    With Worksheets("Resumo")
        Worksheets("Detalhado").Range("G2:I2") = Worksheets("Resumo").Range("A19")
        .Range("F19").Formula = "=IFERROR(VLOOKUP(WORKDAY(R16C3,0),Detalhado!R11C6:R10000C9,4,FALSE),)"
        
    Range("F19").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
 
Postado : 16/06/2014 8:02 am