Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'ai une Macro Mise à jour, qui va chercher si les données situées dans la feuille "listedossiers" sont présentes dans le classeur. Si c'est le cas, en fonction des valeurs, celles-ci seront colorées en vert, en rouge ou mises en gras.
Comme je procède par boucle de façon séquentielle, c'est assez long. Et encore dans l'exemple ci-joint, la durée est raccourcie car j'ai enlevé l'étape de récupération des données.
Pour donner une idée, la durée totale de la mise à jour peut être voisine de 5 à 6 minutes.
J'aimerais donc raccourcir l'étape de recherche des données. Mais je ne sais pas trop comment faire. J'avais pensé utiliser la fonction Find(what:="données") mais cela me paraît pas compatible avec Ucase et replace.
En effet il arrive que les données tapées manuellement dans le classeur ne respectent pas la casse ni l'espace entre la valeur numérique et le lettre.
Exemple: 358 A peut devenir dans le classeur 358A ou 358a ou 358 a.
Si quelqu'un a une idée pour raccourcir le temps de cette foutue macro, je lui en serais vraiment reconnaissant.
Je part de la feuille "listedossiers", pour chaque ligne remplie de cette feuille,
Je fait dans un premier temps, une recherche de la première partie du terme avant l'espace.
Puis si la valeur à été trouvée, je la compare à la valeur entière.
Le code est plus long mais devrait être plus rapide, à tester 😉
Merci pour t'être penché sur mon pb. D'ailleurs tu m'avais déjà grandement aidé sur cette application pour accélérer la récupération des données.
J'ai testé en conditions réelles et la vitesse d'exécution est sans commune mesure avec la précédente macro !
Seule remarque. en ce qui concerne la mise en gras des cellules correspondant a la colonne K de le feuille "listedossiers", cela ne fonctionne pas. Ce qui est normal car les données sont de type 000 125 ou 100 250
Par contre sur la feuille j'ai qq chose comme "code: 000 120"
Peux-tu l'adapter dans le style des deux autres ?
Je reviens sur le fil car apparement je me suis réjouis trop vite. En fait la macro a un comportement bizarre. Je m'explique:
Par exemple prenons la macro validecomdmatenvert certaines données dans le classeur correspondant à celles de la colonne B de la feuille "listedonnées" sont bien mises en vert peut importe l'espace et la casse. Par contre d'autres non.
D'autre part si dans le classeur on a deux valeurs ex: 853 A de format identique, l'une sera mise en vert et l'autre pas ?
En ce qui concerne les pb évoqués, c'est en testant sur le fichier que tu as renvoyé 🙂
En fait pour tester, je me suis attaché à une ou deux valeurs présentes dans chaque colonne concernée par les macros.
Ex: 851 A en B2 et 851 C en B3 (La colonne B correspond aux données pour la macro mise en vert)
Ensuite j'ai reporté ces 2 valeurs dans l'une des feuilles du classeur en mettant tous les cas possibles. Soit 851a, 851A, 851 A etc ...
Normalement toutes ces valeurs doivent devenir vertes si la macro fonctionne.
idem pour la colonne D (correspondant aux données pour la macro mise en rouge)
idem pour la colonne K (correspondant aux données pour la macro mise en gras)
Bon tjs en testant sur le même fichier j'ai compris d'ou vient le pb.
En fait tu fais d'abord une recherche sur la valeur numérique. Hors j'ai plusieurs fois la même valeur avec des lettres différentes 854 A, 854 B, 854 C etc.
Dans le classeur, si tu t'amuses à inscrire à la suite (l'une en-dessous de l'autre) 854 A, 854 B jusqu'à 854 C tu verras que seul 854 A passe en vert. efface cette valeur et dès lors c'est la valeur 854 B qui passe en vert, etc
En fait la macro fonctionne mais uniquement pour une seule combinaison valeur numérique + espace + lettre
Bon je ne sais pas si je suis très clair, on est dimanche matin et je n'ai pas encore pris mon bol de café 😀
J'ai épluché le code et il y avait 2 problèmes, effectivement 😱
1) après la 1ère recherche, je ne disais pas à Excel d'aller chercher une autre valeur après celle qui à été trouvée, c'est fait avec : After:=Sh.Range(RngF)
2) pour la recherche des valeurs en colonne K, il faut un traitement spécial, donc je fait une recherche de caractère dans la valeur de la cellule trouvée, avec : Instr(PositionDeDépart,ValeurDeRecherche,ValeurAChercher)
De plus, pour gagner encore en rapidité, du moins je l'espère, je fais le traitement des 3 cas (Rouge, Vert, Gras) en même temps, dans la même procédure.
Inutile de parcourir à chaque fois toutes les feuilles pour traiter les éléments.
En fait tu fais d'abord une recherche sur la valeur numérique. Hors j'ai plusieurs fois la même valeur avec des lettres différentes 854 A, 854 B, 854 C etc.
Dans le classeur, si tu t'amuses à inscrire à la suite (l'une en-dessous de l'autre) 854 A, 854 B jusqu'à 854 C tu verras que seul 854 A passe en vert. efface cette valeur et dès lors c'est la valeur 854 B qui passe en vert, etc
En fait la macro fonctionne mais uniquement pour une seule combinaison valeur numérique + espace + lettre
Bon la prochaine fois, je me montrerai plus prudent avant de m'avancer 😱
Pour les encouragements, c'est gentil mais je suis conscient que le chemin est long, très long avant d'avoir un niveau correct en vba. D'autant que je pratique en dilettante, ma formation étant plutôt tournée vers la biologie. Mais bon je m'accroche et j'apprends tous les jours.
En tout cas merci pour tout car cette fois c'est nickel !
Il ne me reste plus qu'à décortiquer ton code pour avancer un peu ds mes connaissances.
il y a d'ailleurs une syntaxe que je ne comprends pas bien, si tu peux me l'expliquer ce serait sympa.
RngF = "$A$1": FirstCel = "" je ne vois pas bien à quoi correspond la variable FirstCel et à quel moment elle est définie ?
Pour les encouragements, c'est gentil mais je suis conscient que le chemin est long, très long avant d'avoir un niveau correct en vba. D'autant que je pratique en dilettante, ma formation étant plutôt tournée vers la biologie.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD