pb userform

B

bracq

Guest
voici mon pb:
avec un userform je lance un calcul sur une feuille, et une fois termine je dois appuyer sur un CommandButton "Quit" pour pouvoir faire apparaitre cette nvelle feuille de calcul.
1-Comment faire pour pouvoir garder a l ecran mon userform et afficher en meme temps la nvelle feuille?
2-Si 1 fonctionne mon userform sera - t - il encore actif?

merci
 
@

@+Thierry

Guest
Salut Bracq et le Forum,

Si tu as XL2000 ou XP, tu peux lancer ton UserForm en Mode Non-Modal (Non Supporté par XL97)

Il suffit de d'ajouter un 0 ou un False à la commande d'ouverture

Private Sub CommandButton1_Click()
UserForm1.Show 0
End Sub

Ensuite tu pourras saisir dans la feuille, ou une autre, en insérer une nouvelle, ou même ouvrir un autre classeur...

Le UserForm, quand à lui sera toujours Visible en Premier plan, mais il ne sera pas actif si tu travaille sur autre chose, cependant les données qu'il aurait calculé en variable sont, quant à elles, tout à fait accessibles.

Bon Appétit
@+Thierry
 
@

@+Thierry

Guest
Re Salut

Oui STéphane a raison on peut du Non-Modal apparemment sous 97 sous réserve que cette API fonctionne, je viens de trouver ceci de Stephen Bullen.

C'est une API à mettre en tête du Private Module en question... Je viens d'essayer sous 2000 çà tourne !

A voir sous XL 97...


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


Dis nous si celà marche !!!!

Bon Aprèm
@+Thierry
 
@

@+Thierry

Guest
>>> DATABASE XLD <<< FIL RECENCEMENT FIL >> 28743 "UserForm Non-Mondal XL97"

Bonjour Bracq, STéphane, et le Forum.


Merci de ta confirmation, cela sera, sans nul doute, d'une très grande utilité pour les Excellien encore sous la Version 97 (Excel/Office 8.0)

Et donc je recommande de recenser ce Fil dans :

==> Lien supprimé

==> Lien supprimé (47k)

==>DATABASE XLD (Utilitaire de MAJ) (15k)

STéphane m'a proposé des améliorations pour cette Database... Bientôt, une new update, je pense....

Bonne Journée
@+Thierry


PS : je suis mort de rire au fait avec l'utilitaire de de Mise A Jour... Il est muni d'un bouton d'Auto-Expédition dans ma BAL... J'en ai recu une bonne Vingtaine en provenance de "Toto", "Test" ou encore de blanck.... Et évidemment non remplis !... (mis à part l'adresse email de l'expéditeur/trice)

Je vous rappelle que ce n'est pas un jouet... Cà s'auto envoi rééllement... Alors SVP évitez de faire des tests inutiles, çà marche !!! (surtout la personne qui me l'a envoyé au moins 5 fois, qui se reconnaitra si elle passe par là...)
Enfin c'est pas grave !
 

Discussions similaires