Prb Userform

Bonjour,

 

Dans solidworks j'ai créé un bouton macro.

 

Quand je clic sur le bouton, l'userform se lance derrière solidworks ce qui est gênant pour l'utilisateur de devoir cherché l'userform. (userform.show)

Il faut alors réduire la fenêtre solidworks puis la ré-ouvrir pour que l'userform soit affiché.

 

Mais ce n'est qu'à la première ouvrerture que ce problème apparait...

 

Une idée?

 

Merci d'avance,

 

JB

Je ne connais pas trop les macros mais peut être un début de réponse ici

http://forum.hardware.fr/hfr/Programmation/VB-VBA-VBS/premier-plan-userform-sujet_77278_1.htm

 

ou la

http://www.excel-downloads.com/forum/200197-garder-un-userform-au-premier-plan-de-lecran-windows.html

 

en espérant t'avoir été utile

 

Happydad

Bonjour, il faudrait ajouter cette ligne :

 

Application.WindowState = xlMinimized
UserForm1.Show wbmodeless

 

 

Tiens nous au courant ! ;)

Bonjour,

 

Une piste à tester :

 

Private Sub UserForm_Activate()

With Me

     .StartUpPosition = 3

     .Width = Application.Width

     .Height = Application.Height

     .Left = 0

     .Top = 0

End With

End Sub

 

Source :

http://www.commentcamarche.net/forum/affich-27509585-userform-reste-en-arriere-plan

 

Verifier que la propriété du user form ShowModal = True

 

Mais c'est un pb connu sur certaines versions, il faut passer par des api windows poir forcer

la fenetre au premier plan

 

dans la partie declaration

 

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long

Private Declare Function SetWindowPos Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal X As Long, _ ByVal Y As Long, _ ByVal cx As Long, _ ByVal cy As Long, _ ByVal wFlags As Long) As Long

Private Const HWND_TOPMOST = -1

Private Const HWND_NOTOPMOST = -2

Private Const SWP_NOMOVE = &H2

Private Const SWP_NOSIZE = &H1

Private mlHwnd As Long

 

et dans le activate du formulaire

 

SetWindowPos mlHwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

7 « J'aime »

Merci vos réponsses,

 

Lucas,

J'ai ==>   .Width = Application.Width

qui me créer une erreur d'éxécution '438'

Propriété ou méthode non gérée par cet objet

 

Jfaradon

SetWindowPos 

me fait sub ou fonction non définit

 

Bart

wbmodeless

variable non définit

 

par contre maintenant quand solidworks est ouvert quand j'active des fenêtres (internet, word, excel...) ils restent derrière.

 

Je pense que c'est une des solutions qui à modifié un paramètre (Jfaradon ou Lucas)

C'est vrai que mon copier coller etait un peu rapide; en plus il fallait corriger en syntaxe 64

 

je mais ici un exemple de macro avec cette gestion via api windows du premier plan


exemple_topmost.zip
6 « J'aime »

Bonjour,

 

Tente un petit:

Me.topmost=true

 

Sur mes petites applis en VB.Net ça fonctionne.

Cordialement.

 

J'ai oublié de préciser que je programme en VBA.

 

c'est peut être pour cela que ces codes ne fonctionnent pas...

 

L'aide solidworks ne connait pas "topmost" ni "SetWindowPos ".

 

Classique mais ça devrai résoudre ton soucis:

http://support.microsoft.com/kb/184297/fr

FP