MsgBox remplacer un texte sous condition

Bonjour à tous,

Je suis en train de créer un questionnaire sur une page Excel, qui à chaque question affiche ou maque des lignes en fonction des choix effectués.

Pour éviter certaines incohérences, des MsgBox s'affichent pour avertir l'utilisateur, qui doit avoir le choix entre :

- changer automatiquement pour le choix recommandé ;

- maintenir son choix.

Seulement, lorsque l'utilisateur demande à maintenir un choix, cette MsgBox revient à chaque question suivante, ce qui n'est pas souhaitable !

Pouvez-vous m'indiquer comment n’exécuter cette fonction qu'une seule fois ou bien seulement lorsque l'utilisateur a sélectionné la cellule concernée ?

Voici le code concerné :

Dim Reponse As Integer

If Range("B2") = "Electrique" And Range("D112") = "Halogène" Then

Reponse = MsgBox("Les feux halogène ne sont pas adaptés en mode électrique" & vbCrLf & "Voulez-vous passer en LED ?", vbYesNo + vbExclamation, "Information")

If Rep = vbYes Then

Range("D112").Value = "LED"

Else

Exit Sub

End If

End If

Merci de votre aide !

Bonjour,

Le bout de code que tu montres ne permet pas de comprendre pourquoi la MsgBox revient à chaque question suivante.

A+

Bonjour,

Voici un extrait de mon code, qui présente également le même problème :

Private Sub Worksheet_Change(ByVal Target As Range)

'Masque tout avant réponse B6

If Target.Count > 1 Then Exit Sub

If Target.Address = "$B$6" Then

Select Case Target.Value

Case "Non": Rows("8:12").Hidden = True

Case "": Rows("8:12").Hidden = True

Case "Oui": Rows("8:12").Hidden = True

End Select

End If

'Affiche la suite si B6 = Oui, il faut des feux de travail

If Target.Address = "$B$6" Then

Select Case Target.Value

Case "Oui": Rows("8:12").Hidden = False

Case "": Rows("8:12").Hidden = True

Case "Non": Rows("8:12").Hidden = True

End Select

End If

Dim Rep As Integer

If Range("B2") = "Electrique" And Range("D10") Like "Halogène" Then

Rep = MsgBox("Les feux halogène ne sont pas adaptés au pompage électrique" & vbCrLf & "Voulez-vous passer en LED ?", vbYesNo + vbExclamation, "Information")

If Rep = vbYes Then

Range("D10").Value = "LED"

Else

Exit Sub

End If

End If

End Sub

10classeur1.xlsm (15.27 Ko)

Bonjour,

Une proposition ..

A+

23classeur1.xlsm (17.59 Ko)

ça fonctionne exactement comme je le souhaitais, merci beaucoup frangy !

Rechercher des sujets similaires à "msgbox remplacer texte condition"