Extraire des données sous différentes conditions

Bonjour,

Nouveau sur le forum, je vous remercie par avance pour votre aide.

Dans une feuille j'ai en colonne des codes clients, des références de produits commandés et les quantités.

Chaque clients pouvant commander différents types de produits je peux donc avoir le même code client sur plusieurs lignes et en face les différentes références de produits. Je précise que le format de mon fichier est une extraction de logiciel que je ne peux pas changer.

Je cherche dans un premier temps à extraire les codes clients de ceux qui achètent à la fois les produits B* et les produits N*.

Le fichier joint est un exemple de quelques lignes.

Merci

29book1.xlsx (11.23 Ko)

Salut et bienvenue sur le Forum,

Ci-joint une solution possible.

Cordialement.

41book1-v1.xlsm (18.09 Ko)

Bonjour Yvouille et merci pour ta proposition.

J'ai essayé de comprendre ton code pour le modifier mais mes connaissances en VBA sont trop limitées.

Si je comprends bien, la condition de ton code est un OU (produit B* ou N*), ce qui revient à effacer les doublons puisque j'ai déjà filtré les clients achetant uniquement le produit B*ou N*.

Ce que je cherche à avoir c'est les clients ayant acheté le produit B* ET N*.

J'espère que je suis plus clair.

Merci beaucoup

Re-bonjour,

Tu avais été assez clair, mais je n’avais pas poussé mes tests assez loin.

Voici un nouveau code qui devrait répondre à ton attente.

Comme je ne sais pas si c’est important pour toi d’avoir le même ordre en ce qui concerne tes clients dans le résultat que dans les données de base, j’ai dû ajouter plusieurs passages afin que justement ce soit le même ordre. Si ça t’intéresse, je peux supprimer ces passages.

Lepeno a écrit :

Si je comprends bien, la condition de ton code est un OU (produit B* ou N*),

Non, pas vraiment. C'était un AND seul alors qu'il fallait un OR suivit de ce même AND. Dans la première ligne ci-dessous (malheureusement écrite sur le Forum avec un retour à la ligne), on ne fait que comparer certaines données afin - dans la deuxième ligne - de supprimer ou non la ligne contrôlée (donc la ligne correspondant à la variable i).

If Range("I" & i) <> Range("I" & i - 1) Or Range("I" & i) = Range("I" & i - 1) And Left(Range("J" & i), 1) = Left(Range("J" & i - 1), 1) Then

Range("I" & i & ":M" & i).Delete Shift:=xlUp

Amicalement.

34book1-v2.xlsm (18.23 Ko)

Bonjour Yvouille et un grand merci pour le code.

Je vais pourvoir maintenant l'intégrer dans ma feuille, il fonctionne parfaitement.

Merci encore et bon weekend.

Bonjour,

J'ai une nouvelle demande, sensiblement identique à la précédente mais la structure de mon fichier est différente.

En ligne les codes clients que je dois trier et en X, Y, Z les totaux des produits achetés en fonction de la période de commercialisation de ceux ci.

Ce que je veux c'est récupérer les codes des clients qui ont achetés le produit en X sans avoir précédemment achetés les produits en Y et Z. Je souhaite supprimer les lignes clients qui ont acheté ou Y ou Z pour et conserver l'historique des commandes de ceux qui n'ont acheté que X

J'ai trié à la main jusqu'à la ligne 53.

J'ai essayé de reprendre le code d'Yvouille mais je n'y comprends pas grand chose.

Merci pour votre aide.

Rechercher des sujets similaires à "extraire donnees differentes conditions"