Problème Excel – Numérotation automatique hiérarchique

Bonjour à tous,

Je suis un amateur d'excel, j'aime bien bricoler mais cela reste basique et j'ai besoin d'avis de vrais experts. ChatGPT est sympa mais je n'y arrive pas encore :)

Je dois adapter un tableau Excel existant servant de compte-rendu de chantier (avec historique), structuré ligne par ligne avec différents niveaux hiérarchiques, comme dans un sommaire Word :

Niveau 1 → Mandataire / Mandataire fini

Niveau 2 → Titre 1 / Titre 1 fini

Niveau 3 → Titre 2 / Titre 2 fini

Niveau 4 → Nouveau, En cours, Important (et leurs versions "fini")

Le niveau est défini par une colonne "Style" avec une liste déroulante.

Le texte du style peut changer au fil du temps, mais le niveau reste le même → il ne faut pas se baser sur le texte, mais bien sur le niveau associé.

Objectif de la numérotation :

Les niveaux 1 à 3 doivent avoir une numérotation hiérarchique du type :

1.0 → Mandataire

1.1 → Titre 1

1.1.1 → Titre 2

Les éléments de niveau 4 doivent avoir une numérotation locale (ex : 1, 2, 3), qui recommence à 1 à chaque nouveau parent (que ce soit niveau 1, 2 ou 3).

Ils ne doivent pas afficher la numérotation hiérarchique complète (1.1.1.1), juste un numéro sous leur parent.

Contraintes :

Je veux pouvoir ajouter des lignes n'importe où sans casser les formules ou la logique ou la mise en forme conditionnel.

La numérotation doit inclure les éléments "fini" pour garder l’historique qui sont masqué grâce à une colonne "caché" et filtrée.

Je cherche une solution robuste et maintenable, sans VBA

Vous trouverez en annexe, le document de base.

Dans l'onglet "Généralité", la version actuelle fonctionnel mais on doit en permanence changer les formules.

Dans l'onglet "PV", la version en cours de modification avec ChatGPT mais je n'arrive pas à valider ses formules, par exemple : Colonne : N° Titre 1

=SI([@Niveau source]<>2;"";INDEX([N° Mandataire];MAX(FILTRE(LIGNE([Niveau source]);([Niveau source]=1)*(LIGNE()<LIGNE([@Niveau source])))))&"."&NB.SI.ENS([Niveau source];2;LIGNE([Niveau source]);"<="&LIGNE()))

Je vous remercie par avance de vos lumières et orientations et reste à disposition en cas de compléments.

Note : je suis sur excel 365 français (suisse), avec ; comme séparateur.

Edit 13h52 : Je précise que c'est un ancien fichier et que c'est un peu le chenis dedans. Je l'ai gardé pour conserver les mises en formes conditionnels mais c'est le gros désordre, il faudra que je vire tout (une astuce pour cela d'ailleurs ? Repartir sur un fichier vierge ?).

Tilloutze

Bonjour,

Pourriez-vous partager un fichier avec le résultat que vous voulez obtenir ? Car si j'ai bien compris vous voulez une numérotation automatique en fonction de la colonne H, mais je ne sais pas : si la formule en J fait ce que vous voulez ?

S'il faut traiter les colonnes K:O et si oui, comment ?

Du coup un petit exemple sur par exemple 2 "gros groupes" serait pratique. Merci.

Oui il y a beaucoup et peut d'information dans mon message :)

Dans l'onglet Généralité, il y a la version actuelle du document que l'on utilise mais avec une numérotation peu efficace (uniquement les n° de chapitre sont utiles).

Dans l'onglet PV, il s'agit de ma version de travail (en cours d'amélioration avec Chat GPT) donc pas du tout aboutie, il s'agissait d'un test.

C'est pour cela que je sollicite vos idées sur ce sujet.

Et que peu importe ou j'ajoute une ligne la numérotation ne change pas. (en principe seul les descriptions de niveau 4 devraient être rajoutée pas la suite)

Je souhaite utiliser excel car je peux facilement "caché" les descriptions terminées avec un filtre sous word ce serait impossible.

Ce que je souhaiterais :

1.0 = Un titre (Mandataire) = niveau 1  
  1.1 = Un chapitre (Titre 1) = niveau 2  
    1 = Une description (niveau 4)  

2.0 = Un titre (Mandataire) = niveau 1  
  2.1 = Un chapitre (Titre 1) = niveau 2  
    2.1.1 = Un sous-chapitre (Titre 2) = niveau 3  
      1 = Une description (niveau 4)  
      2 = Une description (niveau 4)  
      3 = Une description (niveau 4)  

  2.2 = Un chapitre (Titre 1) = niveau 2  
    2.2.1 = Un sous-chapitre (Titre 2) = niveau 3  
      1 = Une description (niveau 4)  
      2 = Une description (niveau 4)  

  2.3 = Un chapitre (Titre 1) = niveau 2  
    2.3.1 = Un sous-chapitre (Titre 2) = niveau 3  
      1 = Une description (niveau 4)  
      2 = Une description (niveau 4)  
      3 = Une description (niveau 4)  

3.0 = Un titre (Mandataire) = niveau 1  
  3.1 = Un chapitre (Titre 1) = niveau 2  
    3.1.1 = Un sous-chapitre (Titre 2) = niveau 3  
      1 = Une description (niveau 4)
image

En complément ci-dessus, un visuel de mon PV. A gauche la numérotation que je souhaite réinitialisé. A droite la hiérarchie des niveaux.

En gris à gauche, les formules actuelles qui ne sont pas optimal pour la numérotation...Je cherche un moyen efficace qui permet l'ajout de ligne facilement sans que les formules ne sautent.

Ok, donc pour confirmer autrefois la numérotation était manuelle et l'objectif est de la rendre automatique ?

Ci-joint une proposition, en utilisant votre feuille "liste".

Salut Saboh, merci pour ta proposition, cependant, la numérotation principale qui m'intéresse est celle de la colonne A, hors ta proposition ne travail que les colonnes de références J-K-L-M mais ne semble pas 100% opérationnel (pas de numéro sur le niveau 4).

En effet autrefois (onglet généralité) était "manuel" ou semi-automatique. Aujourd'hui il faudrait le rendre automatique.

Ah oui d'accord. Alors une formule unique en A2 est possible :

=SIERREUR(
JOINDRE.TEXTE(
  "."; 0; PRENDRE(
    REDUCE(
      ASSEMB.H(0; 0; 0; 0);
      $J$2:J2;
      LAMBDA(acc; v;
        ASSEMB.H(
          INDEX(acc; 1) * (v > 0) + 1 * (v = 1);
          INDEX(acc; 2) * (v > 1) + 1 * (v = 2);
          INDEX(acc; 3) * (v > 2) + 1 * (v = 3);
          INDEX(acc; 4) * (v > 3) + 1 * (v = 4)
        )
      )
    );
    1; SI([@[Niveau source]] = 4; -1; [@[Niveau source]])
  )
);"")

Pas besoin des colonnes d'aides comme ceci. On travaille uniquement avec la colonne J.

EDIT : ajout du SIERREUR pour le cas où le niveau n'est pas encore renseigné.

Je n'ai pas les mots, juste : Un énorme merci vous êtes merveilleux !

C'est parfait.

Je vous en prie, content d'aider . Merci pour votre retour.

Bonne journée

Rechercher des sujets similaires à "probleme numerotation automatique hierarchique"