Excel - Numérotation sur plusieurs niveaux
fring
Messages postés
2
Statut
Membre
-
fring Messages postés 2 Statut Membre -
fring Messages postés 2 Statut Membre -
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
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
A voir également:
- Excel - Numérotation sur plusieurs niveaux
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Excel liste déroulante en cascade 2 niveaux - Guide
3 réponses
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.
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.
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
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