Macro pour un type de fichier Excel

Bonjour à toutes et à tous,

Je suis nouveau ici et je viens vers vous parce que je rencontre pas mal de difficultés à réaliser une macro qui s'appliquerait à un type de fichier Excel en particulier (je re-précise que je travaille avec excel 10). A travers mon métier, je décortique des résultats enregistrés dans un appareil. Ces résultats, je les ai sous forme d'un tableau Excel. Je suis passé par des "Mise en Forme Conditionnelle" et des "Fonction Logique" pour discerner des dépassements de seuils (par exemple, si l'écartement est >1475mm ou <1420mm, je suis en Valeur de Ralentissement (VR) représenté d'une couleur rouge).

Le seul problème c'est que la mise en forme conditionnelle et la fonction logique SI ne se répètent pas d'une feuille Excel à l'autre... De ce fait, je voudrais créer une macro qui pourrait être ouverte par une autre personne voulant décortiquer ses résultats, afin d'avoir directement les seuils de valeurs en couleur (par exemple, quand c'est BON=>VERT, Valeur d'Intervention(VI)=>JAUNE et Valeur de Ralentissement(VR)=>ROUGE). Et je voudrais appliquer cette règle là pour deux colonnes: Ecartement et Gauche1.

En résumé, la personne lambda ouvre ses résultats sur Excel, elle ouvre la macro et BIM! Des jolis couleurs de partout (enfin, 3 couleurs pour être exact ). Par contre, dans ces lignes de codes, il faudra mettre des valeurs ">" ou "<" ou "comprises entre"... Et je ne sais pas si c'est possible avec les macros.

Voici comment c'est présenté sur ma feuille Excel:

Je suis complètement un novice là-dedans... Et si quelqu'un pouvait me guider là-dedans ou m'expliquer via un exemple, ça serait génial (Si c'est faisable!! Parce que, si ça ne l'est pas, je resterais sur ma première approche...). Je trouve les macros très intéressantes mais ma compréhension extrêmement limitée m'empêchent de bien en profiter.

Merci pour de attention et je vous souhaite un bon week-end!!

Bien cordialement.

Bonjour et bienvenue,

Ton fichier ne contient aucune mise en forme conditionnelle (MFC).

Cdlt.

Bonjour MiK-L-, le forum,

je te retourne ton fichier modifié :

fais Ctrl e ; puis lis ceci :

5notes.xlsx (8.84 Ko)

à te lire pour la suite.

dhany

Bonjour,

@ dhany,

Je t'alerte une nouvelle fois sue l'usage des raccourcis macros que tu utilises.

Ctrl + D, comme Ctrl + E, Ctrl + L, et d'autes (Eriiic t'a fait la même remarque), sont à éviter.

Ils sont maintenant réservés avec les versions plus récentes d'Excel.

Les seuls disponibles sont Ctrl + J et Ctrl + M (info. MS).

Tu peux aussi utiliser d'autres racoourcis du type Ctrl + Maj + X.

https://support.office.com/fr-fr/article/Raccourcis-clavier-dans-Excel-pour-Windows-1798d9d5-842a-42b8-9c99-9b7213f0040f#PickTab=Office 2013

Ctrl+D

Fait appel à la commande Recopier vers le bas pour copier le contenu et le format de la première cellule de la plage sélectionnée dans les cellules en dessous.

Ctrl+E

Utilise le remplissage instantané pour reconnaître automatiquement les modèles dans les colonnes adjacentes et remplir la colonne active.

Ctrl+L

Affiche la boîte de dialogue Créer une table.

Bon weekend.

Cdlt.

oui, mais tout l'monde n'a pas la dernière version Excel 2016 ; la preuve :

screen

j'utilise les raccourcis clavier qui me plaisent bien, et le demandeur est libre de modifier la lettre que j'ai choisie comme bon lui semble ; alors je ne crois pas que tu doives te sentir obligé de parler de ça ; en plus, c'est loin d'être primordial : l'essentiel est le code VBA !

dhany

Re,

Il est clair que tu fais comme tu l'entends, mais ces raccourcis sont apparus dès Excel 2010.

On ne va pas polémiquer sur la chose.

Le sujet est clos.

Cdlt.

Bonjour messieurs,

Merci pour vos réponses et merci pour tes fichiers dhany. D'ailleurs:

3notes.xlsx (9.49 Ko)

; j'ai re-modifié les bornes avec les bonnes couleurs pour le Gauche 1. J'ai pris le temps de regarder comment tu avais codé la macro. J'ai quand même réussi à supprimer le jaune... Ahh, je vous assure que c'est une grosse victoire pour moi Je vais suivre ton modèle et essayer de reproduire ton travail sur la colonne du Gauche 1... Et si je n'y arrive encore pas, je regarderai ce que vous me proposerez plus tard. Encore merci!

Bonjour MiK-L-,

je te retourne ton fichier modifié :

Ctrl e ➯ travail effectué


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

Eh ben, c'est exactement ça, merci à toi Dhany. J'ai enfin quelque chose de concret grâce à ton travail (histoire de voir comment marche la partie code pour ce genre de manip).

