Macro sélection de valeur selon 2 conditions

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 !

Sandrine123

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide pour une macro Excel.

J'ai un tableau de 28 colonnes (seules 2 colonnes nous intéresse => B et X) :

En colonne B, nous avons des numéros de dossiers. Chaque dossier est doublé.
En colonne X, nous avons une valeur numérique pour chaque dossier.

Le but de la macro serait de créer un nouvel onglet qui reprend le numéro de dossier et qui lui affecte sa valeur correspondante selon les conditions suivantes :

- Si la valeur du premier dossier est supérieure à 100, et que la moyenne entre les 2 valeurs ne dépasse pas 10% d'écart, on écrit la moyenne des deux sinon on supprime le dossier.

- Si la valeur du premier dossier est inférieure à 100, on calcule l'écart entre les 2 valeurs, si l'écart est supérieur à 10 on le supprime, si l'écart est inférieur ou égal à 10, on garde la première valeur.


J'ai créé un onglet avec le résultat à obtenir et les explications, ce sera plus clair.

Merci d'avance de votre aide.

Bonne journée.
 

Pièces jointes

Re : Macro sélection de valeur selon 2 conditions

Bonjour Sandrine123,

A priori une macro n'est pas nécessaire, formule en B2 de la feuille "Résultat" :

Code:
=SI(INDEX(Feuil1!X:X;2*(LIGNE()-1))>=100;SI(ABS(INDEX(Feuil1!X:X;2*(LIGNE()-1))-INDEX(Feuil1!X:X;1+2*(LIGNE()-1)))<=10%*(INDEX(Feuil1!X:X;2*(LIGNE()-1))+INDEX(Feuil1!X:X;1+2*(LIGNE()-1)));(INDEX(Feuil1!X:X;2*(LIGNE()-1))+INDEX(Feuil1!X:X;1+2*(LIGNE()-1)))/2;"S");SI(ABS(INDEX(Feuil1!X:X;2*(LIGNE()-1))-INDEX(Feuil1!X:X;1+2*(LIGNE()-1)))<=10;MAX(INDEX(Feuil1!X:X;2*(LIGNE()-1));INDEX(Feuil1!X:X;1+2*(LIGNE()-1)));"S"))
On crée une MFC en colonne A pour barrer les dossiers avec valeur "S".

On peut aussi masquer les lignes par filtrage des "S" sur la colonne B.

Fichier .xlsx joint.

Edit : en toute logique c'est la moyenne qui doit être >= 100 :

Code:
=SI((INDEX(Feuil1!X:X;2*(LIGNE()-1))+INDEX(Feuil1!X:X;1+2*(LIGNE()-1)))/2>=100;...
On pourrait aussi prendre le minimum :

Code:
=SI(MIN(INDEX(Feuil1!X:X;2*(LIGNE()-1));INDEX(Feuil1!X:X;1+2*(LIGNE()-1)))>=100;...

A+
 

Pièces jointes

Dernière édition:
Re : Macro sélection de valeur selon 2 conditions

Bonjour Sandrine123,

Avec les noms définis valeur1 valeur2 moyenne la formule en B2 est plus simple :

Code:
=SI(moyenne>=100;SI(ABS(valeur1-valeur2)/2<=10%*moyenne;moyenne;"S");SI(ABS(valeur1-valeur2)<=10;MAX(valeur1;valeur2);"S"))
Fichier (2).

Bonne journée.
 

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
10
Affichages
221
Réponses
5
Affichages
117
Réponses
12
Affichages
620
Réponses
9
Affichages
162
Retour