Salut.
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
antoine2933
je vais reprendre un le problème car je pense mettre mal expliqué
Je cherche à attribuer pour chaque ligne une valeurs situé en colonne L une valeur en fonction de 2 valeurs situé en colonne f et g
si f = rejetée et g = 1 alors valeur dans L doit être égale a 2
si f = rejetée et g <> 1 alors valeur dans L doit étre égale a 3
si f <> rejetée alors valeur dans L doit étre égale a 1
et si f="" alors rien
je pensais que mon code marcherait mais il me met erreur 424 c tout et je peux pas déboguer
![:?](https://www.developpez.net/forums/images/smilies/icon_confused.gif)
En reprenant cette demande, je propose une solution sans boucle (pensez d'abord Excel avant de penser VBA...) en plaçant une formule conditionnelle.
Range("L1:L10").Formula = "=IF(F1=""rejetée"",IF(G1=1,2,3),IF(F1="""","""",1))"
L'objet Range doit être adapté.
Si l'on veut figer les valeurs, on ajoutera la ligne
Range("L1:L10").Value = Range("L1:L10").Value
[EDIT] C'est tout. Pas de boucle, pas de conditions "en dur" dans du code spaghetti. Juste deux petites lignes de code. En cas de modification des conditions, il suffira de modifier la formule passée à la propriété Formula [/EDIT]
L'avantage à procéder de cette façon réside dans le fait que si les conditions évoluent, il suffit de modifier la formule sans toucher à la structure du code VBA. En inscrivant les conditions dans le code avec des boucles et des IF, on doit modifier "beaucoup" de code pour le faire correspondre aux nouvelles conditions.
Partager