Attribuer une valeur à une variable lors de l'ouverture et la fermeture d'un USF

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai un USF que j'appelle au moyen d'un "CommandButton". Quand l'USF apparaît à l'écran je voudrais qu'une variable publique "compt" prenne la valeur 2. Quand je ferme l'USF, je voudrais que cette même variable prenne la valeur 1.
J'ai écrit ceci :
- ouverture de l'USF :
VB:
Private Sub CommandButton2_Click()
USF.Show: compt = 2
End Sub
- fermeture de l'USF :
VB:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
compt = 1
End Sub
Je vérifie par la suite et me rends comte que compt est toujours égal à 2, même quand l'USF est fermé.
Où me suis-je planté ?

Merci pour me l'expliquer.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Attribuer une valeur à une variable lors de l'ouverture et la fermeture d'un USF

Hola Doctor, bonjour PierreJean, bonjour le forum,

As-tu bien déclarée Compt dans un Module, en première ligne ?

Code:
Public Compt As Byte
 

Magic_Doctor

XLDnaute Barbatruc
Re : Attribuer une valeur à une variable lors de l'ouverture et la fermeture d'un USF

Bonjour pierrejean, Robert,

Oui Robert, j'ai bien déclaré (exactement comme tu l'écris dans ton post) cette variable en 1ères lignes dans un module standard.
Dubitatif, car ne voyant pas trop la différence avec ce que j'avais écrit pour l'ouverture de l'USF, j'ai essayé la proposition de pierrejean et... ça marche ! Il fallait donc écrire compt = 2 en début de routine.
C'est bizarre quand même !

Merci à tous les deux pour votre intervention.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Attribuer une valeur à une variable lors de l'ouverture et la fermeture d'un USF

Bonjour le fil, bonjour le forum,

Non, c'est plus que logique ! Si tu lances d'abord l'userform par USF.Show, la ligne en dessous : Compt = 2, ne sera lue qu'à la fermeture de l'userform...
Le code le plus correct dans ton cas serait :

Code:
Private Sub CommandButton2_Click()
compt = 2 'définit la variable compt
USF.Show 'affiche l'userform USF
compt = 1 'redéfinit la variable compt (lorsque USF est fermée)
End Sub
 

job75

XLDnaute Barbatruc
Re : Attribuer une valeur à une variable lors de l'ouverture et la fermeture d'un USF

Bonjour à tous,

Juste pour dire (ou rappeler) que le code qui suit l'instruction USF.Show s'exécute après la fermeture de l'USF.

Si l'on veut que tout le code s'exécute à l'ouverture il faut être en non modal :

Code:
Private Sub CommandButton2_Click()
USF.Show 0 'non modal
compt = 2
End Sub
Edit : sorry Robert, pas vu ton dernier post :)

A+
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Attribuer une valeur à une variable lors de l'ouverture et la fermeture d'un USF

Merci Robert et job pour ces explications.
J'avais remarqué qu'en non modal ça marchait, mais, pour éviter que l'on ait accès à la feuille quand apparaissait l'USF, j'avais laissé celui-ci en modal.
Maintenant je comprends pourquoi ça plantait.

Bonne fin d'après-midi à tous.

¡Carajo, acá llueve!
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87