Problème de rafraichissement de l'affichage

Isa

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

  • pb_rafraichissement.zip
    10.4 KB · Affichages: 29

deudecos

XLDnaute Impliqué
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
 

Isa

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

deudecos

XLDnaute Impliqué
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
 

Isa

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

deudecos

XLDnaute Impliqué
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
 

Isa

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

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 774
Membres
103 662
dernier inscrit
rterterert