Problème de variable statique

Magic_Doctor

XLDnaute Barbatruc
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

  • Bouton Vues.xls
    31 KB · Affichages: 46
  • Bouton Vues.xls
    31 KB · Affichages: 47
  • Bouton Vues.xls
    31 KB · Affichages: 47

Catrice

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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

  • Bouton Vues.xls
    31 KB · Affichages: 44
  • Bouton Vues.xls
    31 KB · Affichages: 49
  • Bouton Vues.xls
    31 KB · Affichages: 53
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
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.
 

Catrice

XLDnaute Barbatruc
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:

Magic_Doctor

XLDnaute Barbatruc
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.
 

Discussions similaires

D
Réponses
4
Affichages
2 K
Djlolo2
D

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 502
dernier inscrit
talebafia