Notifications
Clear all

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

9 Posts
2 Usuários
0 Reactions
2,546 Visualizações
(@pedrohlo)
Posts: 14
Eminent 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
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

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

Att

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

Boa tarde,

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

 
Postado : 13/06/2014 11:35 am
(@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

 
Postado : 13/06/2014 11:55 am
(@pedrohlo)
Posts: 14
Eminent 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
(@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

 
Postado : 13/06/2014 12:59 pm
(@pedrohlo)
Posts: 14
Eminent 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
(@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

 
Postado : 13/06/2014 2:21 pm
(@pedrohlo)
Posts: 14
Eminent 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