Problème de variable statique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonjour,

Dans une feuille j'ai placé un bouton. Quand on clique dessus on obtient soit un plein écran, soit on revient à l'écran d'origine. Ça marche.
Le problème est que si je ferme mon application, puis je la réouvre, il faut alors appuyer plusieurs fois de suite sur le boutonn pour qu'il fonctionne, ensuite, après cet "échauffement" plus de problème.

Si l'un d'entre vous pouvait m'en donner l'explication.
 

Pièces jointes

Re : Problème de variable statique

Bonjour,

Je crois que c'est le i=i+1
Le premier coup, i n'est pas supérieur à 1 donc on fait le else et le else ne fait que mettre le bouton et l'ecran comme ils sont deja.
Le 2eme coup i=2 et là ça fontionne ...

Je propose :
Private Sub BoutonVue_Click()
[BoutonVue].BackColor = &HE6F1FE
With [BoutonVue]
.Caption = IIf(Application.DisplayFullScreen, "Plein Écran", "Fermer le" & vbCrLf & "Plein Écran")
.ForeColor = IIf(Application.DisplayFullScreen, &H95FC7, &H3C9275)
Application.DisplayFullScreen = Not Application.DisplayFullScreen
End With
End Sub


ou

Private Sub BoutonVue_Click()
[BoutonVue].BackColor = &HE6F1FE
With [BoutonVue]
Select Case Application.DisplayFullScreen
Case True
.Caption = "Plein Écran"
.ForeColor = &H95FC7
Application.DisplayFullScreen = False
Case False
.Caption = "Fermer le" & vbCrLf & "Plein Écran"
.ForeColor = &H3C9275
Application.DisplayFullScreen = True
End Select
End With
End Sub

Application.DisplayFullScreen permet de savoir dans quel mode on est, il suffit d'inverser ...
 
Dernière édition:
Re : Problème de variable statique

Bonjour Magic Doctor, Catrice,

J'ai préféré Boolean dans ce fichier (le transférer d'abord sur le bureau)

Edit : mais Catrice a raison, car l'utilisateur peut modifier le mode Plein écran...

A+
 

Pièces jointes

Dernière édition:
Re : Problème de variable statique

Bonjour Catrice, bonjour Job 75,

Merci pour vos solutions qui marchent parfaitement.
Je choisirai la 1ère de Catrice, non pas par courtoisie, mais sa procédure est à la fois concise et ésotérique. Autant dire que je n'ai pas compris grand-chose, mais ça marche !

Bonne fin d'après-midi à tous les deux.
 
Re : Problème de variable statique

Re,

Si tu prends cette solution, je te l'explique 😉
Application.DisplayFullScreen renvoie True ou False
IIf renvoie la premiere condition si c'est True et la 2eme si c'est False.
Exemple : Mavar = IIf(10=20,"Coucou","Bonjour")
MaVar sera égale à "Bonjour" car 10=20 c'est faux.

Pour le Caption :
.Caption = IIf(Application.DisplayFullScreen, "Plein Écran", "Fermer le" & vbCrLf & "Plein Écran")
Si on n'est pas en plein écran, Application.DisplayFullScreen renvoie False => la valeur renvoyée par IIf sera :"Fermer le" & vbCrLf & "Plein Écran". Car dans la foulée on va passer en plein écran. Il faut donc indiquer à l'utilisateur comment 'Fermer le plein écran".
Idem pour .ForeColor

Enfin, à chaque fois qu'on clique sur le bouton, on veut inverser la situation de l'ecran.
D'où le Not Application.DisplayFullScreen
 
Dernière édition:
Re : Problème de variable statique

Merci Catrice pour tes explications instructives qui me font davantage comprendre et la sophistication (en tout cas pour les prophanes) et les subtilités de ce langage.
Réponse un peu tardive car le décalage horaire s'alourdit...

Bonne soirée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

N
Réponses
12
Affichages
5 K
Nplayer76
N
M
Réponses
10
Affichages
1 K
M
N
Réponses
2
Affichages
1 K
nob4ever
N
Retour