Bonjour,
j'utilise le code suivant dans un fichier EXCEL 2003 :
activeworkbook.save
activeworkbook.close
Et le fichier se sauvegarde, se ferme puis se réouvre, se sauvegarde pu is se
ferme et ainsi de suite plusieurs fois.
Comment empêcher la réouverture du fichier?
Cordialement
Bonjour,
j'utilise le code suivant dans un fichier EXCEL 2003 :
activeworkbook.save
activeworkbook.close
Et le fichier se sauvegarde, se ferme puis se réouvre, se sauvegarde pu is se
ferme et ainsi de suite plusieurs fois.
Comment empêcher la réouverture du fichier?
Cordialement
Bonjour,
j'utilise le code suivant dans un fichier EXCEL 2003 :
activeworkbook.save
activeworkbook.close
Et le fichier se sauvegarde, se ferme puis se réouvre, se sauvegarde pu is se
ferme et ainsi de suite plusieurs fois.
Comment empêcher la réouverture du fichier?
Cordialement
Bonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Rang e)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", F alse
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Bonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Rang e)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", F alse
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Bonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Rang e)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", F alse
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Re ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
CélineBonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Re ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
Céline
Bonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Re ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
CélineBonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle versi on
d'excel tu utilises?
merciRe ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
CélineBonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'ob jet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal T arget
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier ", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle versi on
d'excel tu utilises?
merci
Re ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
Céline
Bonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'ob jet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal T arget
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier ", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle versi on
d'excel tu utilises?
merciRe ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
CélineBonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'ob jet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal T arget
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier ", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
erratummm
dsl
en fait la procédure s'execute à chaque appel !!!!
alors
proposition alternative
tu déclares dans ton module une variable
Public minuteur_active As Boolean
Dans Thisworkbook
procédure workbook_open
minuteur_activé = false
à chaque procédure qui appalle minuteur
tu remplaces minuteur par :
If minuteur_active = False Then
minuteur_active = True
minuteur
End If
Ca marche mieux ?Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle version
d'excel tu utilises?
merciRe ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
CélineBonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
erratummm
dsl
en fait la procédure s'execute à chaque appel !!!!
alors
proposition alternative
tu déclares dans ton module une variable
Public minuteur_active As Boolean
Dans Thisworkbook
procédure workbook_open
minuteur_activé = false
à chaque procédure qui appalle minuteur
tu remplaces minuteur par :
If minuteur_active = False Then
minuteur_active = True
minuteur
End If
Ca marche mieux ?
Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle version
d'excel tu utilises?
merci
Re ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
Céline
Bonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
erratummm
dsl
en fait la procédure s'execute à chaque appel !!!!
alors
proposition alternative
tu déclares dans ton module une variable
Public minuteur_active As Boolean
Dans Thisworkbook
procédure workbook_open
minuteur_activé = false
à chaque procédure qui appalle minuteur
tu remplaces minuteur par :
If minuteur_active = False Then
minuteur_active = True
minuteur
End If
Ca marche mieux ?Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle version
d'excel tu utilises?
merciRe ,
Malheurseuement je ne connais pas les procédures ontime etc... Mais
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
CélineBonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
en fait ce que je souhaite faire, c'est de fermer automatiquement un
classeur quand cela fait 10 minutes d'inactivité dans le fichier.
Salut,
en fait ce que je souhaite faire, c'est de fermer automatiquement un
classeur quand cela fait 10 minutes d'inactivité dans le fichier.
j'appelai à chaque fois la procédure minuteur afin de remettre à 0 mon
compteur à chaque modification faite sur le fichier. Ceci me permet de
contrôler l'activité sur le fichier et ne pas violement fermer le fic hier
alors qu'on est en train de l'utiliser.
Si j'insère le boolean d'activation de la fonction, mon fichier se ferm era
de x min (défini dans la constante delai) après le premier appel de la
fonction minuteur.
En fait je n'ai pas l'impression que mon code soit faux. Ce que je ne
comrpend pas, c'est qu'est ce qui pousse EXCEL à me rouvrir le fichier. Je
pensais à la récupération automatique de fichier mis en place depui s la
version 2002 d'excel...
Merci pour ton aide.
Cordialement,
Nicolaserratummm
dsl
en fait la procédure s'execute à chaque appel !!!!
alors
proposition alternative
tu déclares dans ton module une variable
Public minuteur_active As Boolean
Dans Thisworkbook
procédure workbook_open
minuteur_activé = false
à chaque procédure qui appalle minuteur
tu remplaces minuteur par :
If minuteur_active = False Then
minuteur_active = True
minuteur
End If
Ca marche mieux ?Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle v ersion
d'excel tu utilises?
merciRe ,
Malheurseuement je ne connais pas les procédures ontime etc... Ma is
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichi er",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
CélineBonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByV al Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefic hier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
en fait ce que je souhaite faire, c'est de fermer automatiquement un
classeur quand cela fait 10 minutes d'inactivité dans le fichier.
Salut,
en fait ce que je souhaite faire, c'est de fermer automatiquement un
classeur quand cela fait 10 minutes d'inactivité dans le fichier.
j'appelai à chaque fois la procédure minuteur afin de remettre à 0 mon
compteur à chaque modification faite sur le fichier. Ceci me permet de
contrôler l'activité sur le fichier et ne pas violement fermer le fic hier
alors qu'on est en train de l'utiliser.
Si j'insère le boolean d'activation de la fonction, mon fichier se ferm era
de x min (défini dans la constante delai) après le premier appel de la
fonction minuteur.
En fait je n'ai pas l'impression que mon code soit faux. Ce que je ne
comrpend pas, c'est qu'est ce qui pousse EXCEL à me rouvrir le fichier. Je
pensais à la récupération automatique de fichier mis en place depui s la
version 2002 d'excel...
Merci pour ton aide.
Cordialement,
Nicolas
erratummm
dsl
en fait la procédure s'execute à chaque appel !!!!
alors
proposition alternative
tu déclares dans ton module une variable
Public minuteur_active As Boolean
Dans Thisworkbook
procédure workbook_open
minuteur_activé = false
à chaque procédure qui appalle minuteur
tu remplaces minuteur par :
If minuteur_active = False Then
minuteur_active = True
minuteur
End If
Ca marche mieux ?
Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle v ersion
d'excel tu utilises?
merci
Re ,
Malheurseuement je ne connais pas les procédures ontime etc... Ma is
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichi er",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
Céline
Bonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByV al Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefic hier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
en fait ce que je souhaite faire, c'est de fermer automatiquement un
classeur quand cela fait 10 minutes d'inactivité dans le fichier.
Salut,
en fait ce que je souhaite faire, c'est de fermer automatiquement un
classeur quand cela fait 10 minutes d'inactivité dans le fichier.
j'appelai à chaque fois la procédure minuteur afin de remettre à 0 mon
compteur à chaque modification faite sur le fichier. Ceci me permet de
contrôler l'activité sur le fichier et ne pas violement fermer le fic hier
alors qu'on est en train de l'utiliser.
Si j'insère le boolean d'activation de la fonction, mon fichier se ferm era
de x min (défini dans la constante delai) après le premier appel de la
fonction minuteur.
En fait je n'ai pas l'impression que mon code soit faux. Ce que je ne
comrpend pas, c'est qu'est ce qui pousse EXCEL à me rouvrir le fichier. Je
pensais à la récupération automatique de fichier mis en place depui s la
version 2002 d'excel...
Merci pour ton aide.
Cordialement,
Nicolaserratummm
dsl
en fait la procédure s'execute à chaque appel !!!!
alors
proposition alternative
tu déclares dans ton module une variable
Public minuteur_active As Boolean
Dans Thisworkbook
procédure workbook_open
minuteur_activé = false
à chaque procédure qui appalle minuteur
tu remplaces minuteur par :
If minuteur_active = False Then
minuteur_active = True
minuteur
End If
Ca marche mieux ?Re,
non chez moi c'est pareil qu'avant.
avais-tu réussi à voir le défaut ?
Pour voir le défaut, il faut écrire le code dans vba. sauvegarder et fermer
le fichier.
Relancer le fichier, ecrire un truc dans une cellule sans sauvegarder puis
attendre. Et c'est parti la musique.
Si par hasard le défaut ne se produit pas, peux tu me dire quelle v ersion
d'excel tu utilises?
merciRe ,
Malheurseuement je ne connais pas les procédures ontime etc... Ma is
j'ai essayé de prendre le toro par les cornes et voila ce qui en
ressort
commence par virer les procédures
minuteur
et
fermefichier
de la page thisWorkbook
Place-les plutôt dans un mode à part
(insersion / Module dans le VBE)
noublie pas non plus de déplacer la constante delai avec, car les
variables déclarées dans les feuilles sont privées je crois, alors
que dans les modules standard elles sont publiques.
oubli pas de changer
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefichi er",
False
par
Application.OnTime Now + TimeValue(delai), "Module1.fermefichier",
False
si c le Module1 :p
chez moi, le problème disparait.
comment ça se passe pour toi ?
Bonne après midi
CélineBonjour,
voici le code que j'utilise. Je l'ai inséré directement dans l'objet
workbook de mon fichier :
Option Explicit
Const delai = "00:01:00"
Private Sub Workbook_Open()
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
minuteur
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByV al Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime Now + TimeValue(delai), "thisworkbook.fermefic hier", False
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
tu as raison, cela ne remettait pas mon compteur à 0. en fait il me fau t une
ligne supplémentaire pour annuler le compteur précédent.
Merci encore pour ton aide.
Voici le code final, j'ai tout remis dans l'objet woorkbook car ca marche
aussi et je préfère voir le code en une fois :
Option Explicit
Const delai = "00:00:30"
Public dat As Date
Private Sub Workbook_Open()
dat = Now + TimeValue(delai)
Application.OnTime dat, "thisworkbook.fermefichier"
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Rang e)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime EarliestTime:Út,
Procedure:="thisworkbook.fermefichier", Schedule:úlse
dat = Now + TimeValue(delai)
Application.OnTime EarliestTime:Út, Procedure:="thisworkbook.fermef ichier"
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
tu as raison, cela ne remettait pas mon compteur à 0. en fait il me fau t une
ligne supplémentaire pour annuler le compteur précédent.
Merci encore pour ton aide.
Voici le code final, j'ai tout remis dans l'objet woorkbook car ca marche
aussi et je préfère voir le code en une fois :
Option Explicit
Const delai = "00:00:30"
Public dat As Date
Private Sub Workbook_Open()
dat = Now + TimeValue(delai)
Application.OnTime dat, "thisworkbook.fermefichier"
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Rang e)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime EarliestTime:=dat,
Procedure:="thisworkbook.fermefichier", Schedule:=False
dat = Now + TimeValue(delai)
Application.OnTime EarliestTime:=dat, Procedure:="thisworkbook.fermef ichier"
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
tu as raison, cela ne remettait pas mon compteur à 0. en fait il me fau t une
ligne supplémentaire pour annuler le compteur précédent.
Merci encore pour ton aide.
Voici le code final, j'ai tout remis dans l'objet woorkbook car ca marche
aussi et je préfère voir le code en une fois :
Option Explicit
Const delai = "00:00:30"
Public dat As Date
Private Sub Workbook_Open()
dat = Now + TimeValue(delai)
Application.OnTime dat, "thisworkbook.fermefichier"
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Rang e)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime EarliestTime:Út,
Procedure:="thisworkbook.fermefichier", Schedule:úlse
dat = Now + TimeValue(delai)
Application.OnTime EarliestTime:Út, Procedure:="thisworkbook.fermef ichier"
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
ecoute, si c'est pour me dire des choses comme ça, n'hésite pas à me
faire part de tous tes problèmes Excel, surtout le matin quand le
cerveau embrouillé a du mal à fonctionner...
:p
Je suis ravie d'avoir pu t'être utile... :)
Passe une bonne journée toi aussi, donc
PS : si je peux me permettre un dernier conseil, pour l'avenir, pense
aussi à utiliser (en plus du pas à pas) le Msgbox 'la valeur dont tu
n'es pas sur...' en cours de procédures... (bn après ici je sais pas
si ca aurait servi à gd chose)
byye !
CélineMEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
tu as raison, cela ne remettait pas mon compteur à 0. en fait il me faut une
ligne supplémentaire pour annuler le compteur précédent.
Merci encore pour ton aide.
Voici le code final, j'ai tout remis dans l'objet woorkbook car ca marche
aussi et je préfère voir le code en une fois :
Option Explicit
Const delai = "00:00:30"
Public dat As Date
Private Sub Workbook_Open()
dat = Now + TimeValue(delai)
Application.OnTime dat, "thisworkbook.fermefichier"
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime EarliestTime:Út,
Procedure:="thisworkbook.fermefichier", Schedule:úlse
dat = Now + TimeValue(delai)
Application.OnTime EarliestTime:Út, Procedure:="thisworkbook.fermefichier"
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
ecoute, si c'est pour me dire des choses comme ça, n'hésite pas à me
faire part de tous tes problèmes Excel, surtout le matin quand le
cerveau embrouillé a du mal à fonctionner...
:p
Je suis ravie d'avoir pu t'être utile... :)
Passe une bonne journée toi aussi, donc
PS : si je peux me permettre un dernier conseil, pour l'avenir, pense
aussi à utiliser (en plus du pas à pas) le Msgbox 'la valeur dont tu
n'es pas sur...' en cours de procédures... (bn après ici je sais pas
si ca aurait servi à gd chose)
byye !
Céline
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
tu as raison, cela ne remettait pas mon compteur à 0. en fait il me faut une
ligne supplémentaire pour annuler le compteur précédent.
Merci encore pour ton aide.
Voici le code final, j'ai tout remis dans l'objet woorkbook car ca marche
aussi et je préfère voir le code en une fois :
Option Explicit
Const delai = "00:00:30"
Public dat As Date
Private Sub Workbook_Open()
dat = Now + TimeValue(delai)
Application.OnTime dat, "thisworkbook.fermefichier"
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime EarliestTime:Út,
Procedure:="thisworkbook.fermefichier", Schedule:úlse
dat = Now + TimeValue(delai)
Application.OnTime EarliestTime:Út, Procedure:="thisworkbook.fermefichier"
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
MEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
ecoute, si c'est pour me dire des choses comme ça, n'hésite pas à me
faire part de tous tes problèmes Excel, surtout le matin quand le
cerveau embrouillé a du mal à fonctionner...
:p
Je suis ravie d'avoir pu t'être utile... :)
Passe une bonne journée toi aussi, donc
PS : si je peux me permettre un dernier conseil, pour l'avenir, pense
aussi à utiliser (en plus du pas à pas) le Msgbox 'la valeur dont tu
n'es pas sur...' en cours de procédures... (bn après ici je sais pas
si ca aurait servi à gd chose)
byye !
CélineMEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRRRRCCCCCCCCCCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII tu es géniale...
tu as raison, cela ne remettait pas mon compteur à 0. en fait il me faut une
ligne supplémentaire pour annuler le compteur précédent.
Merci encore pour ton aide.
Voici le code final, j'ai tout remis dans l'objet woorkbook car ca marche
aussi et je préfère voir le code en une fois :
Option Explicit
Const delai = "00:00:30"
Public dat As Date
Private Sub Workbook_Open()
dat = Now + TimeValue(delai)
Application.OnTime dat, "thisworkbook.fermefichier"
Worksheets("Liste").Range("A6:i6").Select
ActiveWindow.Zoom = True
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
minuteur
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
minuteur
End Sub
Sub minuteur()
Application.OnTime EarliestTime:Út,
Procedure:="thisworkbook.fermefichier", Schedule:úlse
dat = Now + TimeValue(delai)
Application.OnTime EarliestTime:Út, Procedure:="thisworkbook.fermefichier"
End Sub
Sub fermefichier()
'beep: beep: beep
Application.Wait Now + TimeValue("00:00:03")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub