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

Résolu
mikacontact34 Messages postés 4 Statut Membre -  
yg_be Messages postés 24281 Statut Contributeur -

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


A voir également:

2 réponses

f894009 Messages postés 17413 Statut Membre 1 715
 

Bonjour,

Quel logiciel avez vous?

0
yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 

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
0
mikacontact34 Messages postés 4 Statut Membre
 

C'est absolument parfait, je te remercie beaucoup !!!

0
yg_be Messages postés 24281 Statut Contributeur 1 584 > mikacontact34 Messages postés 4 Statut Membre
 

peux-tu alors marquer la discussion comme résolue?

1