XL 2013 Etablir un RANG particulier

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

esftel

XLDnaute Occasionnel
Bonjour,

Je souhaiterais une numérotation automatique (solution formule) genre "Rang" en fonction du nom du groupe dans une autre colonne....

Exemple :
Colonne A (Numérotation automatique
Colonne B
1​
Groupe 20
1​
Groupe 20
2​
Groupe 8
1​
Groupe 20
2​
Groupe 8

Voir aussi l'exemple en fichier joint

Merci de votre attention et de votre aide,

Franck T.
 

Pièces jointes

Le résultat donné par JHA n'est pas du tout celui que vous indiquez dans le fichier du post #1 !!!

Mais bon si vous voulez numéroter dans l'ordre de survenance voyez cette formule en F2 :
Code:
=SI(LIGNE()=EQUIV(G2;G$1:G2;0);MAX(F$1:F1)+1;INDEX(F$1:F1;EQUIV(G2;G$1:G1;0)))
Hé top, j'avais pas vu votre message, c'est super !

En effet, le première proposition de JHA, n'affichait pas la même numérotation mais la logique était là !
Ce qui ne me convenait pas c'était ca table de correspondance .....

En tout cas beau travail, je ne l'aurais pas trouvé celle là..... merci
 
avec une macro on sait jamais
Sub rang()
ReDim tableau(0)
With Sheets(1).ListObjects("tableau1")

MsgBox .DataBodyRange.Rows.Count

For n = 1 To .DataBodyRange.Rows.Count
Set i = .DataBodyRange.Columns(1).Rows(n)
If existe(i) = False Then
ReDim Preserve tableau(UBound(tableau) + 1)
tableau(UBound(tableau)) = i
End If
Next

With Sheets(1).ListObjects("tableau1")
For Each i In .DataBodyRange.Columns(2).Rows
'MsgBox i.Address
i.Value = rg(i)
Next
End With
End With
End Sub
Function existe(valeur)
existe = False

For n = 0 To UBound(tableau)
If valeur = tableau(n) Then existe = True
Next
End Function
Function rg(valeur)
For n = 0 To UBound(tableau)
'MsgBox valeur.Offset(0, -1)
If valeur.Offset(0, -1) = tableau(n) Then rg = n: Exit Function
Next
End Function
 
avec une macro on sait jamais
Sub rang()
ReDim tableau(0)
With Sheets(1).ListObjects("tableau1")

MsgBox .DataBodyRange.Rows.Count

For n = 1 To .DataBodyRange.Rows.Count
Set i = .DataBodyRange.Columns(1).Rows(n)
If existe(i) = False Then
ReDim Preserve tableau(UBound(tableau) + 1)
tableau(UBound(tableau)) = i
End If
Next

With Sheets(1).ListObjects("tableau1")
For Each i In .DataBodyRange.Columns(2).Rows
'MsgBox i.Address
i.Value = rg(i)
Next
End With
End With
End Sub
Function existe(valeur)
existe = False

For n = 0 To UBound(tableau)
If valeur = tableau(n) Then existe = True
Next
End Function
Function rg(valeur)
For n = 0 To UBound(tableau)
'MsgBox valeur.Offset(0, -1)
If valeur.Offset(0, -1) = tableau(n) Then rg = n: Exit Function
Next
End Function
Bonjour,

C'est super gentil pour la macro, mais je ne peux pas utiliser de macro, trop contraignant pour notre réseau d'entreprise.....
en tout cas merci, je la garde au cas ou ?
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour