Code userform interrompu

  • Initiateur de la discussion Oliver
  • Date de début
O

Oliver

Guest
Bonjour le forum,

je travaille sous Excel 97 et j'ai un problème pour exécuter un code vba dans un userform.
J'ai 2 userform :
- Le premier est le formulaire de saisie des données.
- Le second est une fenetre d'attente.

Mon soucis est lorsque je clique sur le bouton 'valider' de mon 1er userform, j'affiche la fenetre d'attente pour indiquer que excel est en train de calculer, mais l'affichage de ce 2eme userform interrompt l'exécution du 1er (c'est le 1er qui calcule), bref, tant que je ne quitte pas le 2eme userform, le 1er ne peut pas continuer de travailler.

J'ai essayé de rendre mes userforms non modal, mais ca ne donne rien.
Est-il possible de faire des threads sous vba, pour faire de l'exécution parallèle ?

Je vous remercie d'avance pour les pistes de réponses.

Bonne journée :)
 

Hervé

XLDnaute Barbatruc
Bonjour olivier :)

Pourtant, la solution passe bien par l'affichage non modal de tes 2 usf.

encore faut-il savoir comment tu as précisé cette propriété.

pour excel97, il existe une procédure particulière expliquée dans ce post.

Lien supprimé

salut
 
O

Oliver

Guest
Salut,
j'utilise ce code de S.Bullen, trouvé sur ce forum :

Option Explicit ' (USERFORM NON-MONDAL sous XL97 De Stephen Bullen)

Private Declare Function FindWindowA Lib 'User32' _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function EnableWindow Lib 'User32' _
(ByVal hWnd As Long, ByVal bEnable As Long) As Long

Private Declare Function GetWindowLongA Lib 'User32' _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib 'User32' _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Sub UserForm_Activate()
EnableWindow FindWindowA('XLMAIN', Application.Caption), 1
End Sub

Private Sub UserForm_Initialize()
Dim hWnd As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000
End Sub

Ce code est présent sur mes 2 userforms, mais bloque toujours le code. Peut-etre y a t'il une option à cocher dans Excel ?

Merci bcp pour ton aide :)

Bon après midi
 

Discussions similaires

Réponses
18
Affichages
801

Statistiques des forums

Discussions
312 615
Messages
2 090 243
Membres
104 465
dernier inscrit
Motuss