Excel - Numérotation sur plusieurs niveaux

Bonjour,

Je souhaiterais, à l'aide d'une Macro, automatiser la numérotation de mes lignes, dans la colonne B, sur 3 niveaux (1, 1.1 et 1.1.1) selon un repère (1, 2 et 3) que j'indiquerais dans la colonne A

Exemple :

colonne A .......... colonne B
repère .............. numérotation

1 ................... 1
2 ................... 1.1
2 ................... 1.2
2 ................... 1.3
3 ................... 1.3.1
3 ................... 1.3.2
2 ................... 1.4

1 ................... 2
2 ................... 2.1
2 ................... 2.2

1 ................... 3
2 ................... 3.1
3 ................... 3.1.1
3 ................... 3.1.2
2 ................... 3.2

Merci d'avance pour votre aide
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Contributeur
    Bonjour Fring
    Et pourquoi avec une macro.
    Essayez ci joint , sachant que la présentation peut s'arranger.
    http://www.cijoint.fr/cij75522428732252.xls
    BCRDLMNT
    PS: après vèrif du fichier, ne faits pas attention à l'incréme,ntation de la colonne A au dessous de ligne 25, c'est une erreur. En fait, cela fonctionne comme vous le souhaitez avec 1,2 ou 3, en supposant que, logiquement, il n'y a pas de 3 entre un 1 et un 2.
    0
    1. Contributeur
      Bonjour fring
      Disparu?
      ...on aurait pourtant aimé savoir ce que devenait votre problème!
      BCRDLMNT
      0
      1. Bonjour Vaucluse,

        Je suis désolé de pas avoir répondu plus tôt, j'ai été fort absent ces derniers temps.

        Tout d'abord merci pour ta proposition mais elle ne me semble pas pratique à l'utilisation vu qu'il faut introduire des chiffres dans les 3 premières colonnes et qu'il faut également penser à dupliquer la formule de la colonne 4.
        Finalement j'ai eu une réponse sur un autre forum qui me convient mieux et me donne vraiment le résultat souhaité.

        Pour ceux que ça intéresseraient je met une copie de la macro ci-dessous

        Sub NOMMACRO()
        Dim i%, j%, k%, Arr%(1 To 99)
        With Worksheets("Métré")
        j = .Range("A65536").End(xlUp).Row
        .Range(.Cells(2, 2), .Cells(j, 3)).Font.Bold = False
        .Range(.Cells(2, 3), .Cells(j, 3)).Font.Underline = xlUnderlineStyleNone
        For i = 2 To j
        k = .Cells(i, 1)
        If k > 0 Then
        .Cells(i, 3) = IIf(k = 1, UCase(.Cells(i, 3)), LCase(.Cells(i, 3)))
        Arr(k) = Arr(k) + 1
        If k < 2 Then Arr(2) = 0
        If k < 3 Then Arr(3) = 0
        If k = 1 Then
        .Cells(i, 2) = Chr(160) & Arr(1)
        .Range(.Cells(i, 2), .Cells(i, 3)).Font.Bold = True
        .Cells(i, 3).Font.Underline = xlUnderlineStyleSingle
        End If
        If k = 2 Then .Cells(i, 2) = Chr(160) & Chr(160) & Arr(1) & "." & Arr(2)
        If k = 3 Then .Cells(i, 2) = Chr(160) & Chr(160) & Chr(160) & Arr(1) & "." & Arr(2) & "." & Arr(3)
        If k > 3 Then .Range(.Cells(i, 1), .Cells(i, 2)).ClearContents
        Else
        .Cells(i, 2).ClearContents
        End If
        Next
        .Cells(i, 1).Activate
        End With
        End Sub

        Encore merci pour ton aide, toutes les suggestions sont toujours les bienvenues
        A bientôt
        Fred
        0