J'ai eu besoin de maintenir un filtre pendant qu'on écrivait sur la feuille
de calcul
J'ai donc mis une userform avec un bouton OK pour, une fois terminées les
corrections , oter le filtre par la suite de la macro
Cette macro devait fonctionner sous excel 97 comme ...2003...
On m'a donné ici le code suivant :
sur la Userform
Private Sub UserForm_Activate()
EnableWindow FindWindowA("XLMAIN", Application.Caption), 1
End Sub
Private Sub UserForm_Initialize()
'place une case pour possibilité de réduire la boite
'Dim hWnd As Long
'hWnd = FindWindowA(vbNullString, Me.Caption)
'SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Inhibe la croix de fermeture, afin d'obliger l'utilsateur à utiliser le
bouton OK ou le bouton Annuler.
If CloseMode = vbFormControlMenu Then
Cancel = True
End If
End Sub
---------------
dans le code
#If vba6 Then
'excel 2000 ....
DialogPourUn.Show 0
#Else
'excel 95 et 97
DialogPourUn.Show
#End If
------------
Ca marche au poil pour excel 97 mais pour excel 2000, la boite est bien non
modale mais... n'arrete pas le code ! si bien que le filtre n'est pas
maintenu et la boite de dialogue ne sert à rien
Qui peut m'indiquer la modification à apporter ...
Oter le zero rends la boite modale donc pas possible d'ecrire derrière...
supprimer tout le texte des macros userform n'améliore rien pour excel 2000
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AndréXS
En fait j'ai fini par mettre la partie finale du code dans le bouton OK de l'userform.. je n'ai pas encore testé sur excel 2000 mais ce devrait etre bon
il faut que l'utilisation de l'userforem soit à la fin de la macro qui le lance...
"AndréXS" <xschiltz> a écrit dans le message de news:
Bonjour à tous
J'ai eu besoin de maintenir un filtre pendant qu'on écrivait sur la feuille de calcul J'ai donc mis une userform avec un bouton OK pour, une fois terminées les corrections , oter le filtre par la suite de la macro
Cette macro devait fonctionner sous excel 97 comme ...2003...
On m'a donné ici le code suivant :
sur la Userform
Private Sub UserForm_Activate() EnableWindow FindWindowA("XLMAIN", Application.Caption), 1 End Sub
Private Sub UserForm_Initialize() 'place une case pour possibilité de réduire la boite 'Dim hWnd As Long 'hWnd = FindWindowA(vbNullString, Me.Caption) 'SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000 End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ' Inhibe la croix de fermeture, afin d'obliger l'utilsateur à utiliser le bouton OK ou le bouton Annuler. If CloseMode = vbFormControlMenu Then Cancel = True End If End Sub
---------------
dans le code
#If vba6 Then 'excel 2000 .... DialogPourUn.Show 0 #Else 'excel 95 et 97 DialogPourUn.Show #End If
------------
Ca marche au poil pour excel 97 mais pour excel 2000, la boite est bien non modale mais... n'arrete pas le code ! si bien que le filtre n'est pas maintenu et la boite de dialogue ne sert à rien
Qui peut m'indiquer la modification à apporter ... Oter le zero rends la boite modale donc pas possible d'ecrire derrière... supprimer tout le texte des macros userform n'améliore rien pour excel 2000
Merci d'avance...
André
En fait j'ai fini par mettre la partie finale du code dans le bouton OK de
l'userform..
je n'ai pas encore testé sur excel 2000 mais ce devrait etre bon
il faut que l'utilisation de l'userforem soit à la fin de la macro qui le
lance...
"AndréXS" <xschiltz> a écrit dans le message de news:
OLmLUYFQGHA.3672@TK2MSFTNGP14.phx.gbl...
Bonjour à tous
J'ai eu besoin de maintenir un filtre pendant qu'on écrivait sur la
feuille de calcul
J'ai donc mis une userform avec un bouton OK pour, une fois terminées les
corrections , oter le filtre par la suite de la macro
Cette macro devait fonctionner sous excel 97 comme ...2003...
On m'a donné ici le code suivant :
sur la Userform
Private Sub UserForm_Activate()
EnableWindow FindWindowA("XLMAIN", Application.Caption), 1
End Sub
Private Sub UserForm_Initialize()
'place une case pour possibilité de réduire la boite
'Dim hWnd As Long
'hWnd = FindWindowA(vbNullString, Me.Caption)
'SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Inhibe la croix de fermeture, afin d'obliger l'utilsateur à utiliser le
bouton OK ou le bouton Annuler.
If CloseMode = vbFormControlMenu Then
Cancel = True
End If
End Sub
---------------
dans le code
#If vba6 Then
'excel 2000 ....
DialogPourUn.Show 0
#Else
'excel 95 et 97
DialogPourUn.Show
#End If
------------
Ca marche au poil pour excel 97 mais pour excel 2000, la boite est bien
non modale mais... n'arrete pas le code ! si bien que le filtre n'est pas
maintenu et la boite de dialogue ne sert à rien
Qui peut m'indiquer la modification à apporter ...
Oter le zero rends la boite modale donc pas possible d'ecrire derrière...
supprimer tout le texte des macros userform n'améliore rien pour excel
2000
En fait j'ai fini par mettre la partie finale du code dans le bouton OK de l'userform.. je n'ai pas encore testé sur excel 2000 mais ce devrait etre bon
il faut que l'utilisation de l'userforem soit à la fin de la macro qui le lance...
"AndréXS" <xschiltz> a écrit dans le message de news:
Bonjour à tous
J'ai eu besoin de maintenir un filtre pendant qu'on écrivait sur la feuille de calcul J'ai donc mis une userform avec un bouton OK pour, une fois terminées les corrections , oter le filtre par la suite de la macro
Cette macro devait fonctionner sous excel 97 comme ...2003...
On m'a donné ici le code suivant :
sur la Userform
Private Sub UserForm_Activate() EnableWindow FindWindowA("XLMAIN", Application.Caption), 1 End Sub
Private Sub UserForm_Initialize() 'place une case pour possibilité de réduire la boite 'Dim hWnd As Long 'hWnd = FindWindowA(vbNullString, Me.Caption) 'SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000 End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ' Inhibe la croix de fermeture, afin d'obliger l'utilsateur à utiliser le bouton OK ou le bouton Annuler. If CloseMode = vbFormControlMenu Then Cancel = True End If End Sub
---------------
dans le code
#If vba6 Then 'excel 2000 .... DialogPourUn.Show 0 #Else 'excel 95 et 97 DialogPourUn.Show #End If
------------
Ca marche au poil pour excel 97 mais pour excel 2000, la boite est bien non modale mais... n'arrete pas le code ! si bien que le filtre n'est pas maintenu et la boite de dialogue ne sert à rien
Qui peut m'indiquer la modification à apporter ... Oter le zero rends la boite modale donc pas possible d'ecrire derrière... supprimer tout le texte des macros userform n'améliore rien pour excel 2000
Merci d'avance...
André
JpPradier
Bonsoir AndréXS
Si tu veux que le code s'arrete avec l'userform, il faut que celui-ci soit modal et donc : #If vba6 Then 'excel 2000 .... DialogPourUn.Show 1 #Else 'excel 95 et 97 DialogPourUn.Show #End If
j-p
Bonsoir AndréXS
Si tu veux que le code s'arrete avec l'userform, il faut que celui-ci soit modal et donc :
#If vba6 Then
'excel 2000 ....
DialogPourUn.Show 1
#Else
'excel 95 et 97
DialogPourUn.Show
#End If
Si tu veux que le code s'arrete avec l'userform, il faut que celui-ci soit modal et donc : #If vba6 Then 'excel 2000 .... DialogPourUn.Show 1 #Else 'excel 95 et 97 DialogPourUn.Show #End If