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)
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
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
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.
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.
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.
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
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 ?
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
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