Microsoft 365 Suppression des doublons d'image

elmo86

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je suis entrain de réaliser un tableur pour réaliser des documents simplifiés. Les documents en question sont des fiches de données et de sécurité de produits chimiques mais les FDS sont difficiles à la lecture donc je souhaite les simplifier.

J'ai un soucis dans la gestion des doublons de mes pictogrammes de produits chimiques. En effet j'ai réussi à gérer leur affichage (dans l'onglet "FDS_simplifiée") en fonction du contenu de la cellule de référence mais je n'arrive pas à faire en sorte que le pictogramme ne s'affiche qu'une fois.

Je vous joint le fichier.

En vous remerciant par avance,

Cordialement.
 

Pièces jointes

  • FDS Simplifiée.xlsx
    273 KB · Affichages: 4
Solution
Bonjour à tous,

Modification de la formule

VB:
=SIERREUR(INDEX(Feuil2!$A$10:$A$18;PETITE.VALEUR(SI(ESTTEXTE(DECALER(Feuil2!$A$9;1;EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0);9));LIGNE(Feuil2!$A$10:$A$18)-9);1));0)

JHA

JHA

XLDnaute Barbatruc
Bonjour à tous,

Changement des formules pour la recherche des pictogrammes, en "C5".
VB:
=SIERREUR(INDEX(Feuil2!$A$10:$A$18;PETITE.VALEUR(SI(ESTTEXTE(DECALER(Feuil2!$A$9;1;EQUIV(FDS_simplifée!$J$1;Feuil2!$C$1:$H$1;0)+1;9));LIGNE(Feuil2!$A$10:$A$18)-9);1));0)

JHA
 

Pièces jointes

  • FDS Simplifiée.xlsx
    379.7 KB · Affichages: 5

elmo86

XLDnaute Nouveau
Bonjour,

Tout d'abord JHA merci pour ta proposition. J'ai regardé le fichier mais en changeant de produit dans l'onglet "FDS_simplifiée" notamment avec le produit C la gestion des images ne fonctionne pas. En effet le produit C n'a aucun pictogramme or sur l'onglet "FDS_simplifiée" il en apparaît 5.

J'espère que je me suis fait comprendre.

Cordialement
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Modification de la formule

VB:
=SIERREUR(INDEX(Feuil2!$A$10:$A$18;PETITE.VALEUR(SI(ESTTEXTE(DECALER(Feuil2!$A$9;1;EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0);9));LIGNE(Feuil2!$A$10:$A$18)-9);1));0)

JHA
 

Pièces jointes

  • FDS Simplifiée.xlsx
    373.7 KB · Affichages: 3

JHA

XLDnaute Barbatruc
Bonjour @Gégé-45550 ;)

Avec la version 2019, je n'ai pas de pictogramme pour les produits A, B et D.
Pour info j'ai fait un "suppr" sur toutes les cellules vides de l'onglet "Feuil2" de le plage "B10:H18" afin de m'assurer qu'il n'y ai rien dans ces cellules.

As-tu regardé les formules en colonne "V", elles donnent des "0" sur ces produits?

JHA
 

Gégé-45550

XLDnaute Accro
Bonjour @Gégé-45550 ;)

Avec la version 2019, je n'ai pas de pictogramme pour les produits A, B et D.
Pour info j'ai fait un "suppr" sur toutes les cellules vides de l'onglet "Feuil2" de le plage "B10:H18" afin de m'assurer qu'il n'y ai rien dans ces cellules.

As-tu regardé les formules en colonne "V", elles donnent des "0" sur ces produits?

JHA
Bonjour JHA et encore bravo pour cette magnifique formule.
J'ai supprimé mon message précédent car j'ai constaté qu'il était inutile mais je l'avais écrit dans un premier temps après avoir connu un phénomène bizarre.
Je m'explique :
Lorsque tu as posté ta deuxième formule (corrective), je n'ai pas re-téléchargé le fichier que tu avais joint, mais j'ai simplement corrigé la formule dans le dossier original et là ... 5 pictos ! ... d'où ma proposition de modification, qui, au passage, fonctionne aussi mais complique inutilement.
Après avoir posté, j'ai quand même téléchargé ton deuxième fichier ... qui marche nickel.
Je n'ai pas cherché à comprendre davantage, j'ai supprimé mon post.
Encore respect pour cette belle formule !
 

elmo86

XLDnaute Nouveau
Bonjour à tous,

Modification de la formule

