Formula incorrect

Résolu/Fermé
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 - 23 oct. 2012 à 09:36
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 - 23 oct. 2012 à 10:28
Bonjour,

je cherche à faire une formula en vba mais qui me sorte un truc du genre :

.Cells(ligne_engin, 13).Formula = "=SI((L" & ligne_flotte & "C5>=L" & ligne_flotte & "C11)*(L" & ligne_flotte & "C7>=L" & ligne_flotte & "C10);1;0)"

mais ca ca me fait des erreurs...

Une solution ?

Dans l'attente de vous lire,

cordialement.



3 réponses

ccm81 Messages postés 10862 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 30 mai 2024 2 408
Modifié par ccm81 le 23/10/2012 à 10:08
re

effectivement, c'est ton "*" qui pose pb, je suppose que tu veux que les deux conditions soient réalisées, si oui, c'est
ET( cond1;cond2)
ce qui devrait donner

f = "=SI(ET(L" & ligne_flotte & "C5>=L" & ligne_flotte & "C11;L" & ligne_flotte & "C7>=L" & ligne_flotte & "C10);1;0)" 
.Cells(ligne_engin, 13).FormulaLocal= f


RQ. créer d'abord la chaine de caractère f correspondant à la formule
puis affecter f à la cellule
ça te permet en mettant un point d'arrêt devant f, de faire un suivi des variables avec une exécution pas à pas et de voir si f est correcte

bonne suite
1
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
23 oct. 2012 à 10:10
Ca ... ca sent bon !! Par contre j'ai l'impression que ca répond pas exactement à mes attentes sachant que C5 et C11 sont des années et C7 et C10 sont des semaines (ex : 46). Mais avec ta formule si jamais je ne met que la semaine (ex:47) dans C10 la valeur passe à active. sauf que je veux que les deux valeurs sont en commun.
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
23 oct. 2012 à 10:28
j'ai rien dis ! c'est bien ce que je cherchais !! :)


Merci beaucoup !! :) Résolu !
0
ccm81 Messages postés 10862 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 30 mai 2024 2 408
23 oct. 2012 à 09:52
bonjour

esaies la même chose avec
.FormulaLocal = ......

bonne suite
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
23 oct. 2012 à 09:53
Re, merci de votre réponse mais : Erreur : Erreur défini par l'application ou par l'objet.
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
23 oct. 2012 à 09:56
Bonjour,

et avec :
.Cells(ligne_engin, 13).Formula = "=SI(ET(L" & ligne_flotte & "C5>=L" & ligne_flotte & "C11,L" & ligne_flotte & "C7>=L" & ligne_flotte & "C10);1;0)" 
ce serait mieux non ?

Si j'ai bien compris tu veux tester que la valeur en colonne 5 est supérieure à celle de la colonne 11, ET que la colonne 7 est supérieure à la colonne 10 ?
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
23 oct. 2012 à 09:59
@chossette9 : oui tout à fait, par contre ta formule marche pas non plus, même erreur.
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
23 oct. 2012 à 10:00
Et avec le FormulaLocal ? Car si tu mets juste Formula, VB attend du code en anglais. Donc IF(AND(....)).
0
ViriisXP Messages postés 482 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 11 janvier 2023 40
23 oct. 2012 à 10:01
formulalocal idem, idem pour formular1c1local
0