Boucle VBA, niveau avancé

bonjour, bonjour le forum

je nécéssite l'aide de quelqu'un d'un niveau avancé en VBA

J'ai un petit problème en ce qui concerne une macro (car je code en VBA et je ne souhaite pas utiliser de formule) #jesuisrelou

j'aimerai effectuer des comparaisons de valeur entre des cellules et en remplir d'autre en fonction des résultats.

Mes boucles (pour effectuer cela) travaillent sur 3 feuilles d'un même classeur.

(voir fichier)

L'idée est de comparer les noms de FCM_alloc et de BSLM, si le code trouve une correspondance, qu'il compare les dates de BSLM et de

de super planning, et qu'il les rentre dans les lignes correspondantes (au nom trouvé précédemment).

j'ai déjà pas mal avancé dans le code... mais je bloque

Si cela n'est pas claire n'hésitez pas à me demander des précisions

Et je remercie encore une fois ce forum pour l'aide précieuse qu'il m'apporte.

19test.xlsm (26.82 Ko)

Salut Iziris,

En fait le "problème" ne vient pas de ta boucle, car elle fait exactement ce que tu demandes.

Le problème vient de ce que tu demandes.

Voici ton algorithme tel que tu l'énonces :

1) comparer les noms de FCMA et de BSLM,

2) si le code trouve une correspondance,

3) comparer les dates entre BSLM et SP,

4) Si le code trouve une correspondance,

5) rentrer "p" dans les lignes correspondantes au nom trouvé précédemment.

En l'occurence si on prend l'exemple de Paul sur BSLM:

  • il existe bien une correspondance dans la liste des noms FCMA,
  • il existe bien une correspondance entre la date du 04/01 BSLM et la date du 04/01 SP
  • Le code met donc un "p" dans la cellule G5

Il me semble qu'il manque une variable : la comparaison du MSN, qui est j'imagine le matricule.

Il faut donc ajouter cette donnée à ton algorithme :

1) comparer les noms de FCMA et de BSLM,

2) si le code trouve une correspondance,

3) affecter le MSN à une variable (un truc du genre "if nom BSLM = nom FCMA alors MSN BSLM = MSN FCMA")

4) comparer le MSN BSLM à la liste des MSN SP

5) si le code trouve une correspondance,

6) comparer les dates entre BSLM et SP,

7) Si le code trouve une correspondance,

8 ) rentrer "p" dans les lignes correspondantes au nom trouvé précédemment.

EDIT : Tiens je t'ai fais une boucle (dans le module 2) prenant en compte le MSN.

Je t'ai refait le fichier en annotant mon code pour la boucle, tu peux donc le re-télécharger si besoin !

Wow merci Gazoline tu as tout compris !

Tu ne sais pas a quel point je suis heureux de ta reponse et puisque tu es la j'en profite

Comme tu a s pu le remarquer il y a une deuxième colonne dans super planning montrant la date de fin de la peinture, sais tu comment faire pour ecrire p de la date de debut jusqu'a la date fin ? d'en gros écrire p du 1/01/2016 jusqu'a la date de fin qui est par exmple 3/01/2016)

Merci ENCORE MILLE FOIS

et merci d'avance

Re Iziris !

Voici un ajourt de boucle sur la période.

J'ai dû changer les dates pour effectuer le test.

Re Gaz0line !!

Wow incroyable j'aime beaucoup ce que tu as fait, c'est géniale le VBA. (et toi aussi du coup)

Et voici ma dernière question, est il possible de créer une cellule juste en dessous des cellules rouges (de peinture donc) Avec le numéro de matricule ? qui fasse la meme taille que les cellules colorer, (je ne sais pas comment les faire fusionner) c'est pour ca qu'il y a 2 lignes par personne

Je ne t'en demanderai pas plus je pense que tu as fait beaucoup pour moi merci encore

Oui le VBA c'est vraiment génial, je confirme

J'ai ajouté un bout de code qui fusionne les cellules mais puisque tu sembles vouloir apprendre, je me permets une remarque générale :

en règle générale quand tu fais du VBA, évite de fusionner, défusionner, ça complique toujours le traitement des données. Quand tu veux utiliser une donnée qui se trouve dans une plage de cellules fusionnées, c'est toujours la 1ere cellule qui est la référence alors souvent c'est un peu prise de tête et source d'erreurs;

Très bien !!

Merci de tes conseils et de ton aide !!

je les garde en mémoire !

J'aurais galéré encore 2 semaines au moins pour faire tout ca !

Merci Un millions de fois !! et bonne continuation.

Je t'en prie ! Bonne continuation à toi

Rechercher des sujets similaires à "boucle vba niveau avance"