Initialisation de deux UserForm!

Initialisation de deux UserForm! - VB/VBA/VBS - Programmation

Marsh Posté le 31-05-2006 à 19:20:02    

Bonsoir
 
Voila j'ai une feuille excel avec deux bouton.
l'action sur l'un des deux boutons entraine l'affichage d'un userform, qui est initialisé avec private sub UserForm_Initialize
 
J'ai l'impression que cette sub est intrinseque a vb. car je voudais la transformer en fonction afin d'initialiser le userform approprié à l'action sur le bouton.
 
voila mon code :
 
 
Private Sub CommandButton2_Click()
 
Dim logical As boolean
logical = commandbutton2.Value    
UserForm_Initialize(logical)  
 
End Sub
 
Private Sub CommandButton3_Click()  
    ....'c'est le meme principe que sauf que l'on force logical à false
End Sub
 
Function UserForm_Initialize(etat_boutton as boolean)
    Dim MyUser As UserForm
     
    If logical = True Then
    Set MyUser = UserForm1
    Else
    Set MyUser = UserForm2
    End If
     
End Function
 
apres ca se complique car et je n'ai jamais tres bien compris prkoi le set Myser  
 
va dans la partie d'initialisation a proprement parlé
le code
'a mettre toujours au debut dans le user pettons le mettre dans un module à part? je pense que c'est de
la que vient mon erreur
 
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 Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 
Function UserForm_Initialize(etat_bouton As boolean) 'ici vba rale a la compilation car il trouve deux fct 'semblable alors qu'a l'origine avec Private Sub UserForm_Initialize ya pas de probleme, mais bon moi j'ai deux user a 'initialiser...
Dim hWnd As Long
hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D" ) & "Frame", Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
UserForm1.Show ou UserForm2.Show selon le Set MyUser = UserForm..dependant de l'etat du bouton
EtiquetteErreur:
For i = 1 To 100
On Error GoTo zut
MyUser.Show
Next i
End
zut:
Resume Next
End Sub
 
Si vous pouvez m'aider ca serait cool, j'ai envie de diminuer la taille du code c'est pourcela que j'aimerai faire une fonction.
 
BYe
 
lden


Message édité par lden le 02-06-2006 à 09:24:00
Reply

Marsh Posté le 31-05-2006 à 19:20:02   

Reply

Marsh Posté le 31-05-2006 à 19:29:28    

j'ai en plus l'impression qu'on ne peut pas renomer userform_initialize en userform_initialize1 puis 2 ...
mama mia help!

Reply

Marsh Posté le 31-05-2006 à 19:36:33    

en gros le pb c'est comment aller dans le bon module (UserForm1 ou UserForm2), sans passer par une fonction....donc sans pourvoir récupérer une valeur d'etat des bouton qui font apparaitre l'userForm....
 
c'est galere n'est ce pas!
 
++

Reply

Marsh Posté le 01-06-2006 à 09:30:05    

svp les copains!!!!
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed