Condition : si un formulaire est activé, alors...

Le
Coriandre
Bonjour,

Comment exprime-t-on par macro :
si le formulaire (userform) "zaza" est activé, alors (par exemple, alors
la valeur de la cellule A1 est "oui") ?

Merci de votre aide.

--
Coriandre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5085471
Il y a un événement "Activate" du Userform,

et tu inscris :
Private Sub UserForm_Activate()
Worksheets("NomDeLaFeuille").range("A1") = "oui"
End Sub

Private Sub UserForm_Deactivate()
Worksheets("NomDeLaFeuille").range("A1") = "non"
End Sub



"Coriandre"
Bonjour,

Comment exprime-t-on par macro :
si le formulaire (userform) "zaza" est activé, alors... (par exemple, alors
la valeur de la cellule A1 est "oui") ?

Merci de votre aide.

--
Coriandre
Coriandre
Le #5085451
Merci.

Mais si je ne veux déclencher l'événement (celulle A 1 = "oui") que lorsque
je le veux, par exemple en cliquant sur un bouton d'un autre formulaire, et
non systématiquement à l'ouverture du formulaire ?

--
Coriandre

"MichDenis" news:
Il y a un événement "Activate" du Userform,

et tu inscris :
Private Sub UserForm_Activate()
Worksheets("NomDeLaFeuille").range("A1") = "oui"
End Sub

Private Sub UserForm_Deactivate()
Worksheets("NomDeLaFeuille").range("A1") = "non"
End Sub



"Coriandre" news:

Bonjour,

Comment exprime-t-on par macro :
si le formulaire (userform) "zaza" est activé, alors... (par exemple,
alors
la valeur de la cellule A1 est "oui") ?

Merci de votre aide.

--
Coriandre





MichDenis
Le #5085351
Je n'ai pas vraiment saisi ton besoin ....!

Si tu affiches 2 formulaires en utilisant la commande :
Userform1.Show 0 et Userform2.Show 0

Si tu passes d'un formulaire à l'autre, la cellule A1 réagira.
Cependant, si tu passes du formulaire à la feuille de calcul
la cellule A1 ne réagira pas car les formulaires sont affichés
dans une fenêtre non modale (le 0 à la fin des commandes)

Si tu veux que la cellule A1 réagisse lorsque tu cliques dans une cellule
de la feuille de calcul, il te faut utiliser un événement du classeur et non
du formulaire.

à titre d'exemple, l'événement du Thisworkbook :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Il n'y a pas de miracle... tu dois composer avec les événements du formulaire, du module feuille
ou du module ThisWorkbook.




"Coriandre" %
Merci.

Mais si je ne veux déclencher l'événement (celulle A 1 = "oui") que lorsque
je le veux, par exemple en cliquant sur un bouton d'un autre formulaire, et
non systématiquement à l'ouverture du formulaire ?

--
Coriandre

"MichDenis" news:
Il y a un événement "Activate" du Userform,

et tu inscris :
Private Sub UserForm_Activate()
Worksheets("NomDeLaFeuille").range("A1") = "oui"
End Sub

Private Sub UserForm_Deactivate()
Worksheets("NomDeLaFeuille").range("A1") = "non"
End Sub



"Coriandre" news:

Bonjour,

Comment exprime-t-on par macro :
si le formulaire (userform) "zaza" est activé, alors... (par exemple,
alors
la valeur de la cellule A1 est "oui") ?

Merci de votre aide.

--
Coriandre





Coriandre
Le #5085281
"MichDenis" news:
Je n'ai pas vraiment saisi ton besoin ....!


Par exemple, je voudrais qu'en cliquant sur un bouton (CommandButton) créé
dans le formulaire "zaza", la valeur de la cellule A1 de la feuille 1 soit
"coucou", si et seulement si l'autre formulaire ("toto") est activé.

On peut peut-être le faire en créant artificiellement un "événement" (je ne
sais pas quel terme employer) dans le code du formulaire "toto" à son
ouverture, ex :
toto = true

puis en le déclenchant dans le code du bouton du formulaire "zaza" selon :
If toto = true, then
Range("A1") = "coucou"
End If

Mais je voulais savoir s'il existait tout simplement une formule qui dirait:
si un formulaire est activé, alors A1 = "coucou"
si la cellule A2 est = "salut", alors la cellule A1 = "coucou".
ou encore :
si la cellule A 2 est verte, alors la cellule A1 = "coucou".

Quelque chose du genre :
If IsOuvert toto Then

Apparemment non...

--
Coriandre

Publicité
Poster une réponse
Anonyme