sortir de sub auto_close

Le
delta7253
bonjour,

Au moment de quitter un fichier excel, je vérifie certaines saisies.
Pour cela, dans la macro auto_close j'ai mis un "branchement" vers une macro
pour retourner dans le fichier si les saisies ne sont pas correctes.
Et ça ne marche pas !
J'ai mis un msgbox avant et un après le "branchement". Les deux s'affichent
et ..mon fichier se ferme.
Y a t'il une solution pour sortir de auto_close ?


Sub auto_close()
If valid_faite = 0 Then
MsgBox ("Vous devez valider votre saisie avant de fermer Excel")
retour_dans_le_fichier ' macro ci-dessous
MsgBox ("toto")
End If
'on reprotège la feuille avant de sortir
Worksheets("feuil1").Protect Password:="xxxxx"
End Sub

Sub retour_dans_le_fichier()
Range("B12").Select
End Sub


Merci de votre attention.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #4987381
bonjour ,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If valid_faite = 0 Then
MsgBox ("Vous devez valider votre saisie avant de fermer Excel")
Cancel = True
End If
'on reprotège la feuille avant de sortir
Worksheets("feuil1").Protect Password:="xxxxx"
End Sub


isabelle


bonjour,

Au moment de quitter un fichier excel, je vérifie certaines saisies.
Pour cela, dans la macro auto_close j'ai mis un "branchement" vers une macro
pour retourner dans le fichier si les saisies ne sont pas correctes.
Et ça ne marche pas !
J'ai mis un msgbox avant et un après le "branchement". Les deux s'affichent
et ........mon fichier se ferme.
Y a t'il une solution pour sortir de auto_close ?


Sub auto_close()
If valid_faite = 0 Then
MsgBox ("Vous devez valider votre saisie avant de fermer Excel")
retour_dans_le_fichier ' macro ci-dessous
MsgBox ("toto")
End If
'on reprotège la feuille avant de sortir
Worksheets("feuil1").Protect Password:="xxxxx"
End Sub

Sub retour_dans_le_fichier()
Range("B12").Select
End Sub


Merci de votre attention.




LSteph
Le #4987121
Bonsoir,

En complément...

On utilise plus guère cet auto_close ni auto_open.
Comme indiqué par Isabelle utilises plutôt le beforeclose.
Pour mettre ce code regarde dans VBE dans explorateur de projet
qui s'affiche normalement sur ta gauche, dans ton projet tu trouves
ThisWorkbook, doubleclique dessus, le module de code propre au classeur
s'affiche avec par défaut la procèdure dévolue à l'évennement open du
classeur.
Remplace le par le code d'Isabelle. C'est grâce à Cancel qu'on évite la
fermeture.

Pour info:
Dans le déroulant en haut à droite du module tu trouveras la liste des
évennements de classeur.

Cordialement.

--
lSteph

bonjour,

Au moment de quitter un fichier excel, je vérifie certaines saisies.
Pour cela, dans la macro auto_close j'ai mis un "branchement" vers une macro
pour retourner dans le fichier si les saisies ne sont pas correctes.
Et ça ne marche pas !
J'ai mis un msgbox avant et un après le "branchement". Les deux s'affichent
et ........mon fichier se ferme.
Y a t'il une solution pour sortir de auto_close ?


Sub auto_close()
If valid_faite = 0 Then
MsgBox ("Vous devez valider votre saisie avant de fermer Excel")
retour_dans_le_fichier ' macro ci-dessous
MsgBox ("toto")
End If
'on reprotège la feuille avant de sortir
Worksheets("feuil1").Protect Password:="xxxxx"
End Sub

Sub retour_dans_le_fichier()
Range("B12").Select
End Sub


Merci de votre attention.




delta7253
Le #4985121
Désolé d'avoir trainé, je viens seulement de tester ta formule. Avec le
complément de Steph (ci-dessous), c'est impec.
Merci beaucoup.



"isabelle" a écrit dans le message de news:

bonjour ,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If valid_faite = 0 Then
MsgBox ("Vous devez valider votre saisie avant de fermer Excel")
Cancel = True
End If
'on reprotège la feuille avant de sortir
Worksheets("feuil1").Protect Password:="xxxxx"
End Sub


isabelle


bonjour,

Au moment de quitter un fichier excel, je vérifie certaines saisies.
Pour cela, dans la macro auto_close j'ai mis un "branchement" vers une
macro pour retourner dans le fichier si les saisies ne sont pas
correctes.
Et ça ne marche pas !
J'ai mis un msgbox avant et un après le "branchement". Les deux
s'affichent et ........mon fichier se ferme.
Y a t'il une solution pour sortir de auto_close ?


Sub auto_close()
If valid_faite = 0 Then
MsgBox ("Vous devez valider votre saisie avant de fermer Excel")
retour_dans_le_fichier ' macro ci-dessous
MsgBox ("toto")
End If
'on reprotège la feuille avant de sortir
Worksheets("feuil1").Protect Password:="xxxxx"
End Sub

Sub retour_dans_le_fichier()
Range("B12").Select
End Sub


Merci de votre attention.




delta7253
Le #4985111
merci beaucoup, le "complément" m'a bien servi en plus de la formule
d'Isabelle.
j'abandonne auto_open et auto_close.


"LSteph"
Bonsoir,

En complément...

On utilise plus guère cet auto_close ni auto_open.
Comme indiqué par Isabelle utilises plutôt le beforeclose.
Pour mettre ce code regarde dans VBE dans explorateur de projet
qui s'affiche normalement sur ta gauche, dans ton projet tu trouves
ThisWorkbook, doubleclique dessus, le module de code propre au classeur
s'affiche avec par défaut la procèdure dévolue à l'évennement open du
classeur.
Remplace le par le code d'Isabelle. C'est grâce à Cancel qu'on évite la
fermeture.

Pour info:
Dans le déroulant en haut à droite du module tu trouveras la liste des
évennements de classeur.

Cordialement.

--
lSteph

bonjour,

Au moment de quitter un fichier excel, je vérifie certaines saisies.
Pour cela, dans la macro auto_close j'ai mis un "branchement" vers une
macro pour retourner dans le fichier si les saisies ne sont pas
correctes.
Et ça ne marche pas !
J'ai mis un msgbox avant et un après le "branchement". Les deux
s'affichent et ........mon fichier se ferme.
Y a t'il une solution pour sortir de auto_close ?


Sub auto_close()
If valid_faite = 0 Then
MsgBox ("Vous devez valider votre saisie avant de fermer Excel")
retour_dans_le_fichier ' macro ci-dessous
MsgBox ("toto")
End If
'on reprotège la feuille avant de sortir
Worksheets("feuil1").Protect Password:="xxxxx"
End Sub

Sub retour_dans_le_fichier()
Range("B12").Select
End Sub


Merci de votre attention.




Publicité
Poster une réponse
Anonyme