Identifier les niveaux de consolidation dans un plan

Résolu
saltemps Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
saltemps Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
nouveau sur ce forum, je cherche une solution dans excel 2003 pour identifier si une ligne d'un plan est une ligne de niveau consolidé ou bien une ligne "élémentaire". Je m'explique : je crée une arborescence à n niveaux. le niveau 1 consolide tous les sous-niveaux, les niveaux 2 peuvent être des niveaux élémentaires (pas de sous-niveau) ou bien des niveaux consolidant des niveaux 3, et ainsi de suite. Je cherche à identifier dans l'ensemble de mon arborescence les lignes terminales, celles qui ne consolident pas de sous-niveaux. En les sommant je dois retrouver mon total de niveau 1.
ça fait un moment que je cherche la formule ou la fonction VBA qui saura faire cela.
Alors merci d'avance pour votre aide
A voir également:

2 réponses

JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   859
 
Bonjour,

tu peux :
1) utiliser les fonctions Morefunc de Laurent Longre :=XLM.LIRE.CELLULE(28,A4,VRAI), =XLM.LIRE.CELLULE(30,A4,VRAI)

2) utiliser directement les anciennes fonctions d'Excel 4 : =LIRE.CELLULE(28,A4) et =LIRE.CELLULE(30,A4) en les positionnant dans des noms (tu crées 2 noms et tu y mets les formules). Tu utilises ensuite ces noms dans les formules qui t'intéressent.

3) écrire un peu de VBA avec une fonction dans le genre :
Function plan_level(vCell As Range)
Application.Volatile
plan_level = vCell.EntireRow.OutlineLevel
End Function

tu auras peut être besoin d'ajouter des macros évènementielles pour forcer le recalcul de ces valeurs.

cordialement
0
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   859
 
Pour 1) et 2) : j'ai laissé trainer des virgules dans mes fonctions.
En cas d'options régionales "France", il faut les remplacer par des points-virgules.

Dans les formules, j'ai choisi "A4". Ce qui veut dire que l'on s'intéresse à l'état de la ligne 4.

Tu trouveras la signification des paramètres 28 et 30 soit dans l'aide de Morefunc, soit sans le fichier d'aide macroxl97.hlp . Pour ce dernier, il te faudra peut-être le lecteur de fichier d'aide Windows6.1-KB917607-x86.msu.


Concernant spécifiquement le 2) : pour définir les noms, du fait qu'ils sont relatifs à la ligne, il faut se positionner d'abord sur le ligne 4 pour les définir et ne pas mettre de $ dans la référence.
Les noms ainsi définis ne seront utilisables de façon cohérente que dans des formules situées sur la ligne dont on évalue le niveau de plan.
0
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   859
 
et pour finir , un exemple : https://www.cjoint.com/?DBwmSpa4ZyF

certaines colonnes nécessitent morefunc.
0
saltemps Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Super JvDo ! Merci beaucoup pour ton aide, lasolution 2 est très simple et permettra de partager mes fichiers avec des personnes qui n'ont pas installé Morefunc.
Je cherchais la solution depuis un bon moment.
Merci encore
0