Macro pour message bloquant si résultat de formule faux

Estelleb

XLDnaute Nouveau
Bonjour,

Je ne connais les macros qu'en en créant avec le bouton d'enregistrement, donc en gros pour des mises en forme, et encore c'est uniquement sans aucun code. Autant dire que je n'y connais rien.

Mon but est que les matricules, noms et prénoms soient cohérents d'un onglet à l'autre. Voici comment est disposée la chose :

- Sur l'onglet Feuil1 : en colonne B des matricules, en colonne C des noms, en colonne D des prénoms et en colonne AB le concatener des 3.​
- Sur l'onglet Feuil2, j'ai la même chose : colonne B matricules, colonne C noms, colonne D prénoms. En colonne K un concatener des 3 et en colonne L la formule suivante :​
=SI(ET(B3="";C3="");"";SI(ESTERREUR(RECHERCHEV(K3;salariés!AB:AB;1;FAUX));" FAUX";""))​
- Dans cette même colonne L, de L3 à L1000, j'ai une mise en forme conditionnelle mettant la case en rouge quand la valeur de la cellule est =" FAUX".​

Le tout marche nikel.

Information peut-être importante, je ne sais pas : les colonnes B,C et D de chaque onglet seront remplies par des copiés collés. Les colonnes AB de la Feuil1 et K et L de la Feuil2 seront masquées afin que l'utilisateur n'ait accès qu'aux colonnes qu'il doit remplir. De plus, il y aura aussi 3 macros :
- j'ai l'intention de verrouiller les colonnes et lignes dont l'utilisateur n'a pas besoin (ça je ne sais pas faire)​
- de créer une macro de champs obligatoires à remplir (de type si ici c'est rempli, là ça doit être rempli), sur chacun des onglets. Ca j'ai trouvé le code sur un forum, mais pas encore testé.​
- une macro de mise en forme, la seule macro que je sais faire (type la personne qui doit ensuite traiter les données appui sur un bouton une fois que le fichier est rempli pour que les colonnes dont elle a besoin apparaissent).​

Revenons-en à nos Feuil1 et Feuil2. Ce que j'aimerai, c'est que quand le résultat de la colonne L de la Feuil2 est =" FAUX", ce soit un élément bloquant et que l'utilisateur soit obligé de corriger et ne puisse pas enregistrer son fichier sans avoir corrigé l'erreur. Le top serait que ça lui dise à quelle(s) ligne(s) il y a une erreur. Idéalement, les macros doivent être compatibles quelle que soit la version d'excel utilisée.

J'ai mis une pièce jointe pour illustrer. J'espère que je suis claire. Quelqu'un a une idée ?
 

Pièces jointes

  • PROJET1.xls
    270.5 KB · Affichages: 59
  • PROJET1.xls
    270.5 KB · Affichages: 62
  • PROJET1.xls
    270.5 KB · Affichages: 64

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro pour message bloquant si résultat de formule faux

Bonjour Estelle, et bienvenue sur le forum
Ce que j'aimerai, c'est que quand le résultat de la colonne L de la Feuil2 est =" FAUX", ce soit un élément bloquant et que l'utilisateur soit obligé de corriger et ne puisse pas enregistrer son fichier sans avoir corrigé l'erreur. Le top serait que ça lui dise à quelle(s) ligne(s) il y a une erreur.
voilà, c'est fait
ton fichier en retour

à+
Philippe
 

Pièces jointes

  • 111.xls
    49 KB · Affichages: 58
  • 111.xls
    49 KB · Affichages: 61
  • 111.xls
    49 KB · Affichages: 65

Estelleb

XLDnaute Nouveau
Re : Macro pour message bloquant si résultat de formule faux

Merci phlaurent55, c'est exactement ça !

Je l'ai mis dans mon fichier, mais ça ne marche pas. Quelle étape ai-je ratée ? J'ai fais comme toi la modif en supprimant mes espaces avant "FAUX". Je suis allée dans Outils > Macro > Visual Basic Editor, j'ai double cliqué sur la feuil2 et j'ai collé ton code, puis j'ai renommé "Feuil2" car ce n'est pas le nom de l'onglet dans mon fichier, et j'ai rajouté un petit texte avant "il subsiste des erreurs à la ligne", puis j'ai enregistré visual basic editor et j'ai aussi enregistré mon fichier.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro pour message bloquant si résultat de formule faux

Re,
Je suis allée dans Outils > Macro > Visual Basic Editor, j'ai double cliqué sur la feuil2 et j'ai collé ton code
reprends mon fichier et tu constateras que le code est dans ThisWorkbook; si tu le mets dans une feuille il ne fonctionnera pas
puis j'ai renommé "Feuil2" car ce n'est pas le nom de l'onglet dans mon fichier
as-tu également changé ceci:
With Sheets("Feuil2")
dans les deux parties du code

à+
Philippe
 

Discussions similaires

Statistiques des forums

Discussions
312 025
Messages
2 084 741
Membres
102 648
dernier inscrit
radhwane taibi