Notifications
Clear all

Vba e Fórmula

12 Posts
2 Usuários
0 Reactions
3,445 Visualizações
(@bianca)
Posts: 5
Active Member
Topic starter
 

Ola.Fiz uma estatística com diversos cálculos que eu faço uma macro , calculado de acordo com a data atual e outros dados.Anexe o arquivo.

 
Postado : 21/12/2011 12:03 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Olá, Bianca...

poderia redigir melhor sua dúvida?

Obrigado.

 
Postado : 22/12/2011 4:39 am
(@bianca)
Posts: 5
Active Member
Topic starter
 

Olá,
Eu quero um código para colocar 1 segundo , a seleção (ex.01.05.2011),número de dias como em fórmulas.
Obrigado.

 
Postado : 23/12/2011 12:00 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!!

Eu também não entendi....

 
Postado : 23/12/2011 6:43 pm
(@bianca)
Posts: 5
Active Member
Topic starter
 

Ola,
Eu quero um código VBA que coloca "1" quando selecionar na célula "C1" diferença em dias ex.IF(AND("A4"="AC";"B4"<"$C$1" OR "G4"<"$C$1") "H4"=1 etc.).Obrigado

 
Postado : 24/12/2011 1:32 am
(@bianca)
Posts: 5
Active Member
Topic starter
 

Ola,
Eu quero um código VBA que coloca "1" quando selecionar na célula "C1" diferença em dias ex.IF(AND("A4"="AC";"B4"<"$C$1" OR "G4"<"$C$1") "H4"=1 etc.).Obrigado

 
Postado : 24/12/2011 3:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!!

Da para resolver com função do excel..

=SE(E(OU(A7="AC";B7<$C$1);G7<$C$1);1;0)

Att..

 
Postado : 24/12/2011 6:06 am
(@bianca)
Posts: 5
Active Member
Topic starter
 

Eu quero fazer automaticamente (código VBA)

 
Postado : 24/12/2011 8:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!!

Veja se é isso.

Sub FormulaSE()
'Uso da formula SE, apartir da 2 linha e arrastada para as demais linhas
      With Sheet7.Range("A:A")
      Range(.Cells(4, 1), .Cells(.Rows.Count, 1).End(xlUp)).Offset(0, 7).FormulaR1C1 = "=IF(AND(OR(RC[-2]=""AC"",RC[-1]<R1C3),RC[4]<R1C3),1,0)"
   End With

End Sub
 
Postado : 24/12/2011 12:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Usando a função do Alexandre, sei muito pouco de funções. :oops:

Sub Atualizar()
    Dim qt As Integer
    
    qt = Sheet7.[A2].CurrentRegion.Rows.Count 'última linha à preencher
'inserir fórmula em H à M
    Sheet7.Range("H4:M" & qt).Formula = "=IF(AND(OR(R[3]C[-7]=""AC"",R[3]C[-6]<R1C3),R[3]C[-1]<R1C3),1,0)"
'substituir fórmula por valor em H à M
    'Sheet7.Range("H4:M" & qt).Value = Sheet7.Range("H4:M" & qt).Value
'inserir fórmula soma na coluna na coluna N
    Sheet7.Range("N4:N" & qt).Formula = "=SUM(RC[-6],RC[-4],RC[-2])"
'substituir fórmula por valor na coluna N
    Sheet7.Range("N4:N" & qt).Value = Sheet7.Range("N4:N" & qt).Value
'inserir fórmula soma na coluna na coluna O
    Sheet7.Range("O4:O" & qt).Formula = "=SUM(RC[-6],RC[-4],RC[-2])"
'substituir fórmula por valor na coluna O
    Sheet7.Range("O4:O" & qt).Value = Sheet7.Range("O4:O" & qt).Value
End Sub

Se tiver de fixar alguma referência informe.

 
Postado : 25/12/2011 6:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Uma pessoa que sabe muito sobre essa lógica é o JValq. Aprendi muito com ele. :shock:

 
Postado : 25/12/2011 6:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Apenas para fixar as colunas A, B e G. Na 1ª instrução passada substitua a linha

'inserir fórmula em H à M
    Sheet7.Range("H4:M" & qt).Formula = "=IF(AND(OR(R[3]C[-7]=""AC"",R[3]C[-6]<R1C3),R[3]C[-1]<R1C3),1,0)"

por essa

'inserir fórmula em H à M
    Sheet7.Range("H4:M" & qt).Formula = "=IF(AND(OR(R[3]C1=""AC"",R[3]C2<R1C3),R[3]C7<R1C3),1,0)"
 
Postado : 26/12/2011 6:01 pm