Ouvrir un UserForm à condition que ..

Résolu
za29aa Messages postés 6 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 8 mai 2014 - 7 mai 2014 à 07:45
za29aa Messages postés 6 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 8 mai 2014 - 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
A voir également:

6 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
7 mai 2014 à 08:24
Bonjour.
Regardes la méthode CHANGE ou SELECTIONCHANGE de ta feuille de calcul.
Puis un test IF.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
7 mai 2014 à 13:52
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

0
za29aa Messages postés 6 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 8 mai 2014
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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
Modifié par jordane45 le 7/05/2014 à 15:18
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 !
0
za29aa Messages postés 6 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 8 mai 2014
Modifié par jordane45 le 7/05/2014 à 16:05
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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 mai 2014 à 16:11
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
7 mai 2014 à 16:11
Je ne sais pas si tu as vu...

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


0
za29aa Messages postés 6 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 8 mai 2014
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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
za29aa Messages postés 6 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 8 mai 2014
8 mai 2014 à 06:46
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
0
Rejoignez-nous