Commander l'ouverture d'un msgbox avec un OUI

mcj1997

XLDnaute Accro
Bonjour,

Dans mon fichier en PJ j'ai un msgbox qui s'ouvre en cliquant sur la case A7, je souhaiterai remplacer le clic en A7 par un OUI dans la case A7 qui ouvrirait le msgbox.

Merci d'avance,
 

Pièces jointes

  • userform.xls
    27 KB · Affichages: 49
  • userform.xls
    27 KB · Affichages: 58
  • userform.xls
    27 KB · Affichages: 47

Efgé

XLDnaute Barbatruc
Re : Commander l'ouverture d'un msgbox avec un OUI

Bonjour mcj1997
Dans le module de la feuille, remplace
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A7")) Is Nothing Then
    UserForm1.Show
End If
End Sub
Par
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A7")) Is Nothing And _
UCase(Target.Value) = "OUI" Then
    UserForm1.Show
End If
End Sub
Cordialement
 

mcj1997

XLDnaute Accro
Re : Commander l'ouverture d'un msgbox avec un OUI

Merci cela fonctionne, toutefois j'ai voulu l'intégrer dans mon programme et comme j'avais déjà une ligne : Private Sub Worksheet change(Byval Target As Range)
J'ai rassemblé les deux avec entre les deux commandes un End if (comme ci-dessous) et maintenant j'ai un message d'erreur suivant : Erreur de compilation End if sans bloc if.


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Range("b4,d4,C9,C10,b7,d7"), Target) Is Nothing Then Call ModifC19
End If
If Not Application.Intersect(Target, Range("B5")) Is Nothing And _
UCase(Target.Value) = "OUI" Then
UserForm1.Show
End If
If Not Application.Intersect(Target, Range("D5")) Is Nothing And _
UCase(Target.Value) = "OUI" Then
UserForm2.Show
End If
End Sub
 

Efgé

XLDnaute Barbatruc
Re : Commander l'ouverture d'un msgbox avec un OUI

Re
Tu as mis
VB:
If Not Intersect(Range("b4,d4,C9,C10,b7,d7"), Target) Is Nothing Then Call ModifC19
dans ce cas là, si la condition et le then sont sur la même ligne, il ne faut de End If.
Donc:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub

If Not Intersect(Range("b4,d4,C9,C10,b7,d7"), Target) Is Nothing Then Call ModifC19
'End If
If Not Application.Intersect(Target, Range("B5")) Is Nothing And _
UCase(Target.Value) = "OUI" Then
    UserForm1.Show
End If

If Not Application.Intersect(Target, Range("D5")) Is Nothing And _
UCase(Target.Value) = "OUI" Then
    UserForm2.Show
End If

End Sub

Utilise les tabulations dans ton code, c'est plus clair à relire et, pour le forum, essai d'utiliser les balises code (le bouton # quand tu fait ton post en mode avancé ;-) )

Cordialement
 

mcj1997

XLDnaute Accro
Re : Commander l'ouverture d'un msgbox avec un OUI

Re
Tu as mis
VB:
If Not Intersect(Range("b4,d4,C9,C10,b7,d7"), Target) Is Nothing Then Call ModifC19
dans ce cas là, si la condition et le then sont sur la même ligne, il ne faut de End If.
Donc:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub

If Not Intersect(Range("b4,d4,C9,C10,b7,d7"), Target) Is Nothing Then Call ModifC19
'End If
If Not Application.Intersect(Target, Range("B5")) Is Nothing And _
UCase(Target.Value) = "OUI" Then
    UserForm1.Show
End If

If Not Application.Intersect(Target, Range("D5")) Is Nothing And _
UCase(Target.Value) = "OUI" Then
    UserForm2.Show
End If

End Sub

Utilise les tabulations dans ton code, c'est plus clair à relire et, pour le forum, essai d'utiliser les balises code (le bouton # quand tu fait ton post en mode avancé ;-) )

Cordialement



merci beaucoup
bonne journée
 

Discussions similaires

Réponses
7
Affichages
333

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 037
Membres
102 763
dernier inscrit
NICO26