[RESOLU] Macro RECHERCHEV en boucle

chicken13

XLDnaute Nouveau
Bonjour à toutes et à tous

Habituellement, j'arrive à me dépatouiller avec des infos à droite et à gauche sur ce forum, mais là : je sèche :confused: :mad:.

Voici mon problème (simplifié) :

Je dispose d'un fichier de trois colonnes (Référence, Lien Hiérarchique et Poste Origine) et des milliers de lignes.
Les objets traités peuvent être des OF, des NC ou des DERO. En partant des hypothèses suivantes :
- Une DERO dépend d'une NC qui dépend d'un OF qui dépend d'un POSTE​
- Cette "dépendance" est formalisée par le lien hiérarchique​
- Pour chaque OF un poste d'origine est renseigné​

Mon objectif réussir à écrire le POSTE ORIGINE en face les NC et DERO associées.

Ci-joint un fichier simplifié pour illustrer.

Merci d'avance pour le coup de pouce :p.

Cordialement,

chicken13
 

Pièces jointes

  • test.xlsx
    13.1 KB · Affichages: 59
  • test.xlsx
    13.1 KB · Affichages: 70
Dernière modification par un modérateur:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro RECHERCHEV en boucle

Bonjour chicken13 et bienvenue sur XLD :),

Un essai dans le fichier joint. Voir formule et définition du nom dynamique Tablo dans le fichier.

NB : à condition de n'avoir que quatre niveaux max -> DER, NC, OF et POSTE


Edit : petite correction dans la formule (sans doute due à une faute de frappe et une mauvaise recopie) ; il faut :

à la place de la formule en D2:
Code:
=SI(C2<>"";C2;SI(RECHERCHEV(B2;Tablo;3;0)<>"";RECHERCHEV(B2;Tablo;3;0);RECHERCHEV(RECHERCHEV(B2;Tablo;2;0);$A$2:$D$34;3;0)))

utilisez la formule suivante:

Code:
=SI(C2<>"";C2;SI(RECHERCHEV(B2;Tablo;3;0)<>"";RECHERCHEV(B2;Tablo;3;0);RECHERCHEV(RECHERCHEV(B2;Tablo;2;0);Tablo;3;0)))
 

Pièces jointes

  • chicken13- recherchev- v1.xlsx
    24 KB · Affichages: 62
  • chicken13- recherchev- v1 corrigé.xlsx
    23.5 KB · Affichages: 56
Dernière édition:

chicken13

XLDnaute Nouveau
Re : Macro RECHERCHEV en boucle

Bonjour mapomme et merci,

Le fichier que vous me proposez est très bien, il rempli parfaitement son rôle.
Cependant, si je peux trouver une solution sans création de nouvelle colonne ce serait le top.

L'objectif final est de récupérer un extract depuis une énorme base de données, de le coller dans un fichier excel, appuyer sur un bouton et que le trie se fasse "seul". C'est pour cette raison que je cherche à passer par une macro.

Néanmoins encore merci pour votre aide :D
 

gosselien

XLDnaute Barbatruc
Re : Macro RECHERCHEV en boucle

re chicken13, mapomme,

Tu peux masquer la colonne aussi :) et empêcher les modifications dedans par la protection des cellules excel :)

Tu entends quoi par "énorme base de données" ?

Si un grand nombre de lignes, (>50.000) il faudra passer par une macro :)

P.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro RECHERCHEV en boucle

Bonsoir chicken13, gosselien :),

Un essai via macro. Le code est dans le module de Feuil1.


  • Si on n'arrive pas à remonter jusqu'à un poste figurant en colonne C (juste après l'initialisation ou le collage des données dans votre cas propre), on affiche "orphelin"
  • il n'y a pas de vérification de paires de pères différentes. Ex : si sur une ligne on trouve en A,B le couple (NC10,OF4) et sur une autre ligne le couple (NC10,OF2) alors pas de message d'erreur -> c'est le dernier couple qui sera pris dans la hiérarchie
  • idem pour les couples (OFx, Postex)
 

Pièces jointes

  • chicken13- recherchev- v2.xlsm
    23.2 KB · Affichages: 66
Dernière édition:

chicken13

XLDnaute Nouveau
Re : Macro RECHERCHEV en boucle

Bonjour tout le monde,

Merci Mapomme : fichier testé est adapté. Il ne me reste plus qu'à ajouter les autres étapes du "traitement".
Cependant la base de ma macro est faite encore merci.

SUJET RESOLU.

A bientôt.

Chicken13
 

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof