Changer de feuille selon une valeur

Bonjour

Je souhaiterais créer la macro qui permet d'aller sur une autre feuille 2 si la réponse à une question en feuille1 = oui

Le début fonctionne (vide ou non) mais pour la réponse oui (aller en feuille 2) , ça bloque

Quelqu'un aurait-il une idée ?

merci

Chvalet

Private Sub worksheet_change(ByVal target As Range)

If Not Application.Intersect(target, Range("C6")) Is Nothing Then
If target.Value = "" Then
MsgBox "il faut répondre soit oui soit non"
End If

If target.Value = "non" Then 'si la réponse= "non" alors
MsgBox "Pourtant l'aviron indoor c'est super!!!" 'ouvrir la box et le texte

If Range("c2").Value = "oui" Then  ' si la cellule ="oui"
 Sheets("feuil2").Select
 Range("B2").Select

End If

End If

End If

End Sub

Bonsoir,

apprenez à indenter votre code, et ensuite vérifiez les références de vos cellules lors des tests et ensuite la correspondance du nom des feuilles !
En effet, pas de "Feuil2" dans votre classeur, mais une feuille "q1b".

Ensuite target est en C6 et vous testez le "oui" en C2...

Avec l'instruction IF vous avez également le ElseIf qui permet de faire des tests en série.

Le code avec l'indentation :

Private Sub worksheet_change(ByVal target As Range)

    If Not Application.Intersect(target, Range("C6")) Is Nothing Then
        ' premier test si
        If target.Value = "" Then
            MsgBox "il faut répondre soit oui soit non"
        ' deuxième test du type sinon si
        ElseIf target.Value = "non" Then 'si la réponse= "non" alors
            MsgBox "Pourtant l'aviron indoor c'est super!!!" 'ouvrir la box et le texte
        ' si aucun des deux alors (vu qu'il n'y a que trois choix dans votre liste...)
        Else target.Value = "oui" Then  ' si la cellule ="oui"
            Sheets("q1b").Activate
            Sheets("q1b").Range("B2").Select
        End If
    End If

End Sub

Le fichier :

@ bientôt

LouReeD

Bonjour CHVALET, le forum,

Hello LouReeD ,

Une autre possibilité avec Select Case....

Private Sub worksheet_change(ByVal target As Range)
 If Not Application.Intersect(target, Range("C6")) Is Nothing Then
  cancel = True
   Select Case UCase(target.Value)
    Case "NON": MsgBox "Pourtant l'aviron indoor c'est super!!!", vbInformation
    Case "OUI"
     With Sheets("q1b")
      .Activate
      .Range("B2").Select
     End With
    Case Else: MsgBox "Il faut répondre soit oui soit non", vbExclamation
   End Select
 End If
End Sub

Cordialement,

Rechercher des sujets similaires à "changer feuille valeur"