Microsoft 365 Bon courage, c'est simple mais complexe à la fois :o)

  • Initiateur de la discussion Initiateur de la discussion dvialla
  • Date de début Date de début

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 !

dvialla

XLDnaute Nouveau
Bonjour,

Je vais essayer d'expliquer simplement quel est mon besoin que je suis certains beaucoup d'entre vous pourront résoudre.
J'ai un énorme tableau (que j'ai simplifié) en pièce jointe pour faciliter l'explication.

Je cherche a tester pour chaque ligne de la colonne F si je dois contrôler la ref ...

Ce contrôle se fait sous condition :
- Si la criticité de la pièce est 1 :
Si il y les trois dernières valeurs de colonne sont "oui", afficher en cellule F de la ligne "Ne pas contrôler"
Si il y la dernière valeur de colonne est " Pas contrôlé", afficher en cellule F de la ligne "Ne pas contrôler"
Si il y les deux dernières valeurs de colonne est " Pas contrôlé", afficher en cellule F de la ligne "Ne pas contrôler"
Sinon "A contrôler"
- Si la criticité de la pièce est 2,
Si il y les deux dernières valeurs de colonne sont "oui", afficher en cellule F de la ligne "Ne pas contrôler"
Si il y la dernière valeur de colonne est " Pas contrôlé", afficher en cellule F de la ligne "Ne pas contrôler"
Sinon "A contrôler"

Une fois que j'aurais compris la routine et la gymnastique de VBA sur ces deux exemples, je pourrais créer d'autres criticités et adapter les règles ...

Ce remplissage peut être fait en appuyant sur un bouton lié à une macro à l'ouvertue du fichier par exemple.

Deuxième étape pour ceux que ca interresse. il me faudrait ensuite, en fonction de la réponse en colonne F, en cliquant sur la cellule (F11,F12,F13,...) que si :
- il y a "Ne pas contrôler", mettre dans la ligne de la colonne du jour "Pas contrôlé"
- il y a "A contrôler", aller vers une lien hypertexte que je mettrai sans doute dans la colonne C de chaque ligne (qui sera donc fonction de la ref)


Un grand, énorme merci.

Damien
 

Pièces jointes

Bonjour dvialla,


Une seule condition (la 1ère) suffit, non ?

A+
Bonjour,
Je pense qu'elle ne suffit pas car si on reste sur une seule itération "pas contrôlé" alors il y aura toujours marquer "ne pas contrôler". Le but est que s'il y a de suite 3 "pas contrôlé", il faille contrôler ...
Je ne sais pas si est claire. Par contre on peut réunir les deux conditions avec un inférieur ou égal je pense
 
Je maintiens ce que j'ai dit au post #2, d'ailleurs pour la criticité 2 vous n'avez pas fait l'erreur.

Voyez le fichier joint et cette formule en F11 :
Code:
=SI((NB.SI(DECALER(G11;;EQUIV("z";DECALER(G11;;;;COLONNES(11:11)-6))-1;;-2-(E11=1));"oui")=2+(E11=1))+(RECHERCHE("z";DECALER(G11;;;;COLONNES(11:11)-6))="Pas contrôlé");"Ne pas contrôler";"A contrôler")
Avec cette méthode pas besoin de VBA même s'il y a plus de criticités.

Bonjour Thierry.
 

Pièces jointes

Bonjour Job75,

Sacrée formule ! Moi je ne sais pas faire !

Au moins mon fichier peut servir à comparer :
VBA :
1589541229620.png

Formule :
1589541249848.png


Bon appétit
@+Thierry
 
Je maintiens ce que j'ai dit au post #2, d'ailleurs pour la criticité 2 vous n'avez pas fait l'erreur.

Voyez le fichier joint et cette formule en F11 :
Code:
=SI((NB.SI(DECALER(G11;;EQUIV("z";DECALER(G11;;;;COLONNES(11:11)-6))-1;;-2-(E11=1));"oui")=2+(E11=1))+(RECHERCHE("z";DECALER(G11;;;;COLONNES(11:11)-6))="Pas contrôlé");"Ne pas contrôler";"A contrôler")
Avec cette méthode pas besoin de VBA même s'il y a plus de criticités.

Bonjour Thierry.
OMG
Merci bcp thierry. Moi qui me disait "Damien si tu vois la formule, tu seras l'adapter pour créer d'autres cas ... " Je n'y comprends rien.
Par contre, le défaut que je vois et que je vais essayer de résoudre, c'est que s'il y a 2 fois "Pas contrôlé", il me marquer "Ne pas contrôler" alors qu'il devrait marquer "A controler".
En fait dans ta formule à partir du moment où il trouve un "pas controlé", on ne controle plus jamais la piece.
Je vais prendre un dolipran et je vais essayer de comprendre

