Macro : Construction ligne hiérarchique par nom d'employé

roidurif

XLDnaute Occasionnel
Bonjour

Dans ce tableau, chaque employé dispose d'un seuil financier + d'un valideur hiérarchique.

Je souhaite à partir de ce tableau construire la ligne hiérarchique pour chacun des employés jusqu’à arriver au denier valideur.

Tout cela de maniere automatique via une macro

Je m’explique, voici exemple de résultat que j’aimerai obtenir :

Employé 1 => Seuil Employé 1 => Employé N+1 => Seuil Employé N+1 => Employé N+2 => Seuil Employé N+2 => Etc.
Employé 2 => Seuil Employé2 => Employé2 N+1 => Seuil Employé2 N+1 => Employé N+2 => Seuil Employé2 N+2 => Etc.
et....

Comment m'y prendre?

Merci pour votre aide
 

Fichiers joints

vgendron

XLDnaute Barbatruc
Re : Macro : Construction ligne hiérarchique par nom d'employé

Salut

une idée de principe: avec l'algorithme suivant

pour chaque matricule de la colonne A
Copier matricule, nom employé, fonction, hiérarchique, date Fin affectation
faire tant que faux
si hiérarchique existe dans colonne B alors
vrai
copier hierarchique trouvé en colonne B, colonne C, colonne D, colonne E
sinon faux
fin faire
next matricule..


remarque: pour chercher si le hiérarchique existe dans la liste des employés, le fait que tu rajoutes entre parenthèse une donnée ne va pas faciliter la tache: il vaudrait mieux faire une colonne spéciale pour ce nombre entre parenthèses.


dans ton exemple, le résultat à obtenir ne fait apparaitre que 5 lignes hierarchiques.. alors qu'il y a 9 employés..
c'est juste parce que tu n'es pas allé au bout de l'exemple ou il y a une raison particulière pour laquelle les matricules 1617 1623 1699 et 1622 n'ont pas le droit à leur ligne?
 

roidurif

XLDnaute Occasionnel
Re : Macro : Construction ligne hiérarchique par nom d'employé

Bonjour vgendro,

Merci pour ton explication.

Il n y a pas de raison particulière, c'est que je ne suis pas allé jusqu’ au bout de mon exemple, je me suis arrêté à la ligne 5 employés

Maintenant, il faut retranscrire ce que tu me dis en VBA. La difficulté est que je ne maitrise pas tout à fait le code ...
 

pyfux

XLDnaute Occasionnel
Re : Macro : Construction ligne hiérarchique par nom d'employé

Bonjour,

EDIT du 14/03/14:
Je suis bien conscient que cette solution est complexe, mais c'est un cas d'école et il me semble qu'elle est assez élégante.
J'ai modifié le fichier afin d'ajouter des commentaires dans mon code (et j'ai fait une petite optimisation).

En espérant que cela vous inspire.

A votre disposition si questions.


Bonne journée?
 

Fichiers joints

Dernière édition:

roidurif

XLDnaute Occasionnel
Re : Macro : Construction ligne hiérarchique par nom d'employé

Merci pour ton retour. Compliquer pour moi. Je ne comprend pas ces collections objets pour essayer de finaliser cette macro
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro : Construction ligne hiérarchique par nom d'employé

Bonsoir roidurif, vgendron, pyfux

Un essai avec des formules. Les commentaires des cellules indiquent comment les formules peuvent être recopiées.

Pour étendre le tableau vers le bas, sélectionner la dernière ligne (ici ligne 10) et recopier/tirer vers le bas.
 

Fichiers joints

Dernière édition:

roidurif

XLDnaute Occasionnel
Re : Macro : Construction ligne hiérarchique par nom d'employé

Bonjour merci pour vos retour mapomme et pyfux.

Avec les formules ça marche bien, mais ça rame trop sur 3000 lignes sous excel.
 

pyfux

XLDnaute Occasionnel
Re : Macro : Construction ligne hiérarchique par nom d'employé

Bonsoir,

Et avec mon bout de code VBA, quel est le temps de traitement?
 

roidurif

XLDnaute Occasionnel
Re : Macro : Construction ligne hiérarchique par nom d'employé

Bonjour,

Avec le bout de macro, les employés en jaune se sont pas repris dans l'onglet DATA colonne "Nom Employé (EMP)".

Malgré plusieurs recherche, je ne vois pas d'où peut venir le probleme.

Merci d'avance

cdt
 

Fichiers joints

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro : Construction ligne hiérarchique par nom d'employé

Bonsoir roidurif,

Un essai dans le fichier joint.

Le fonctionnement nécessite l'activation de la référence à "Microsoft Scripting Runtime". Pour cela:
.
  • Se placer dans l'éditeur VBA (touches Alt+F11)
  • Sélectionner le menu "Outils / Références..."
  • Dans la boîte de dialogue, chercher "Microsoft Scripting RunTime"
  • Cocher la case correspondante (si ce n'est pas déjà le cas) puis cliquer sur "OK"
 

Fichiers joints

Discussions similaires


Haut Bas