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

Résolu
mikacontact34 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -

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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

Bonjour,

Quel logiciel avez vous?

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention  
 

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

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > mikacontact34 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 

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

1