Macro mise en surbrillance

romss82

XLDnaute Nouveau
Bonjour à tous,

je ne suis vraiment pas fortiche en Macro et je cherche à mettre en surbrillance une ligne si 3 critère ne sont pas réunit.

je m'explique dans mon fichier joint, la feuille Base est mon document de référence.
la feuille DDE est mon document sur lequel je souhaite voir apparaitre mes lignes en surbrillances.

pour ce faire je définit dans ma feuille Base les colonnes C J et L comme un trio indissociable.
j'ai donc besoins de mettre en surbrillance dans la feuille DDE les lignes dans lesquelles je ne retrouve pas ce trio.
tout en sachant que dans la feuille Base la colonne C possède un nombre à 8 chiffre et je ne souhaite me baser que sur les 6 premier en partant de la gauche.

je vous transmet le fichier test afin d'étayer mes propos


merci à tous pour votre aide
 

Pièces jointes

  • Classeur1.xlsm
    20.1 KB · Affichages: 64

romss82

XLDnaute Nouveau
Bonjour à tous,

Une MFC peut faire cela

JHA
merci JHA

j'ai tester sur le fichier que tu m'a envoyé est c'est nickel

par contre dès que je l'intègre à mes feuilles de travail et comme j'ai 55000 lignes pour la feuilles base et 25000 lignes pour la feuille DDE, excel rame énormément et ne me rends la main que 10 minutes après !!!!

n'est-il pas possible d'avoir la même chose avec une macro qui tourne plus vite

merci encore de ta réponse
 

romss82

XLDnaute Nouveau
merci JHA

quelqu'un peut il donc retranscrire la MFC de JHA en macro

ci dessous la MFC de JHA

=SOMMEPROD(((GAUCHE(Base!$C$3:$C$21;6)*1)=$C2)*(Base!$J$3:$J$21=$F2)*(Base!$L$3:$L$21=$G2))=0

mfc1.jpg
mfc2.jpg
 

romss82

XLDnaute Nouveau
petite question pour JHA

j'ai essayé d'adapter ta MFC pour rajouter une foonction DROITE
=SOMMEPROD(((GAUCHE(Base!$C$3:$C$21;6)*1)=$C2)*(Base!$J$3:$J$21=$F2)*(DROITE(Base!$L$3:$L$21;4)*1=$G2))=0

mais je ne comprend pas il ne veux pas me prendre que les 4 caractère de droite de la feuille BASE et de la colonne L
peux tu me donner un coup de main
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Je ne comprends pas le =droite("machine 1";4)*1 soit "ne 1"*1 est égal à une erreur.
Si tu ne veux pas l'intitulé "machine", tu peux essayer cela:
Code:
=SOMMEPROD(((GAUCHE(Base!$C$3:$C$21;6)*1)=$C2)*(Base!$J$3:$J$21=$F2)*((DROITE(Base!$L$3:$L$21;2)*1)=(DROITE($G2;2)*1)))=0

ou
Code:
=SOMMEPROD(((GAUCHE(Base!$C$3:$C$21;6)*1)=$C2)*(Base!$J$3:$J$21=$F2)*(DROITE(Base!$L$3:$L$21;4)=DROITE($G2;4)))=0

JHA
 

Staple1600

XLDnaute Barbatruc
Bonjour à tous

Moi je ne comprends pas les résultats de la feuille DDE du premier fichier exemple
Par exemple d'où sort le 35 dans la colonne Phase
Il n'y a pas de valeur 35 dans la feuille Base ni de colonne Phase.

Sinon pourquoi ne pas utiliser le filtre élaboré?

PS: Il se peut aussi que j'ai compris la question de travers ;)
 

romss82

XLDnaute Nouveau
Bonjour à tous,

Je ne comprends pas le =droite("machine 1";4)*1 soit "ne 1"*1 est égal à une erreur.
Si tu ne veux pas l'intitulé "machine", tu peux essayer cela:
Code:
=SOMMEPROD(((GAUCHE(Base!$C$3:$C$21;6)*1)=$C2)*(Base!$J$3:$J$21=$F2)*((DROITE(Base!$L$3:$L$21;2)*1)=(DROITE($G2;2)*1)))=0

ou
Code:
=SOMMEPROD(((GAUCHE(Base!$C$3:$C$21;6)*1)=$C2)*(Base!$J$3:$J$21=$F2)*(DROITE(Base!$L$3:$L$21;4)=DROITE($G2;4)))=0

JHA
bonjour JHA

j'ai testé tes deux MFC sur mon fichier d'origine mais ça ne fonctionne pas

pour ce faire je te joins mon fichier afin que tu puisse te rendre compte de celui-ci

merci encore pour ton aide

cdlt
 

Pièces jointes

  • Classeur1.xlsx
    5.1 MB · Affichages: 59

Discussions similaires

Réponses
3
Affichages
354

Statistiques des forums

Discussions
312 294
Messages
2 086 928
Membres
103 404
dernier inscrit
sultan87