Problème de rafraichissement de l'affichage

  • Initiateur de la discussion Initiateur de la discussion Isa
  • Date de début Date de début

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 !

I

Isa

Guest
Bonjour,

J'ai créé une application qui affiche un Userform sur une feuille en fond d'écran de couleur. Or,lorsque je déplace ce userform, cela laisse des trainées, ce qui m'indique qu'il y a un problème probable de rafraichissement de l'affichage.
Pouvez-vous m'indiquer comment éviter ce genre de problème (voir copie d'écran ci-jointe) ?

Merci beaucoup pour votre aide.

Isa [file name=pb_rafraichissement.zip size=10697]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/pb_rafraichissement.zip[/file]
 

Pièces jointes

Bonsoir Isa, le forum,

J'avais moi meme le probleme, puis j'ai tente un truc tout bete, c'est d'ouvrir mon userform de facon a pouvoir travailler sur ma feuille en meme temps.

Donc, dans ton code d'ouverture de ton userform tu place :

sub userform_clic()
load userform1
userform1.show vbmodeless
End sub

Voila, en esperant t'aider.

Bonne soiree

Olivier
 
Bonjour Olivier,

Merci beaucoup pour le tuyau. Ca marche effectivement bien, par contre, comme j'avais ouvert auparavant ma feuille en .WindowState = xlMaximized, le fait d'avoir fait un userform.show vbModeless, cela a réduit la taille de ma feuille. Pourquoi ?
As-tu une combine pour la garder en xlMaximized ?

Merci d'avance.

Isa
 
Bonjour Isa,

Je ne suis pas tout a fait sur d'avoir compris s'il s'agissait de ton userform ou de la feuille dont tu veux me parler.

Donc dans le doute :

Private Sub tonuserform_initialize()
With tonuserform
StartUpPosition = 3
Width = Application.Width
Height = Application.Height
Left = 0
Top = 0
End With
End Sub

Sinon, pour le cas ou c'est bien de ta feuille qu'il s'agit, j'avoue n'avoir jamais essaye de maximiser ma feuille puisque si elle est deja comme ca a l'enregistrement du fichier, y a pas de raison pour qu'elle ne le soit plus a l'ouverture... 😉
Essaie de desactiver le windowstate pour voir...
Peut etre qu'un petit exemple de ton fichier d'origine m'en dirait plus...

Bonne soiree

Olivier
 
Bonjour Olivier,

Merci pour ta réponse. Il s'agit bien de la feuille que je souhaite maintenir en xlMaximized. C'est ma feuille 'welcome'. Et par-dessus, j'affiche un userform qui ne prend pas tout l'écran. La suppression du Windowstate n'a aucun effet, mais en déroulant mon script en debug, je me suis rendue compte que la feuille se réduisait lorsque j'ouvrais d'autres Workbooks et que je réduisais d'autres feuilles du workbook (xlMinimized). Or, je ne veux pas que les autres feuilles des autres workbooks se voient en se chargeant et j'aimerais que ma feuille 'Welcome' reste toujours en grand en fond d'écran, de manière à cacher le chargement et l'activation de toutes les autres feuilles en arrière-plan. Je n'ai donc pas le choix.
Aurais-tu une autre solution ?

Voici un exemple de chargement de mes autres feuilles que je voudrais cacher :

Workbooks.Open filename:=strApplicationPath & '\\classeur.XLS', UpdateLinks:=0
Windows('classeur.XLS').WindowState = xlMinimized
Workbooks('classeur.XLS').Sheets('feuille').Visible = xlVeryHidden
Workbooks('classeur.XLS').Sheets('feuille2').Visible = xlVeryHidden
Workbooks('classeur.XLS').Sheets('feuille').Activate

Merci d'avance,

Isa
 
Bonjour Isa, le forum,

Bien, en ce qui concerne le probleme du a ton ouverture de classeur, je ne peux malheureusement pas t'aider, en tout cas avec cette facon d'operer... Peut etre y aura t'il qq avec une bonne ame pour te renseigner plus avant.
Par contre, je peux te proposer de remplacer ta feuille par un simple UserForm ouvert lui aussi en vbmodeless et plein ecran. Ce qui te permet la meme chose.

Dans Thisworkbook

Private Sub Workbook_Activate()
Load UserForm1
UserForm1.Show vbModeless
End Sub

tu double clique sur ton userform et tu tape ce code

Private Sub tonuserform_initialize()
With tonuserform
StartUpPosition = 3
Width = Application.Width
Height = Application.Height
Left = 0
Top = 0
End With
End Sub

Ca donne pour resultat de t'ouvrir un userform en plein ecran. A charge pour toi de lui donner un aspect 'plaisant'
🙂
Bonne soiree

Olivier
 
Bonjour Olivier,

Merci beaucoup pour le tuyau. Du coup, j'ai utilisé l'astuce mais l'ai arrangée à mon code. J'ai tout d'abord ouvert mon Userform dans l'auto_open sans vbModeless, puis dans son sub initialize, j'ai ouvert le userform de fond (celui que tu me recommandais) en vbModeless. Ainsi, le userform de fond reste bien à l'arrière de mon userform, qui, lui, en bougeant, ne laisse plus de traces.

Encore merci.

A bientôt,

Isa
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

G
Réponses
0
Affichages
605
GeoLek
G
C
Réponses
2
Affichages
3 K
Cocoroboss
C
J
Réponses
2
Affichages
2 K
journeydo
J
M
Réponses
4
Affichages
1 K
Gérard DEZAMIS
G
A
  • Question Question
Réponses
2
Affichages
2 K
adeline
A
F
Réponses
1
Affichages
889
Denis
D
K
Réponses
2
Affichages
866
kiki
K
D
Réponses
4
Affichages
1 K
D
N
Réponses
2
Affichages
1 K
nounours30
N
S
Réponses
2
Affichages
1 K
Sounours
S
J
  • Question Question
Réponses
3
Affichages
1 K
johanaquatique
J
P
  • Question Question
Réponses
1
Affichages
989
Retour