Code visual basic: Problème d'incrémentation

Résolu

Bonjour,

Le code ci-dessous fonctionne pour: incrémenter d'un numéro unique dans la colonne B chaque fois qu'une saisie est entamée dans la ligne sélectionnée. Cependant, lorsque je fais une saisie (exemple sur la colonne C ligne 2), j'ai bien un auto incrémente de mon numéro en colonne B sur la ligne correspondante à la cellule saisie, mais si je supprimer la valeur, j'ai un numéro aléatoire qui se créé en colonne B, ce qui fausse complètement mon auto incrémente en colonne B. Quelqu'un pourrait m'aider, j'arrête pas de faire des boucles infinies ne essayant de trouver comment régler cela, je craque :)

Private Sub Worksheet_Change(ByVal sel As Range)
    If sel.CountLarge > 1 Then Exit Sub
    If Application.CountA(Rows(sel.Row)) = 1 Then
        Cells(sel.Row, "B").Value = Application.Max(Columns("B")) + 1
    End If
End Sub


2 réponses

  1. Contributeur

    bonjour,

    Cela se produit parce que, quand tu changes la valeur en colonne B, cela déclenche l'exécution de ton code.

    Si tu veux éviter cela:

            Application.EnableEvents = False
            Cells(sel.Row, "B").Value = Application.Max(Columns("B")) + 1
            Application.EnableEvents = True
    
    1. C'est absolument parfait, je te remercie beaucoup !!!