appel Macro via UserForm(Resolu) - VB/VBA/VBS - Programmation
Marsh Posté le 11-01-2006 à 09:58:11
c'est pas userform1.hide ?
A mettre dans Sub OptionButton1_Click() je pense
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!++
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
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