Re : formule excel en VBA
je vous demande de m'excuser pour mon manque de précision
c'est le code " formule" qui est commandé par un bouton sur l'onglet Menu, le bouton N°7 ci dessous le code concerné.
J'aimerai que les formules soient actives seulement sur les lignes qui ont un "1" en colonne "A".
j'espère être plus clair dans ma demande.
---------------------------------------------------------------------------------------------------------------------
Sub Formule()
Dim Lg As Integer
Dim i As Byte
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
If Sheets(i).Name <> "Menu" And _
Sheets(i).Name <> "BudgetTotal" And _
Sheets(i).Name <> "Tarif" Then
With Sheets(i)
On Error Resume Next
Sheets(i).ShowAllData 'libère les filtres
On Error GoTo 0
Lg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row - 1
'--- formules Colonne O ---
.Range("O3:O" & Lg) = "=" & _
"IF(AND(K3="""",M3="""",A3=1),""Aucune intervention nécéssaire""," & _
"IF(AND(M3<>"""",A3=1),LOOKUP(M3,CODE,TEXTE)," & _
"IF(AND(A3=1,L3=""*""),LOOKUP(K3,CODE,TEXTE),"""")))"
.Range("l3:l" & Lg) = "=" & _
"IF(AND(A3=1,K3<>""""),""*"","""")"
.Range("P3
" & Lg) = "=" & _
"IF(AND(k3="""",A3=1),""""," & _
"IF(AND(A3=1,L3=""*""),LOOKUP(K3,CODE,UNITE)," & _
"IF(AND(M3<>"""",A3=1),LOOKUP(M3,CODE,UNITE),"""")))"
.Range("R3:R" & Lg) = "=" & _
"IF(AND(k3="""",A3=1),""""," & _
"IF(AND(A3=1,L3=""*""),LOOKUP(K3,CODE,PRIX)," & _
"IF(AND(M3<>"""",A3=1),LOOKUP(M3,CODE,PRIX),"""")))"
.Range("S3:S" & Lg) = "=" & _
"IF(OR(Q3<>"""",R3<>""""),ROUND(Q3*R3,0),"""")"
End With
End If
Next
End Sub
je vous remercie d'avance en vous présentent encore une fois mes excuses