[RESOLU Merci]Problème lorsque je réduis mes Userforms qui sont en plein écran.

perpitou

XLDnaute Occasionnel
Bonjour à tous,
J'ai un problème lorsque je réduis la fenêtre de mes userforms. En effet ils plantent et seuls les images servant de fond d'écran ( à l'userform) restent.
Il faut savoir:
- j'ai mis dans tous mes userforms le showmodal : false ( dans les propriétés)
- Ils sont tous en plein écran avec un code que j'ai trouvé sur une discussion du forum ( Je m'excuse auprès de son auteur de ne pas citer son nom) à savoir:

Dans le MODULE1:

Code:
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Const GWL_STYLE = (-16), GWL_EXSTYLE = (-20), WS_SIZEBOX = &H40000, WS_TROIS_BOUTON = &H70000, WS_EX_APPWINDOW = &H40000
Public l(), h(), f(), p(), s() As String, wLong As Long, hWnd As Long, i, c As Control, la As Long, ha As Long
Public user As Object



Sub es()
i = 0: ha = user.Height: la = user.Width
For Each c In user.Controls
 i = i + 1
 ReDim Preserve l(i): l(i) = c.Width
 ReDim Preserve h(i): h(i) = c.Height
 ReDim Preserve p(i): p(i) = c.Top
 ReDim Preserve f(i): f(i) = c.Left
 ReDim Preserve s(i): s(i) = c.Width / c.Font.Size
 Next
hWnd = FindWindow(vbNullString, user.Caption)
wLong = GetWindowLongA(hWnd, GWL_STYLE) Or WS_SIZEBOX Or WS_TROIS_BOUTON
SetWindowLong hWnd, GWL_STYLE, wLong
ShowWindow hWnd, 3 'plein ecran a ouverture
End Sub
Sub zz()
On Error Resume Next
i = 0
For Each c In user.Controls
i = i + 1
c.Width = user.Width / (la / l(i))
c.Height = user.Height / (ha / h(i))
c.Left = user.Width / (la / f(i))
c.Top = user.Height / (ha / p(i))
c.Font.Size = c.Width / s(i)
Next
End Sub

et Dans tous les userforms :

Code:
Private Sub UserForm_Activate()
Set user = Me: es
End Sub

Private Sub UserForm_Resize()
zz
End Sub

Merci d'avance!!

Bien cordialement,
perpitou
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Problème lorsque je réduis mes Userforms qui sont en plein écran.

re,
il y a que cette user qui pose pb..??

autrement essai d'inverser seulement pour user menu

Code:
Private Sub UserForm_Activate()
ShowWindow hWnd, 3
End Sub

Private Sub UserForm_Initialize()
i = 0: ha = Me.Height: la = Me.Width
For Each c In Me.Controls
 ReDim Preserve l(i): l(i) = c.Width
 ReDim Preserve h(i): h(i) = c.Height
 ReDim Preserve p(i): p(i) = c.Top
 ReDim Preserve f(i): f(i) = c.Left
 ReDim Preserve s(i): s(i) = c.Width / c.Font.Size
  i = i + 1
 Next
hWnd = FindWindow(vbNullString, Me.Caption)
wLong = GetWindowLongA(hWnd, GWL_STYLE) Or WS_SIZEBOX Or WS_TROIS_BOUTON
SetWindowLong hWnd, GWL_STYLE, wLong
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : Problème lorsque je réduis mes Userforms qui sont en plein écran.

re, je pense avoir compris le pb..
l'action d'ouvrir plusieurs perd les variables d'origine
peut etre se dire de que tu ouvres un autre user.. fermer user menu puis reouverture des que tu ferme celui qui a le focus
autrement il faudrait stoker les variables de chaque de chaque user dans une feuille temp par exemple
il faut reflechir au pb

au depart il faudrait savoir ce que tu fais exactement avec tes users
comme je comprends tu ouvres le principale puis tu en selectionne un autre que tu peus reduire agrandir ect..possibilite dans ouvrir un second rappeler le premier reduit ect..
si tu pouvais confirmer
le pb comme dit plus haut c'est la conservation des variables
Code:
redim preserve
il faut revoir le concept avec plusieurs users
 

perpitou

XLDnaute Occasionnel
Re : Problème lorsque je réduis mes Userforms qui sont en plein écran.

oui je veux pouvoir ouvrir un fichier excel ou autres et donc réduire mon userform frmMenu et les autres.. Puis d'agrandir si nécessaires et ainsi de suite..

Mais j'ai défini les user dans chaque userforms pourquoi confond il les variables?

Enfin mes connaissances sont faibles....

Mais en tout cas merci Beaucoup!!!! :p
 

perpitou

XLDnaute Occasionnel
Re : Problème lorsque je réduis mes Userforms qui sont en plein écran.

Bonjour Laetitia et les autres,

J'ai trouvé la solution grâce à toi. Je ne sais pourquoi le userform frmMenu me confondait les variables avec les autres userforms.

Donc comme tu m'as conseillé, j'ai mis le code du plein écran dans chaque Userform. Mais là encore le problème persistait.

Donc j'ai fait une chsoe toute bête à chaque ouverture d'un Userform j'enlevé le userform Menu.

Exemple

pour Command Button 1:
Unload frmMenu
frmSaucisson.Show

Du coup je n'ai plus qu'un userform qui est actif à la fois donc pas de problème de confusion entre les variables....

Magnifiques!!! :)

Merci Pour tout !!!!!!!!!!!!!!
 

MJ13

XLDnaute Barbatruc
Re : [RESOLU Merci]Problème lorsque je réduis mes Userforms qui sont en plein écran.

Bonjour à tous

J'ai trouvé la solution grâce à toi. Je ne sais pourquoi le userform frmMenu me confondait les variables avec les autres userforms.

D'où l'intérêt de mettre un fichier quand on parle de Userform :).

Par contre, on aura sans doute jamais le fichier corrigé :eek:.
 

laetitia90

XLDnaute Barbatruc
Re : [RESOLU Merci]Problème lorsque je réduis mes Userforms qui sont en plein écran.

re, bonjour michel:):)

si cela marche peut être reéssayer avec la variable public
j'ai pas mis les images trop lourd
pour michel c'est le meme principe dans le zip:):)
 

Pièces jointes

  • Copie de 3LmktkoZYIG_Interface_Dossier_Chantier-2.zip
    39.6 KB · Affichages: 25

perpitou

XLDnaute Occasionnel
Re : [RESOLU Merci]Problème lorsque je réduis mes Userforms qui sont en plein écran.

Bonjour Michel, Bonjour Laeticia,
Ah oui excusez moi j'ai enlevé les liens de l'ancien fichier!! Merci laetitia90 de transmettre le fichier et donc cela fonctionne! Pourquoi?? c'est un autre problème...

Merci encore
 

Discussions similaires

Réponses
1
Affichages
1 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 312
Messages
2 087 159
Membres
103 484
dernier inscrit
maintenance alkern