Encore merci
 
Je maintiens ce que j'ai dit au post #2, d'ailleurs pour la criticité 2 vous n'avez pas fait l'erreur.

Voyez le fichier joint et cette formule en F11 :
Code:
=SI((NB.SI(DECALER(G11;;EQUIV("z";DECALER(G11;;;;COLONNES(11:11)-6))-1;;-2-(E11=1));"oui")=2+(E11=1))+(RECHERCHE("z";DECALER(G11;;;;COLONNES(11:11)-6))="Pas contrôlé");"Ne pas contrôler";"A contrôler")
Avec cette méthode pas besoin de VBA même s'il y a plus de criticités.

Bonjour Thierry.
Salut Thierry,
Merci beaucoup, c'est un excellent boulot que je garde sous le coude (et que je vais vérifier) si jamais j'ai bcp de criticité à rajouter et que je ne comprends pas la formule de Thierry au point de l'adapter, vba est plus simple pour moi que la formule.
Encore merci
 
Je maintiens ce que j'ai dit au post #2, d'ailleurs pour la criticité 2 vous n'avez pas fait l'erreur.

Voyez le fichier joint et cette formule en F11 :
Code:
=SI((NB.SI(DECALER(G11;;EQUIV("z";DECALER(G11;;;;COLONNES(11:11)-6))-1;;-2-(E11=1));"oui")=2+(E11=1))+(RECHERCHE("z";DECALER(G11;;;;COLONNES(11:11)-6))="Pas contrôlé");"Ne pas contrôler";"A contrôler")
Avec cette méthode pas besoin de VBA même s'il y a plus de criticités.

Bonjour Thierry.
Autre petit truc Thierry, j'essaie de tester ... si j'ai "oui", une blanc et 2 "oui", il ne voit pas cela comme trois "oui" de suite ... J'ai peut être omis de préciser que les blancs ne comptaient pas ... Je pense que ca va complexifier la choses et peut être passer sous VBA ?
 
Bonjour @dvialla , @job75

Un premier jet un peu "alembiqué" LoL 😉, on doit pouvoir optimiser ...

Mais ca à l'air de le faire...
@+Thierry
Je me suis penché un peu sur ton VBA qui n'est pas simple non plus ...
Sii on mets trois fois de suite "Pas contrôlé", il ne propose toujours pas de contrôler la pièce alors qu'il faudrait qu'après un ou deux "Pas contrôlé", en fonction de la criticité, il me dise de contrôler la pièce car je ne peux pas me permettre de ne pas contrôler la pièce deux ou trois arrivages de suite.
 
Re bonjour @dvialla , Job75, le Forum

Ne confonds pas tout, moi je n'ai pas proposé de formule, je n'en suis pas capable !

Pour ta dernière demande, oui avec VBA c'est assez flexible, et je compte bien les occurrences des "derniers" que ce soit des "oui", des "non" ou des "pas contrôlé", et j'gnore les blancs...

Pour ta gouverne c'est toi qui maitrisera ceci, c'est dans cette partie :
VB:
ElseIf MyOui(UBound(MyOui) - 1) = "Pas contrôlé" And MyOui(UBound(MyOui) - 2) = "Pas contrôlé" And MyOui(UBound(MyOui) - 3) = "Pas contrôlé" Then 'Règle des trois "Pas contrôlé"
  Cell.Offset(0, 1) = "A contrôler d'urgence !"

Je te laisse voir
@+Thierry
 

Pièces jointes

Formule plus complète en F11 de ce fichier (2) au cas où l'on insèrerait des colonnes entre F et G :
Code:
=SI((NB.SI(DECALER(F11;;MAX(EQUIV("z";DECALER(F11;;1;;COLONNES(11:11)-COLONNE()));2+(E11=1));;-2-(E11=1));"oui")=2+(E11=1))+(RECHERCHE("z";DECALER(F11;;1;;COLONNES(11:11)-COLONNE()))="Pas contrôlé");"Ne pas contrôler";"A contrôler")
La fonction MAX évite les références circulaires s'il n'y a pas de textes après G ou H.
 

Pièces jointes

- 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

Discussions similaires

Réponses
2
Affichages
153
Réponses
25
Affichages
605
Réponses
1
Affichages
132
Réponses
6
Affichages
208
Réponses
9
Affichages
387
Retour