Test sur sortie de cellule, en cas d'erreur le mmsgbox s'affiche deux fois!!!

Xipotera

XLDnaute Nouveau
Bonjour, grâce à la macro suivante, je teste la valeur d'une cellule lorsque je sors de celle-ci.

si celle-ci est vide, je l'affiche en rouge, j'alerte mon utilisateur et je reselectionne sur celle-ci.

le problème est que mon MsgBox s'affiche deux fois, une fois lorsque je sors de ma cellule (la c'est normal) puis une seconde fois lorsque je spécifie dans ma macro de re-selectionner la cellule.

Quelqu'un aurait une idée pour éviter ce double affichage.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim KeyCells As Range

Set KeyCells = Cells(3, 4)

    If KeyCells.Value = "" Then
        
        KeyCells.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = 3, xlNone, 3)
        MsgBox "Veuillez saisir un Code Produit"
        KeyCells.Select
    Else
        KeyCells.Interior.ColorIndex = 0
    End If
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Test sur sortie de cellule, en cas d'erreur le mmsgbox s'affiche deux fois!!!

Bonsoir,

peut être ceci :
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim KeyCells As Range
Static b As Boolean
Set KeyCells = Cells(3, 4)
    If KeyCells.Value = "" Then
        If b Then Exit Sub
        b = True
        KeyCells.Interior.ColorIndex = IIf(Target.Interior.ColorIndex = 3, xlNone, 3)
        MsgBox "Veuillez saisir un Code Produit"
        KeyCells.Select
        b = False
    Else
        KeyCells.Interior.ColorIndex = 0
    End If
End Sub

bonne soirée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 534
Messages
2 089 386
Membres
104 153
dernier inscrit
Pascalmorin