Boucle infinie lors de la vérification d'une cellule

Bonjour,

j'ai un code qui me permet de vérifier si, dans une certaine plage, la cellule contient une date de ce format 'JJ/MM/AAAA'.

Si la valeur de la cellule n'est pas sous le format Date, cette-ci doit être nettoyée.

Le voici :

Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A1:E5")) Is Nothing Then
    On Error Resume Next
    If Not Target.Value = Date Then
        MsgBox "Vous ne pouvez que rentrer une date dans cette cellule. Veuillez l'indiquer comme ceci : Ctrl + ;"
        Target.ClearContents
    End If
End If

End Sub

Le problème c'est que je rentre dans une boucle infinie, ce qui me remet le MsgBox en boucle même quand je le ferme par exemple.

Quelqu'un aurait la solution SVP?

Merci !

Bonjour TRNX,

.....
If Not isDate(Target) Then
.....

Bonjour TRNX, X Cellus,

Essayez le code ci-dessous qui permet entre autre de prendre en compte la modification simultanée de plusieurs cellules de la zone A1:E5.

Sub Worksheet_Change(ByVal Target As Range)
Dim xcell As Range
   If Intersect(Target, Range("A1:E5")) Is Nothing Then Exit Sub
   For Each xcell In Intersect(Target, Range("A1:E5"))
      If xcell <> "" Then
         If Not xcell.Value = Date Then
            xcell.ClearContents
            MsgBox "Vous ne pouvez que rentrer la date du jour dans " & xcell.Address(0, 0) & _
            vbLf & "Veuillez l'indiquer comme ceci : Ctrl + ;"
         End If
      End If
   Next xcell
End Sub

Bonjour X Cellus et MaPoire,

merci pour vos réponses.

X Cellus, ta proposition ne réglait pas le problème de la boucle infinie compte tenu du reste de mon code. Je m'y suis peut-être mal pris ceci dit.

MaPoire, ton code marche très bien. Mais il se trouve que la plage "A1:E5" était une plage test. La vraie Plage contient 60 cellules séparées. Je peux faire un PlgDate = Range("...") mais ça me paraît long et pas facile à gérer.

Est-ce que tu aurais une solution pour ça également ? J'ai pensé à définir la plage selon la couleur de fond des cellules, par exemple.

Merci en tout cas pour votre aide!

Re ,

Voir le fichier joint.

Dans le code de la feuille Feuil1, une version par couleur. Attention deux couleurs peuvent sembler identiques au regard mais être différentes en réalité.

Dans le code de la feuille Feuil2, une version par commentaire. Pour insérer les commentaires plus rapidement:

  • insérer le premier commentaire, dans une cellule
  • copier la cellule
  • sélectionner les autres cellules concernées pour y faire en un seul coup un collage Spécial / Commentaires.

Bonjour MaPoire,

merci beaucoup pour ta proposition, ça me convient très bien !

Sujet résolu !

Rechercher des sujets similaires à "boucle infinie lors verification"