Je suis face à un pb que je n'imaginais pas ...
Une procédure de temporisation me rouvre un classeur Excel !!!
Je vais essayer de faire court (peut-être trop pour certain !) en
indiquant que le code qui concerne la tempo :
Dans ThiWorkbook :
'----
Private Sub Workbook_Open()
Call ProchaineAlerte
'----
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
On Error Resume Next
Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=False
ProchaineAlerte
End Sub
'-----
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
bla, bla
On Error Resume Next
Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin",
Schedule:=False
End Sub
'---
Et dans un module standard :
'---
Public HeureAlerte
Sub ProchaineAlerte()
HeureAlerte = Now + TimeValue("00:10:10")
Application.OnTime HeureAlerte, "Fin"
End Sub
'---
Sub Fin()
On Error Resume Next
Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=False
'annule événnement
Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", vbYesNo
+ vbQuestion)
If Réponse = vbNo Then
Call ProchaineAlerte
Else
On Error Resume Next
Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin",
Schedule:=False
MsgBox "essai ..." '"Au revoir ..."
' ActiveWorkbook.Save
'ThisWorkbook.Close True
End If
End Sub
'---
J'ai planché pas mal de temps aujourd'hui sur le sujet, et je suis à
court d'idée pour résoudre ce pb !
Je suis face à un pb que je n'imaginais pas ... Une procédure de temporisation me rouvre un classeur Excel !!!
Je vais essayer de faire court (peut-être trop pour certain !) en indiquant que le code qui concerne la tempo :
Dans ThiWorkbook :
'---- Private Sub Workbook_Open()
Call ProchaineAlerte '----
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=F alse ProchaineAlerte End Sub
'----- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
bla, bla
On Error Resume Next Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin ", Schedule:úlse
End Sub '---
Et dans un module standard :
'--- Public HeureAlerte Sub ProchaineAlerte() HeureAlerte = Now + TimeValue("00:10:10") Application.OnTime HeureAlerte, "Fin" End Sub '---
Sub Fin()
On Error Resume Next Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=F alse 'annule événnement
Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", v bYesNo + vbQuestion) If Réponse = vbNo Then Call ProchaineAlerte Else On Error Resume Next Application.OnTime EarliestTime:=HeureAlerte, Procedure :="fin", Schedule:úlse MsgBox "essai ..." '"Au revoir ..." ' ActiveWorkbook.Save 'ThisWorkbook.Close True End If End Sub '---
J'ai planché pas mal de temps aujourd'hui sur le sujet, et je suis à court d'idée pour résoudre ce pb !
Merci d'avance pour votre aide.
JP
Bonsoir,
http://cjoint.com/?meuKaVACUH
JB
On 4 déc, 20:29, j-pascal <messa...@venir.com> wrote:
Bonsoir,
Je suis face à un pb que je n'imaginais pas ...
Une procédure de temporisation me rouvre un classeur Excel !!!
Je vais essayer de faire court (peut-être trop pour certain !) en
indiquant que le code qui concerne la tempo :
Dans ThiWorkbook :
'----
Private Sub Workbook_Open()
Call ProchaineAlerte
'----
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
On Error Resume Next
Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=F alse
ProchaineAlerte
End Sub
'-----
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
bla, bla
On Error Resume Next
Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin ",
Schedule:=False
End Sub
'---
Et dans un module standard :
'---
Public HeureAlerte
Sub ProchaineAlerte()
HeureAlerte = Now + TimeValue("00:10:10")
Application.OnTime HeureAlerte, "Fin"
End Sub
'---
Sub Fin()
On Error Resume Next
Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=F alse
'annule événnement
Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", v bYesNo
+ vbQuestion)
If Réponse = vbNo Then
Call ProchaineAlerte
Else
On Error Resume Next
Application.OnTime EarliestTime:=HeureAlerte, Procedure :="fin",
Schedule:=False
MsgBox "essai ..." '"Au revoir ..."
' ActiveWorkbook.Save
'ThisWorkbook.Close True
End If
End Sub
'---
J'ai planché pas mal de temps aujourd'hui sur le sujet, et je suis à
court d'idée pour résoudre ce pb !
Je suis face à un pb que je n'imaginais pas ... Une procédure de temporisation me rouvre un classeur Excel !!!
Je vais essayer de faire court (peut-être trop pour certain !) en indiquant que le code qui concerne la tempo :
Dans ThiWorkbook :
'---- Private Sub Workbook_Open()
Call ProchaineAlerte '----
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=F alse ProchaineAlerte End Sub
'----- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
bla, bla
On Error Resume Next Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin ", Schedule:úlse
End Sub '---
Et dans un module standard :
'--- Public HeureAlerte Sub ProchaineAlerte() HeureAlerte = Now + TimeValue("00:10:10") Application.OnTime HeureAlerte, "Fin" End Sub '---
Sub Fin()
On Error Resume Next Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:=F alse 'annule événnement
Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", v bYesNo + vbQuestion) If Réponse = vbNo Then Call ProchaineAlerte Else On Error Resume Next Application.OnTime EarliestTime:=HeureAlerte, Procedure :="fin", Schedule:úlse MsgBox "essai ..." '"Au revoir ..." ' ActiveWorkbook.Save 'ThisWorkbook.Close True End If End Sub '---
J'ai planché pas mal de temps aujourd'hui sur le sujet, et je suis à court d'idée pour résoudre ce pb !
Merci d'avance pour votre aide.
JP
j-pascal
Bonsoir Jacques,
Merci pour ta patience !
J'ai donc "viré" tous les bouts de codes (liés à cette tempo) de ma macro. J'ai déplacé ton module standard vers mon classeur, et tout semble bien fonctionner ... néanmoins :
Dans "ma" macro, module ThisWorkbook, j'ai :
'--- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then MsgBox "Désolé, l'option Enregistrer sous... est impossible !" Cancel = True Exit Sub Else With ThisWorkbook ChDrive "C" ChDir .Path etc. .SaveCopyAs Format(Now, "yyyymmdd-hh""h""nn") & " " & .Name etc. '---
Si dans ton code, à la ligne : "Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", vbYesNo + vbQuestion)"
... je réponds "oui", j'exécute : "ThisWorkbook.Close True"
Et là, j'enregistre bien le classeur, mais je shunte toutes les options qui me sont offertes par le code contenu dans "Workbook_BeforeSave" (comme l'enregistrement ".SaveCopyAs Format(Now, "yyyymmdd-hh""h""nn") & " " & .Name" (ie)
Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave" du module "ThisWorkbook" ?
Merci pour ton aide,
JP
Bonsoir,
http://cjoint.com/?meuKaVACUH
JB
On 4 déc, 20:29, j-pascal wrote:
Bonsoir,
Je suis face à un pb que je n'imaginais pas ... Une procédure de temporisation me rouvre un classeur Excel !!!
Je vais essayer de faire court (peut-être trop pour certain !) en indiquant que le code qui concerne la tempo :
Dans ThiWorkbook :
'---- Private Sub Workbook_Open()
Call ProchaineAlerte '----
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:úlse ProchaineAlerte End Sub
'----- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
bla, bla
On Error Resume Next Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin", Schedule:úlse
End Sub '---
Et dans un module standard :
'--- Public HeureAlerte Sub ProchaineAlerte() HeureAlerte = Now + TimeValue("00:10:10") Application.OnTime HeureAlerte, "Fin" End Sub '---
Sub Fin()
On Error Resume Next Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:úlse 'annule événnement
Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", vbYesNo + vbQuestion) If Réponse = vbNo Then Call ProchaineAlerte Else On Error Resume Next Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin", Schedule:úlse MsgBox "essai ..." '"Au revoir ..." ' ActiveWorkbook.Save 'ThisWorkbook.Close True End If End Sub '---
J'ai planché pas mal de temps aujourd'hui sur le sujet, et je suis à court d'idée pour résoudre ce pb !
Merci d'avance pour votre aide.
JP
Bonsoir Jacques,
Merci pour ta patience !
J'ai donc "viré" tous les bouts de codes (liés à cette tempo) de ma
macro. J'ai déplacé ton module standard vers mon classeur, et tout
semble bien fonctionner ... néanmoins :
Dans "ma" macro, module ThisWorkbook, j'ai :
'---
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If SaveAsUI Then
MsgBox "Désolé, l'option Enregistrer sous... est impossible !"
Cancel = True
Exit Sub
Else
With ThisWorkbook
ChDrive "C"
ChDir .Path
etc.
.SaveCopyAs Format(Now, "yyyymmdd-hh""h""nn") & " " & .Name
etc.
'---
Si dans ton code, à la ligne : "Réponse = MsgBox("Avez-vous fini
d'utiliser le classeur ?", vbYesNo + vbQuestion)"
... je réponds "oui", j'exécute : "ThisWorkbook.Close True"
Et là, j'enregistre bien le classeur, mais je shunte toutes les options
qui me sont offertes par le code contenu dans "Workbook_BeforeSave"
(comme l'enregistrement ".SaveCopyAs Format(Now, "yyyymmdd-hh""h""nn")
& " " & .Name" (ie)
Comment est-il possible d'orienter la femeture vers
"Workbook_BeforeSave" du module "ThisWorkbook" ?
Merci pour ton aide,
JP
Bonsoir,
http://cjoint.com/?meuKaVACUH
JB
On 4 déc, 20:29, j-pascal <messa...@venir.com> wrote:
Bonsoir,
Je suis face à un pb que je n'imaginais pas ...
Une procédure de temporisation me rouvre un classeur Excel !!!
Je vais essayer de faire court (peut-être trop pour certain !) en
indiquant que le code qui concerne la tempo :
Dans ThiWorkbook :
'----
Private Sub Workbook_Open()
Call ProchaineAlerte
'----
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target As Range)
On Error Resume Next
Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:úlse
ProchaineAlerte
End Sub
'-----
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
bla, bla
On Error Resume Next
Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin",
Schedule:úlse
End Sub
'---
Et dans un module standard :
'---
Public HeureAlerte
Sub ProchaineAlerte()
HeureAlerte = Now + TimeValue("00:10:10")
Application.OnTime HeureAlerte, "Fin"
End Sub
'---
Sub Fin()
On Error Resume Next
Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:úlse
'annule événnement
Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", vbYesNo
+ vbQuestion)
If Réponse = vbNo Then
Call ProchaineAlerte
Else
On Error Resume Next
Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin",
Schedule:úlse
MsgBox "essai ..." '"Au revoir ..."
' ActiveWorkbook.Save
'ThisWorkbook.Close True
End If
End Sub
'---
J'ai planché pas mal de temps aujourd'hui sur le sujet, et je suis à
court d'idée pour résoudre ce pb !
J'ai donc "viré" tous les bouts de codes (liés à cette tempo) de ma macro. J'ai déplacé ton module standard vers mon classeur, et tout semble bien fonctionner ... néanmoins :
Dans "ma" macro, module ThisWorkbook, j'ai :
'--- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then MsgBox "Désolé, l'option Enregistrer sous... est impossible !" Cancel = True Exit Sub Else With ThisWorkbook ChDrive "C" ChDir .Path etc. .SaveCopyAs Format(Now, "yyyymmdd-hh""h""nn") & " " & .Name etc. '---
Si dans ton code, à la ligne : "Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", vbYesNo + vbQuestion)"
... je réponds "oui", j'exécute : "ThisWorkbook.Close True"
Et là, j'enregistre bien le classeur, mais je shunte toutes les options qui me sont offertes par le code contenu dans "Workbook_BeforeSave" (comme l'enregistrement ".SaveCopyAs Format(Now, "yyyymmdd-hh""h""nn") & " " & .Name" (ie)
Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave" du module "ThisWorkbook" ?
Merci pour ton aide,
JP
Bonsoir,
http://cjoint.com/?meuKaVACUH
JB
On 4 déc, 20:29, j-pascal wrote:
Bonsoir,
Je suis face à un pb que je n'imaginais pas ... Une procédure de temporisation me rouvre un classeur Excel !!!
Je vais essayer de faire court (peut-être trop pour certain !) en indiquant que le code qui concerne la tempo :
Dans ThiWorkbook :
'---- Private Sub Workbook_Open()
Call ProchaineAlerte '----
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:úlse ProchaineAlerte End Sub
'----- Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
bla, bla
On Error Resume Next Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin", Schedule:úlse
End Sub '---
Et dans un module standard :
'--- Public HeureAlerte Sub ProchaineAlerte() HeureAlerte = Now + TimeValue("00:10:10") Application.OnTime HeureAlerte, "Fin" End Sub '---
Sub Fin()
On Error Resume Next Application.OnTime HeureAlerte, Procedure:="Fin", Schedule:úlse 'annule événnement
Réponse = MsgBox("Avez-vous fini d'utiliser le classeur ?", vbYesNo + vbQuestion) If Réponse = vbNo Then Call ProchaineAlerte Else On Error Resume Next Application.OnTime EarliestTime:=HeureAlerte, Procedure:="fin", Schedule:úlse MsgBox "essai ..." '"Au revoir ..." ' ActiveWorkbook.Save 'ThisWorkbook.Close True End If End Sub '---
J'ai planché pas mal de temps aujourd'hui sur le sujet, et je suis à court d'idée pour résoudre ce pb !
Merci d'avance pour votre aide.
JP
Youky \(BJ\)
> Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave" du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbook_BeforeSave End Sub
Youky (BJ)
> Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave"
du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbook_BeforeSave
End Sub
> Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave" du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbook_BeforeSave End Sub
Youky (BJ)
j-pascal
Bonsoir Youky,
Je sens que la solultion n'est pas loin, mais la ligne :"Workbook_BeforeSave" me renvoit : "Erreur de compilation - Argument non facultatif" J'ai cherché dans l'aide, mais aucune des solutions appliquées n'est efficace. N'ai probablement pas tout compris ...
@+
JP
PS : j'ai mis ce code dans le module "ThisWorkbook" ; c'est bon ?
Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave" du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbook_BeforeSave End Sub
Youky (BJ)
Bonsoir Youky,
Je sens que la solultion n'est pas loin, mais la ligne
:"Workbook_BeforeSave" me renvoit : "Erreur de compilation - Argument
non facultatif"
J'ai cherché dans l'aide, mais aucune des solutions appliquées n'est
efficace. N'ai probablement pas tout compris ...
@+
JP
PS : j'ai mis ce code dans le module "ThisWorkbook" ; c'est bon ?
Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave"
du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbook_BeforeSave
End Sub
Je sens que la solultion n'est pas loin, mais la ligne :"Workbook_BeforeSave" me renvoit : "Erreur de compilation - Argument non facultatif" J'ai cherché dans l'aide, mais aucune des solutions appliquées n'est efficace. N'ai probablement pas tout compris ...
@+
JP
PS : j'ai mis ce code dans le module "ThisWorkbook" ; c'est bon ?
Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave" du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbook_BeforeSave End Sub
Youky (BJ)
Youky \(BJ\)
J'ai fais la boulette, pourtant j'avais testé avec un beep, j'ai bien recu le beep mais sans doute celui de l'erreur Voiçi la rectif....il suffit de...... ThisWorbook.Save J'ai de nouveau testé avec succés. Youky (BJ)
Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Save End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'ici ta macro de BeforeSave End Sub
"j-pascal" a écrit dans le message de news:
Bonsoir Youky,
Je sens que la solultion n'est pas loin, mais la ligne :"Workbook_BeforeSave" me renvoit : "Erreur de compilation - Argument non facultatif" J'ai cherché dans l'aide, mais aucune des solutions appliquées n'est efficace. N'ai probablement pas tout compris ...
@+
JP
PS : j'ai mis ce code dans le module "ThisWorkbook" ; c'est bon ?
Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave" du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbook_BeforeSave End Sub
Youky (BJ)
J'ai fais la boulette, pourtant j'avais testé avec un beep, j'ai bien recu
le beep mais sans doute celui de l'erreur
Voiçi la rectif....il suffit de...... ThisWorbook.Save
J'ai de nouveau testé avec succés.
Youky (BJ)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
'ici ta macro de BeforeSave
End Sub
"j-pascal" <messages@venir.com> a écrit dans le message de news:
mn.2d687d8c25881482.81386@venir.com...
Bonsoir Youky,
Je sens que la solultion n'est pas loin, mais la ligne
:"Workbook_BeforeSave" me renvoit : "Erreur de compilation - Argument non
facultatif"
J'ai cherché dans l'aide, mais aucune des solutions appliquées n'est
efficace. N'ai probablement pas tout compris ...
@+
JP
PS : j'ai mis ce code dans le module "ThisWorkbook" ; c'est bon ?
Comment est-il possible d'orienter la femeture vers
"Workbook_BeforeSave" du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbook_BeforeSave
End Sub
J'ai fais la boulette, pourtant j'avais testé avec un beep, j'ai bien recu le beep mais sans doute celui de l'erreur Voiçi la rectif....il suffit de...... ThisWorbook.Save J'ai de nouveau testé avec succés. Youky (BJ)
Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Save End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'ici ta macro de BeforeSave End Sub
"j-pascal" a écrit dans le message de news:
Bonsoir Youky,
Je sens que la solultion n'est pas loin, mais la ligne :"Workbook_BeforeSave" me renvoit : "Erreur de compilation - Argument non facultatif" J'ai cherché dans l'aide, mais aucune des solutions appliquées n'est efficace. N'ai probablement pas tout compris ...
@+
JP
PS : j'ai mis ce code dans le module "ThisWorkbook" ; c'est bon ?
Comment est-il possible d'orienter la femeture vers "Workbook_BeforeSave" du module "ThisWorkbook" ?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbook_BeforeSave End Sub