VB:
=SIERREUR(INDEX(Feuil2!$A$10:$A$18;PETITE.VALEUR(SI(ESTTEXTE(DECALER(Feuil2!$A$9;1;EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0);9));LIGNE(Feuil2!$A$10:$A$18)-9);1));0)

JHA
Bonjour,

Je tiens à vous remercier pour la solution proposée, c'est parfait. Juste pour ma culture personnelle, pouvez-vous m'expliquer la construction de la formule pour que je puisse si besoin n'en inspirer pour de prochains travaux?

En vous remerciant par avance,

Cordialement.
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Concernant la formule:
VB:
=SIERREUR(INDEX(Feuil2!$A$10:$A$18;PETITE.VALEUR(SI(ESTTEXTE(DECALER(Feuil2!$A$9;1;EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0);9));LIGNE(Feuil2!$A$10:$A$18)-9);1));0)

Donc on utilise la fonction "index" pour retourner les datas de la plage "Feuil2!$A$10:$A$18" suivant les données des colonnes "Feuil2!$B$10:$H$18".
On commence par rechercher la colonne de recherche avec la fonction "DECALER" suivant le critère en "FDS_simplifée!$J$1"

DECALER(réf, lignes, colonnes, [hauteur], [largeur])

DECALER(Feuil2!$A$9;1;EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0);9)
Ref Feuil2!$A$9
ligne on descent d'une ligne "1"
colonne EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0) on recherche le critère sur la plage "Feuil2!$B$1:$H$1"
Hauteur cette plage à 9 lignes.
Exemple pour le produit "C" cela renvoie "{0;0;"Corrosif";0;"Environnement";0;0;0;0}"
Cette formule décaler est complété par la fonction texte() cela renvoie:
"{FAUX;FAUX;VRAI;FAUX;VRAI;FAUX;FAUX;FAUX;FAUX}"
maintenant la plage est définie, on peut désormais rechercher la première valeur "VRAI" puis en donner la position avec petite.valeur.
PETITE.VALEUR({FAUX;FAUX;3;FAUX;5;FAUX;FAUX;FAUX;FAUX};1)) soit la 3ème ligne.
ca qui revient à INDEX(Feuil2!$A$10:$A$18;3)
si il n'y a plus de "vrai", la fonction "si" retournera "0"

Pas simple d'expliquer cette formule matricielle mais j'espère que cela te t'aidera.


JHA
 

elmo86

XLDnaute Nouveau
Bonjour à tous,

Concernant la formule:
VB:
=SIERREUR(INDEX(Feuil2!$A$10:$A$18;PETITE.VALEUR(SI(ESTTEXTE(DECALER(Feuil2!$A$9;1;EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0);9));LIGNE(Feuil2!$A$10:$A$18)-9);1));0)

Donc on utilise la fonction "index" pour retourner les datas de la plage "Feuil2!$A$10:$A$18" suivant les données des colonnes "Feuil2!$B$10:$H$18".
On commence par rechercher la colonne de recherche avec la fonction "DECALER" suivant le critère en "FDS_simplifée!$J$1"

DECALER(réf, lignes, colonnes, [hauteur], [largeur])

DECALER(Feuil2!$A$9;1;EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0);9)
Ref Feuil2!$A$9
ligne on descent d'une ligne "1"
colonne EQUIV(FDS_simplifée!$J$1;Feuil2!$B$1:$H$1;0) on recherche le critère sur la plage "Feuil2!$B$1:$H$1"
Hauteur cette plage à 9 lignes.
Exemple pour le produit "C" cela renvoie "{0;0;"Corrosif";0;"Environnement";0;0;0;0}"
Cette formule décaler est complété par la fonction texte() cela renvoie:
"{FAUX;FAUX;VRAI;FAUX;VRAI;FAUX;FAUX;FAUX;FAUX}"
maintenant la plage est définie, on peut désormais rechercher la première valeur "VRAI" puis en donner la position avec petite.valeur.
PETITE.VALEUR({FAUX;FAUX;3;FAUX;5;FAUX;FAUX;FAUX;FAUX};1)) soit la 3ème ligne.
ca qui revient à INDEX(Feuil2!$A$10:$A$18;3)
si il n'y a plus de "vrai", la fonction "si" retournera "0"

Pas simple d'expliquer cette formule matricielle mais j'espère que cela te t'aidera.


JHA
Merci infiniment, je pense que j'ai compris la construction.

Cordialement
 

Discussions similaires

Réponses
9
Affichages
154

Statistiques des forums

Discussions
312 180
Messages
2 085 995
Membres
103 082
dernier inscrit
adri77