Numérotation automatique

Bonjour le Forums,

Pourriez-vous m’aider à apporter une amélioration a une macro qui fait la numérotation automatique suite au référence sur la colonne B

L’amélioration souhaitée : si la référence ne change pas la numérotation doit rester la même

Exemple :

Numérotation

Référence

1

A123B321

2

A123B322

2

A123B322

4

A123B323

Vous trouver ci-joint mon fichier Excel, merci d'avance

21test.xlsm (15.58 Ko)

Bonjour,

Essayez ceci, la macro réagit au changement de valeur

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Not Intersect(Target, Columns("A:B")) Is Nothing Then
        Dim i As Long, k As Long
        Réf = Range("B2").Value
        Cpt = 0
        'on relève tous les chiffres trouvés après le premier caractère alphabétique de la référence en partant de la droite
        For i = Len(Réf) To 1 Step -1
            If IsNumeric(Mid(Réf, i, 1)) Then
                Valeur = Mid(Réf, i, 1) & Valeur
                Cpt = Cpt + 1
            Else
                Exit For
            End If
        Next
        Prefixe = Left(Réf, Len(Réf) - Cpt)
        With Feuil1
            For i = 3 To .Range("A" & .Rows.Count).End(xlUp).Row
                If .Range("A" & i) <> "" Then
                    If Cells(i, "A") = Cells(i - 1, "A") Then
                        Cells(i, "B") = Cells(i - 1, "B")
                    Else
                        Valeur = (Valeur * 1) + 1
                        Cells(i, "B") = Prefixe & Valeur
                    End If
                End If
            Next i
        End With
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Bonjour le fil

@Niba, pourquoi du VBA

Si les références sont trier dans l'ordre, en A3, il suffit de mettre + recopie vers le bas

=SI(NB.SI(B$1:B3;B3)>1;MAX(A$1:A2);MAX(A$1:A2)+1)

Si les référence ne sont pas dans l'ordre alors là, c'est autre chose

A+

Bonjour @Arturo83 @BrunoM45,

Merci pour la macro mais elle ne marche pas, peux-tu voir de ton coté stp

@BrunoM45, les références ne sont pas a l'ordre

ainsi que la fonction doit être appliquer automatiquement a la saisie de référence

Remarque : sur les colonne B les référence sont alimentées manuellement ou coller a l'aide d'une autre fonction

"Merci pour la macro mais elle ne marche pas, peux-tu voir de ton coté stp"
Pourtant, quand je change une valeur dans la colonne A:
niba

Arturo83, je pense que j'ai été pas clair dans ma demande

le code dessous marche parfaitement le seul souci c'est quand une référence est répétée la numérotation reste contenue

l'amélioration que je veux c'est :

si la référence dans la colonne B5 = B4 alors la numérotation automatique dans la colonne A5 ne doit pas changer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
            Dim i As Long, k As Long
                With Feuil1
                    k = 1
                    For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row
                        If IsNumeric(.Range("A" & i)) And .Range("B" & i) <> "" Then
                        .Range("A" & i) = k
                            k = k + 1
                            Else
                          End If
                        Next i
                    End With

End Sub

Ok, j'avais compris l'inverse.

Voici la modif:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long, DerLig as long
    On Error GoTo Sortie
    Application.EnableEvents = False
    DerLig = Range("B" & Rows.Count).End(xlUp).Row
    For i = 3 To DerLig
        If Cells(i, "B") = Cells(i - 1, "B") Then
            Cells(i, "A") = Cells(i - 1, "A")
        Else
            Cells(i, "A") = Cells(i - 1, "A") + 1
        End If
    Next i
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

Arturo83,

super merci bcp

Rechercher des sujets similaires à "numerotation automatique"