Si j'ai d'autres questions, je n'hésiterai à revenir vous voir! Encore merci et bonne journée.

Bien cordialement.

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne continuation pour la suite de ton projet !

dhany

@MiK-L-

j'avais oublié une petite optimisation ; utilise plutôt le code VBA de ce fichier :

même utilisation ; ça fait le même travail, mais en comparant les 2 codes VBA,

tu pourras voir que ça utilise une seule boucle For au lieu de deux

le job est fait « en une seule passe », et donc c'est plus rapide.

c'est le gris clair pour les cellules vides qui est fait en même temps que le reste

au lieu d'être mis après-coup, en dernier.

dhany

Bonjour Dhany,

Je viens de regarder par rapport au premier excel. J'ai bien vu tes remarques. C'est toujours mieux de condenser un code du coup?

Sinon, je me posais une question... Est-il possible, avec un code, de lancer automatiquement cette macro? Par exemple, ça serait la cellule "A34" (dans laquelle est écrit "KM") qui déclencherait cette macro là. En fait, je verrai bien un truc du genre:

1) On ouvre dans un fichier Excel les résultats d'une mesure ;

2) Un UserForm s'ouvre automatiquement en reconnaissant le texte "KM" dans la cellule "A34" et nous propose une analyse de ces données là ;

3) On clic sur "OUI" et ça se lance ;

Je sais que mes collègues de travail seront amenés à utiliser ce même outil de mesure (dont moi-même dans mon futur poste). Le fichier Excel s'ouvrira exactement de la même manière. Et ce genre de code simplifiera énormément les choses (gain net de temps par exemple). C'est pour ça que j'avais réfléchi à faire ce genre de chose. Cependant, j'ai pu créer uniquement la UserForm (qui est carrément plus simple que tout le reste ). J'ai pu aussi lancer la UserForm mais j'ai pas réussi finalement à la lancer automatiquement et à lancer l'analyse une fois appuyer sur "OUI".

Si tu as une idée de comment faire, je suis vraiment preneur Dhany!

Encore merci de ta précieuse aide.

Bien cordialement.

Bonjour MiK-L-,

tu a écrit :

C'est toujours mieux de condenser un code du coup?

* si « condenser » a le sens de « réduire le nombre de lignes de code VBA », c'est pas forcément mieux si c'est au détriment de la lisibilité du code.

* si « condenser » a le sens d'« optimiser le code VBA », alors oui : c'est toujours valable ! et le travail fait par la macro en une seule boucle For est plus rapide qu'en deux boucles For successives.


pour ta nouvelle demande, je te propose d'abord ce fichier Excel :

à l'ouverture du classeur, ça exécute la macro Couleurs() sans aucune demande de confirmation.


ensuite, voici un deuxième fichier :

à l'ouverture du classeur, ça affiche une boîte de dialogue où tu peux choisir de lancer ou non l'Analyse.

(je crois que faire un formulaire juste pour une réponse oui / non n'est pas vraiment indispensable )


attention : dans les 2 fichiers, le raccourci clavier Ctrl e n'y est plus : je l'ai enlevé puisque c'est maintenant fait automatiquement ; donc pour le 2ème fichier, si tu as répondu non et que tu changes d'avis après-coup, tu peux lancer la macro Couleurs via Alt F8


à te lire pour avoir ton avis.

dhany

Bonsoir Dhany,

Merci pour ces deux exemples. Et oui, tu as raison sur un point, le fait d'ouvrir une fenêtre pour demander l'analyse n'est pas franchement utile puisque l'analyse sera faite de toutes façons

Par contre, j'ai pas réussi à appliquer ta deuxième macro (là où ça s'active automatiquement) pour toutes mes autres analyses... Ma question est la suivante: faut-il que je passe dans le menu des macros pour l'activer et ainsi faire apparaître les couleurs dans un autre fichier excel?

Parce que j'ai déplacé ton code dans mon classeur où il y a un "PERSONNAL" d'afficher puis j'ai simplement ouvert un autre fichier excel pour une autre analyse. Mais ça ne s'active pas tout seul. Très franchement, je pense que je fais des manips maladroites là-dessus vu que je ne suis pas du tout habituer à ça...

Encore merci pour ton aide! Et bonne soirée.

Bien cordialement.

Bonjour Mickaël,

tu a écrit :

oui, tu as raison sur un point, le fait d'ouvrir une fenêtre pour demander l'analyse n'est pas franchement utile puisque l'analyse sera faite de toutes façons

dans mon 1er fichier, pour que la macro Couleurs() soit exécutée automatiquement à l'ouverture du classeur, j'avais fait ceci :

screen

tu as mis la macro Couleurs() dans Personal.xlsb : ok, c'est très bien !

sauf erreur de ma part, à l'ouverture d'Excel, Personal.xlsb est chargé automatiquement, et donc tes macros personnelles sont disponibles de suite, y compris la sub Couleurs() ; reste plus qu'à la faire exécuter automatiquement par tes fichiers d'analyse ; pour cela, dans chacun d'eux, tu dois faire ce que j'ai fait sur ma copie d'écran ci-dessus.

dhany

Rechercher des sujets similaires à "macro type fichier"