Ouvrir un UserForm à condition que .. [Résolu]

za29aa 6 Messages postés jeudi 27 février 2014Date d'inscription 8 mai 2014 Dernière intervention - 7 mai 2014 à 07:45 - Dernière réponse : za29aa 6 Messages postés jeudi 27 février 2014Date d'inscription 8 mai 2014 Dernière intervention
- 8 mai 2014 à 06:46
Bonjour,
J'ai un programme de gestion de feuilles de matchs qui fonctionne. Pour l'améliorer je voudrai savoir si on peut faire apparaître un UserForm seulement si la valeur d'une cellule est égale à 16.
Merci pour votre aide
Afficher la suite 

Votre réponse

12 réponses

jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 septembre 2018 Dernière intervention - 7 mai 2014 à 08:24
0
Merci
Bonjour.
Regardes la méthode CHANGE ou SELECTIONCHANGE de ta feuille de calcul.
Puis un test IF.
Commenter la réponse de jordane45
jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 septembre 2018 Dernière intervention - 7 mai 2014 à 13:52
0
Merci
Private Sub Worksheet_Change(ByVal Target As Range)
'-----------------------------------------------------
' Par exemple :
' Si Je suis dans la cellule A1 et que je lui
' donne la valeur : 10
' Alors.. j'affiche le Userform.
'-----------------------------------------------------
 If Target.Address = "$A$1" And Target.Value = 10 Then
  UserForm1.Show
 End If

End Sub

za29aa 6 Messages postés jeudi 27 février 2014Date d'inscription 8 mai 2014 Dernière intervention - 7 mai 2014 à 14:55
Merci pour ton aide Jordane45.
J'ai placé ce code dans la feuille contenant la feuille de match mais à l'essai, le message d'erreur 438 apparaît en notant "Propriété ou méthode non gérée par cet objet".
Pour le fonctionnement la cellule est calculée automatiquement et seulement quand sa valeur devient 10 alors l'UserForm doit apparaître.
Merci encore
Et si je ne trouve pas alors le fonctionnement restera en l'état
Bien amicalement
za29aa
jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 septembre 2018 Dernière intervention - 7 mai 2014 à 15:17
Il va nous manquer des informations...
Par exemple....
- A quel endroit as tu mis exactement ce code ?
- Comment se nomme ton userform ?
- Sur quelle ligne de code te donnes t'il cette erreur ? As tu mis un point d'arrêt et essayé de voir en mode pas à pas ce que donne ta macro ?

fais voir ton code !
Commenter la réponse de jordane45
za29aa 6 Messages postés jeudi 27 février 2014Date d'inscription 8 mai 2014 Dernière intervention - Modifié par jordane45 le 7/05/2014 à 16:05
0
Merci
Ce code est écrit dans la Feuille2 de Microsoft Objects
L'erreur est donnée pour la ligne "If Target ....."

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Adress = "$A$27" And Target.Value = 16 Then
UserForm6.Show False
End If
End Sub


UserForm6 est activée par le code placé dans la Feuille UserForm5
'Effacement du tableau intermédiaire de classement
    Range("Y27:AH30").Select
    Selection.ClearContents
    Cells.Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Range("A1").Select
    ActiveWindow.Zoom = 80
    
 'Apparition de USF6
'UserForm6.Show False (' est placé pour l'essai du code précédent)
End Sub

Je n'ai pas testé en pas à pas.
Merci Jordane45
jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 septembre 2018 Dernière intervention - 7 mai 2014 à 16:05
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

J'ai édité ton message pour les mettre.
Commenter la réponse de za29aa
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 7 mai 2014 à 16:11
0
Merci
Bonjour (et un amical salut à Jordane45) :
1) la propriété Address prend 2 d
2)
la cellule est calculée automatiquement
donne à penser que cette cellule contient une formule.
Si tel est le cas, la modification du résultat d'une formule ne déclenche pas l'évènement Change
Commenter la réponse de ucfoutu
jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 septembre 2018 Dernière intervention - 7 mai 2014 à 16:11
0
Merci
Je ne sais pas si tu as vu...

mais tu as oublié un "D" à Address
Target.Address


za29aa 6 Messages postés jeudi 27 février 2014Date d'inscription 8 mai 2014 Dernière intervention - 7 mai 2014 à 17:02
Merci pour l'aide,
Ce doit être la fatigue pour le d. Effectivement la cellule A27 contient une formule, donc je vais voir pour autre chose pour ce programme.
Merci encore
Bien amicalement
za29aa
jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 septembre 2018 Dernière intervention - 7 mai 2014 à 17:48
Si ta cellule contient une formule, elle doit s'actualiser lorsque tu modifies quelques chose... quelque part ...

Eventuellement, si les modifications se font toujours sur cette même feuille... il te suffit de ne pas vérifier le Target.Address.

Private Sub Worksheet_Change(ByVal Target As Range)
if Range("A27").value = 16 Then
UserForm6.Show False
End If
End Sub

=> Par contre, cette macro se lancera à chaque modification dans cette feuille... peu importe les " coordonnées" de la cellule modifiée.
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 7 mai 2014 à 18:44
Ou encore utiliser l'évènement Worksheet_calculate, de sorte à limiter l'exécution quand un iquement recalculs
Private Sub Worksheet_Calculate()
if Range("A27").value = 16 Then
UserForm6.Show False
End If
End Sub
Commenter la réponse de jordane45
za29aa 6 Messages postés jeudi 27 février 2014Date d'inscription 8 mai 2014 Dernière intervention - 8 mai 2014 à 06:46
0
Merci
Bonjour jordane45 et ucfoutu,
Je viens de tester la dernière solution proposée parucfoutu et "miracle" pour moi cela fonctionne.
Merci à vous pour toute cette aide, le problème est résolu.
Bien amicalement
za29aa
Commenter la réponse de za29aa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.