appel Macro via UserForm(Resolu)

appel Macro via UserForm(Resolu) - VB/VBA/VBS - Programmation

Marsh Posté le 10-01-2006 à 16:52:21    

Bonjour,
 
Voila j'ai un userform d'un l'un des bouton d'option declenche l'execution d'une macro.
A la fin de cette macro je dois unloader, correctement, l' userform afin que l'utilisateur puisse interagir avec le fichier word.
Dois je pratiquer Unload UserForm1 a la fin de la macro ou bien dans Private Sub UserForm_Click()
ou bien dans Sub OptionButton1_Click()
 
sachant que j'utilise un module comme suit qui me permet de supprimer la croix de la box correspondant à l'userform:
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormCode Then Cancel = False
End Sub
 
J'ai l'erreur 91 dans le cas ci dessous:variable objet ou variable de bloc with non definie
Merci les gars!!
 
PS: voila les different modules de code:
 
Code UserForm
 
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
 
Private Sub UserForm_Initialize()
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
End Sub
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormCode Then Cancel = False
End Sub
 
Private Sub Label1_Click()
 
End Sub
 
Sub OptionButton1_Click()
 
Dim logical As Boolean
logical = OptionButton1.Value
 
#If logical = Vrai Then
    Call e_c_t     appel de la macro e_c_t dans la section module du projet
#Else
    MsgBox ("bizarre" )
#End If
Unload UserForm1      
End Sub
 
 
code thisdocument
 
Private Sub Document_Open()
UserForm_Initialize
End Sub
Private Sub UserForm_Initialize()
Load (UserForm1)
End Sub
Private Sub UserForm_Click()
    Unload UserForm1
End Sub
 
Private Sub CheckBox3_Click()
 
End Sub
 
Private Sub CheckBox4_Click()
 
End Sub
 
Private Sub Document_New()
 
End Sub
 
 
la macro vous avez pas besoin de la voir!!!!


Message édité par lden le 11-01-2006 à 11:45:24
Reply

Marsh Posté le 10-01-2006 à 16:52:21   

Reply

Marsh Posté le 11-01-2006 à 08:30:05    

s'il vous plait help me please!!!

Reply

Marsh Posté le 11-01-2006 à 09:58:11    

c'est pas  userform1.hide ?
A mettre dans Sub OptionButton1_Click() je pense


Message édité par Gusdabo le 11-01-2006 à 10:50:09
Reply

Marsh Posté le 11-01-2006 à 11:45:01    

humm ca ca se deload pas la le cache mais j'ai trouve entre tps merci qd meme!++

Reply

Marsh Posté le 11-01-2006 à 11:56:51    

Donne la réponse, ca peut servir...

Reply

Marsh Posté le 11-01-2006 à 12:35:18    

la repose c'est de declarer le user comme suit dans le Private Sub UserForm_Initialize()  
Dim MyUser As UserForm
Set MyUser = UserForm
 
Pour ce qui est de l'erreur je l'ai géré par le code suivant que j'ai insere apres la ligne entrainant l'erreur, c'est a dire: UserForm1.Show  
 
EtiquetteErreur:
For i =1 To 100
On Error GoTo zut
MyUser.Show
Next i
End
zut:
Resume Next
 

Reply

Sujets relatifs:

Leave a Replay

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