Inscrire des numéros uniques

  • Initiateur de la discussion Initiateur de la discussion Aimedjie
  • Date de début Date de début

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 !

Aimedjie

XLDnaute Occasionnel
Bonjour,

J'aimerais inscrire un numéro unique pour identifier chaque ligne où il y a des données dans une feuille. Je veux que la macro se souviennent d'où la numérotation est rendu afin de ne jamais allouer deux fois le même numéro et ce, même si je change de feuille dans le classeur.

Les numéros doivent aller de 1 à 10 000 pour le même nombre de ligne. Je ne veux pas inscrire le numéro de la ligne, mais vraiment créer un numéro séquentiel puisque je peux commencer la numérotation à partir de la ligne 11 comme 21, comme ... et finir à la ligne 300, comme 568, comme...

Rien de mieux qu'un bon exemple, ci-joint.

L'exemple 1 représente les données inscrites au départ. Si je rajoute des lignes, la numérotation doit commencer à 6 jusqu'à 6 plus le nombre de lignes ajoutées.

L'exemple 2 représente la suppression de deux données. Comme la macro doit se souvenir d'où est rendu la numérotation, si je rajoute des lignes, la numérotation doit commencer à 6 jusqu'à 6+ le nombre de lignes ajoutées.

L'exemple 3 représente la suppression de deux données et l'ajout de 7 données. Comme la macro doit se souvenir d'où est rendu la numérotation, si je rajoute des lignes, la numérotation doit commencer à 13 jusqu'à 13 plus le nombre de lignes ajoutées.

Comme vous pouvez le constater, la numérotation ne doit pas dépendre de la ligne ou de la colonne où il doit s'inscrire.

Merci.
 
Re : Inscrire des numéros uniques

Bonsoir Aimedji
Bonsoir Paritec

Ci dessous un code à tester
A copier dans Thisworkbook

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
[COLOR="Magenta"]'code à utiliser une fois
'ThisWorkbook.CustomDocumentProperties.Add Name:="numero", _
        Type:=msoPropertyTypeFloat, LinkToContent:=False, Value:=12[/COLOR]

If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
With ThisWorkbook
    If IsNumeric(Target.Value) Then
    
        If Target.Value <= .CustomDocumentProperties("numero").Value Then
            Call MsgBox("Le numéro " & Target.Value & " exite déja ou il existe un numéro de valeur supérieure" _
                        & vbCrLf & "Vous pouvez utiliser" & .CustomDocumentProperties("numero").Value + 1 _
                        , vbInformation, Application.Name)
            Target.Value = ""
            Target.Select
        Else
            .CustomDocumentProperties("numero").Value = Target.Value
        End If
    End If
Application.EnableEvents = True
End With
End Sub

La procédure mémorise la valeur dans les propriétés du classeur.
IL faut rajouter un test concernant la colonne
If target.Column <> {numéro de colonne} then exit sub.

A tester

JP
 
- 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

Réponses
10
Affichages
938
  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
1 K
Réponses
0
Affichages
768
Retour