Mais je l'insert dans mon code existant et je n'arrive pas à le faire marcher.
Tout fonctionne ormis le fait que en quittant le classeur excel mes feuilles ne se mettent pas à l'état xlveryhidden.
Comme dans mon code je protège puis déprotège mes feuilles je me suis posé la question mais ça ne viens pas de là.
Alors je me pose des questions et je sais pas quoi faire ça fais 3 jours que je suis dessus.
Bon a part ça, ça signifie quoi exactement "If MyFileIsOpen = True Then Exit Sub"
jordane45
Messages postés38112Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention29 mars 2024344 21 oct. 2010 à 08:25
Bonjour,
ça signifie quoi exactement "If MyFileIsOpen = True Then Exit Sub"
je n'ai pas regardé complètement le code de la page indiquée..; mais en lisant comme ça je dirais que tu dois certaienement une fonction dans ton code qui vérifie si ton fichier est ouvert ( My File is Open => mon fichier est ouvert) .
Si c'est le cas, le test ( If.. then) lui demande de quitter la Sub (exit Sub)
en quittant le classeur excel mes feuilles ne se mettent pas à l'état xlveryhidden.
As-tu dans ton code, une partie qui concerne : Workbook_Beforeclose () ?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' /
' Ici le code à traiter à la fermeture de ton classeur.
'/
End Sub
Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 21 oct. 2010 à 10:19
Salut,
comme dit dans l'explication, tant que ce fichier est ouvert excel ne peut être fermer et le fichier lui même ne peut être fermer que par le bouton dans la feuille "Sheet1".
Lors de l'ouverture de ce fichier "MyFileIsOpen" est passé à "True" pour permetre d'interdire toute fermeture du fichier ou d'excel.
Pour cela il suffit de vérifier au niveau des événements "BeforClose" du fichier et "WorkBookBeforClose" de l'application si "MyFileIsOpen" est à "true".
"If MyFileIsOpen = True Then Exit Sub" fait cette vérif. au niveau de l'evenement "BeforClose" du fichier.
Si tu ne veux pas de cette fonction tu doit supprimer les lignes:
"MyFileIsOpen = True" de l’événement "Workbook_Open" du fichier
"If MyFileIsOpen = True Then Exit Sub" de l’événement "Workbook_BeforeClose" du fichier
Tu doit virer du module de classe "ClasseAppli" la sub :
Private Sub XL_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
'interdit la fermeture de ce classeur ou d'excel tant qu'il est ouvert
If Wb.Name ThisWorkbook.Name And MyFileIsOpen True Then
Cancel = True
End If
End Sub
Et pour que ce soit propre virer la declaration de la variable "MyFileIsOpen As Boolean" qui se trouve dans "module1"
mougla
Messages postés2Date d'inscriptionmercredi 20 octobre 2010StatutMembreDernière intervention21 octobre 2010 21 oct. 2010 à 13:29
Salut, et merci de vous occuper de mon cas
En fait, je veux garder MyFileIsOpen.
J'ai regardé en fait j'ai l'impression que mon problème vient du fait que lorsque je clic sur le bouton de la feuil1, mes feuilles ne se cache pas.
En manuelle quand j'active independemment la macro hidesheet là elle se mettent en xlveryhidden
Par contre En manuelle quand j'active la macro Sub
Rectangle323_QuandClic()
ClosingThisFile
End Sub
la macro en passant par hidesheets ne cache pas les feuilles et ne découvre pas "starting notice" ???
De plus j'ai l'impression que ça m'enpeche en plus de sauvegarder cette affaire. Car quand je passe par le bouton il me demande si je veux enregistrer, je mets oui et la ça fait rien du tout.