Notifications
Clear all

Arrastar formula para cima

2 Posts
1 Usuários
0 Reactions
789 Visualizações
 jsf
(@jsf)
Posts: 10
Active Member
Topic starter
 

Galera,tenho uma planilha que contem a seguinte formula:

=INDIRECT(""D""&ROW()-1,1)-SUM(R[-1]C)

Estou aplicando a formula pelo vba, pois faz parte de um relatorio que estou montando, porém, gostaria de saber como faço para fazer arrastar a formula da SOMA para cima até encontrar uma linha colorida.
A logica dessa formula, seria a seguinte p vcs entenderem: tenho 50 chinelos em meu estoque e um cliente X com um pedido de 20 chinelos. Quando eu colocar a quantidade 20, automaticamente o saldo de 50 deve abater essas 20 ficando apenas 30. Cada modelo de chinelo é separado por uma linha colorida, por isso preciso que a formula da soma seja arrastada até uma linha antes da colorida. Podem me ajudar???

 
Postado : 30/07/2018 5:22 am
 jsf
(@jsf)
Posts: 10
Active Member
Topic starter
 

Segue codigo q estou utilizando:

     'Copiar valor
     Range("Z1").Select
     Range("Z1").AutoFilter Field:=32, Criteria1:=RGB(192 _
        , 192, 192), Operator:=xlFilterCellColor

TrabalharVazias2 ()

    Range("Y1").Select
     Range("Z1").AutoFilter Field:=31, Criteria1:=RGB(192 _
        , 192, 192), Operator:=xlFilterCellColor
    Range("Y2").Resize(Range("Y" & Rows.Count).End(xlUp).Row + 1).EntireRow.Select
      Selection.Interior.Color = RGB(192, 192, 192)
    Range("Y1").Select
    ActiveSheet.ShowAllData

    Columns("AG:AG").Select
    Range(Selection, Selection.End(xlToRight)).Select
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With

    Range("Z2").Select
    Selection.ClearContents



 -------

     Sub TrabalharVazias2 ()
     Dim lig As Long

     lig = 1 'primeira linha a verificar


'Contar até achar linha vazia
     Do While Not IsEmpty(Range("Z" & lig))

     lig = lig + 1
 
     Loop

    If Range("Z" & lig) = "" Then
    Range("Z" & lig).Select
    ActiveCell.FormulaR1C1 = "=INDIRECT(""D""&ROW()-1,1)-SUM(R[-1]C)"
    ActiveCell.Select
    Selection.AutoFill Destination= ActiveCell.Range
    Range("Z" & lig).Copy
    Range("Z" & lig).Resize(Range("Y" & Rows.Count).End(xlUp).Row + 1).Select
    ActiveSheet.Paste
 
Postado : 30/07/2018 5:57 am