Automatisé une formule

bonjour je voudrai réalisé un code avec VBA pour que la formule s'automatise a l aide d'une macro sur plusieurs cellules sans les taper a la main comme sur la photo ci-dessous

=SI(P7="";"out";SI(K7=M7;SI(N7>0;SI(N7-L7>0;N7-L7;"avance");SI(Q7=K7;R7-L7;"report ou annul"));"report ou annul"))

merci

Bonjour,

tu cliques sur une des cellules de tes données

INSERTION/TABLEAU

et à chaque ligne, tes données auront la formule avec ses indices

bonjour je voudrai juste faire une macro pour évité votre proposition car sur des milliers de cellule cela peut être très long

Re,

Ouais, et comment je sais sur qu'elle cellule se trouve la formule

ICI, c'est pas un forum sur la photo

Regarde un peu où je trouve des références de cellules

la formule =SI(P7="";"out";SI(K7=M7;SI(N7>0;SI(N7-L7>0;N7-L7;"avance");SI(Q7=K7;R7-L7;"report ou annul"));"report ou annul"))

est sur la premier colonne en jaune est permet de calculé l'avance ou le retard (combien de temps ) des camion a l 'aide des horaire de pointage retransmit sur un fichier excel

Re,

Pas très plus explicite, sans voir les lignes BREF quand on aime les photos, on fait de la photo

A tester sans trop de conviction (à mettre dans la feuille concernée)

Sub test()
Dim F$, Dl%
Dl = Range("K" & Rows.Count).End(xlUp).Row
F = "=IF(RC[6]="""",""out"",IF(RC[1]=RC[3],IF(RC[4]>0,IF(RC[4]-RC[2]>0,RC[4]-RC[2],""avance""),IF(RC[7]=RC[1],RC[8]-RC[2],""report ou annul"")),""report ou annul""))"
Range("J7").Formula = F
Range("J7").AutoFill Destination:=Range("J7:J" & Dl), Type:=xlFillDefault
End Sub

merci beaucoup votre code marche juste le temps de retard il me le calcul avec des 0.13889 on lieu de 20 min

par exemple ligne 13

Re,

Si mon code fonctionne pour la recopie des formules, c'est bien

Pour l'erreur, cela vient de votre formule que j'ai recopié à l'intégrale (d'ailleurs il vous suffit de la visionner dans la barre de formule)

Et comme, avec vous, on ne travaille que sur des ,

je ne pas faire mieux

A moins que tu penses que si tu changes le format de cellules en colonne J en heures

pouvez-vous me code cette formule en code VBA SVP

=+SI(J8="out";"out";SI(OU(J8="avance";J8="report ou annul");J8;SI(J8<$Y$1;"moins de 30mn";SI(J8<$Y$4;"moins de 4h";"plus de 4h"))))

Re,

Purée Rogerrrr !!!!!!!!!!!!!!!!!!!!!!!!!!!

Tu ne dis pas sur quelle cellule doit s'appliquer ta formule

Quand tu poses une question, pense simplement que l'on n'est pas derrière ton dos et que l'on voit tout ce qu'il se passe sur ton écran

Explique ou place un classeur bon sang

cette formule s'applique sur la cellule w (colonne jaune )

capture

Re,

Replace cette macro à la place de la précédente

Sub test()
Dim F$, Dl%
Dl = Range("K" & Rows.Count).End(xlUp).Row
F = "=IF(RC[6]="""",""out"",IF(RC[1]=RC[3],IF(RC[4]>0,IF(RC[4]-RC[2]>0,RC[4]-RC[2],""avance""),IF(RC[7]=RC[1],RC[8]-RC[2],""report ou annul"")),""report ou annul""))"
Range("J7").Formula = F
Range("J7").AutoFill Destination:=Range("J7:J" & Dl), Type:=xlFillDefault
F = "=IF(R[-1]C[-10]=""out"",""out"",IF(OR(R[-1]C[-10]=""avance"",R[-1]C[-10]=""report ou annul""),R[-1]C[-10],IF(R[-1]C[-10]<R1C25,""moins de 30mn"",IF(R[-1]C[-10]<R4C25,""moins de 4h"",""plus de 4h""))))"
Range("W7").Formula = F
Range("W7").AutoFill Destination:=Range("W7:W" & Dl), Type:=xlFillDefault

End Sub

merci beaucoup

Rechercher des sujets similaires à "automatise formule"