Message d'alerte sur plusieurs cellules consécutives

angedemon02

XLDnaute Junior
Bonjour à tous !!

J'ai un problème que je n'arrive toujours pas résoudre par conséquent je me tourne vers vous..

Je possède un fichier où l'on rempli certaine cellule par validation ne proposant que certaines valeurs comme A, B, C et D par exemple et j'aimerais mettre (je pense une macro) une alerte dessus lorsque l'on à trois fois de suite la même valeur à la suite donc si A1=A voir cellule B1 et si cellule B1=A voir cellule C1 et si cellule C1=A afficher un message d'alerte.

Le fait que ma plage possède déjà une validation me mets des bâtons dans les roues, surtout que ma feuille comporte de nombreuses cellules et que j'aimerais qu'il le vérifie pour toutes les lignes de mon fichier (et sur d'autres feuilles de calcul dans le même classeur aussi)

J'espère que j'ai été assez clair..

Merci à ceux qui essaieront !!
 

GeoTrouvePas

XLDnaute Impliqué
Re : Message d'alerte sur plusieurs cellules consécutives

Bonjour,

Essayes de placer ce code dans le module de la feuille concernée :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 2 Then
        If Target = Target.Offset(-1) And Target = Target.Offset(-2) Then MsgBox "Valeur redondante"
    End If
End Sub

A Adapter en fonction de ton cas.
 

angedemon02

XLDnaute Junior
Re : Message d'alerte sur plusieurs cellules consécutives

Bonjour,

Essayes de placer ce code dans le module de la feuille concernée :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 2 Then
        If Target = Target.Offset(-1) And Target = Target.Offset(-2) Then MsgBox "Valeur redondante"
    End If
End Sub

A Adapter en fonction de ton cas.

Merci de ta réponse !

J'aimerais savoir quelles sont les conditions qu'on peux modifier dans ton code ? Merci
 

angedemon02

XLDnaute Junior
Re : Message d'alerte sur plusieurs cellules consécutives

Je suis débutante en vba et j'ai du mal à savoir comment sa fonctionne !
Dans la ligne de code Private Sub Worksheet_Change(ByVal Target As Range) il faut que j’introduis le nom de ma feuille ou cela marche automatiquement ?
Il faut écrire le code directement dans visual basic ou il faut créer une macro ? Vu qu'il me semble qu'un private sub fonctionne sur le principe d'un bouton.
 

angedemon02

XLDnaute Junior
Re : Message d'alerte sur plusieurs cellules consécutives

Je viens de trouver sur ma question Private Sub Worksheet_Change(ByVal Target As Range) mais par contre il me marque sans arrêt "Valeur redondante" dès que je clique sur une cellule.
Je ne sais pas comment introduire que c'est le mot "avion" qu'il faut qu'il cherche.

Merci de votre aide
 

GeoTrouvePas

XLDnaute Impliqué
Re : Message d'alerte sur plusieurs cellules consécutives

Non tu n'as pas à introduire le nom de la feuille.
Il faut que tu places le code (par copier coller) dans le module de la feuille concernée. Dans l'exemple ci - joint, j'ai placé le code dans le module de la feuille 2. Le code ne fonctionnera que pour les actions effectuées sur cette feuille. Si tu voulais par exemple faire la même chose pour la feuille 3, il faut que tu recopies le code dans le module de la feuille 3.

exemple.jpg

Le principe de private sub n'a rien à avoir avec les boutons. Il s'agit simplement d'une précision sur la porté de ta procédure.

Pour ne prendre en compte que la valeur avion, il faut que tu modifies le code comme ceci :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 2 Then
        If Target = "Avion" and Target.Offset(-1) = "Avion" And Target.Offset(-2) = "Avion" Then MsgBox "Valeur redondante"
    End If
End Sub
 

Pièces jointes

  • exemple.jpg
    exemple.jpg
    22.3 KB · Affichages: 49
  • exemple.jpg
    exemple.jpg
    22.3 KB · Affichages: 49

angedemon02

XLDnaute Junior
Re : Message d'alerte sur plusieurs cellules consécutives

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 2 Then
        If Target = "Avion" and Target.Offset(-1) = "Avion" And Target.Offset(-2) = "Avion" Then MsgBox "Valeur redondante"
    End If
End Sub
[/QUOTE]

Le code est bien défini pour une ligne ou il faut que je l'introduis ?
 

GeoTrouvePas

XLDnaute Impliqué
Re : Message d'alerte sur plusieurs cellules consécutives

Essaye ceci :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Columns > 2 Then
        If Target = "Avion" And Target.Offset(0, -1) = "Avion" And Target.Offset(0, -2) = "Avion" Then MsgBox "Valeur redondante"
    End If
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 316
Messages
2 087 173
Membres
103 490
dernier inscrit
zatougraf