Hello les copains,
Je sais qu'il existe des forums dédiés à Excel mais je tente ma chance sur Lynkoa car je vois qu'il y a des connaisseurs et de plus je n'y connais pas grand chose en macro.
Le but de cette macro est qu'elle se lance à l'ouverture du fichier et qu'au bout d'un certain temps d'inactivité de celui-ci il s'enregistre et se ferme. Nous sommes à plusieurs à utiliser se fichier et sur des sites différents et de plus nous quittons régulièrement nos postes de travail donc s'il l'un d'entre nous oublie de le quitter ça embête les autres.
MERCI D'AVANCE POUR VOS RÉPONSES ^_^
Merci d.roger, je regarderai si j'y arrive et si je comprends quelque chose.
Voici un fichier qui devrait se fermer après 30 secondes sans y toucher (du moins ça fonctionne chez moi).
J'ai utilisé dans ThisWorkbook :
Sub Workbook_open()
Compteur = 0
Feuil1.Tempo
End Sub
Et dans Feuil1 :
Dim Compteur As Integer
Sub Tempo()
Application.OnTime Now + TimeValue("00:00:01"), "Feuil1.maMacro"
End Sub
Sub maMacro()
Compteur = Compteur + 1
If Compteur = 30 Then
Workbooks("Classeur test.xlsm").Save
ActiveWorkbook.Close
Exit Sub
End If
Feuil1.Tempo
End Sub
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 0 Then
Compteur = 0
Feuil1.Tempo
End If
End Sub
Bien sûr c'est juste un test donc à vérifier, améliorer, etc
Cordialement,
classeur_test.xlsm
Quelques modifications suite à différents tests :
J'ai utilisé dans ThisWorkbook :
Sub Workbook_open()
Compteur = 0
Feuil1.Tempo
End Sub
Et dans Feuil1 :
Dim Compteur As Integer
Sub Tempo()
Application.OnTime Now + TimeValue("00:01:00"), "Feuil1.maMacro"
End Sub
Sub maMacro()
Compteur = Compteur + 1
If Compteur = 10 Then
Workbooks("Classeur test.xlsm").Save
ActiveWorkbook.Close
Exit Sub
End If
Feuil1.Tempo
End Sub
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 0 Then
Compteur = 0
End If
End Sub
Les modifications principales sont dans la fonction Worksheet_Change avec If Target.Count = 0 qui devient If Target.Count <> 0 ainsi que la suppression de la ligne Feuil1.Tempo.
Cordialement,
classeur_test.xlsm
je ne comprend pas, je n'y arrive pas... Quand j'ouvre votre fichier excel ça bug...
enregistrement_et_fermeture_du_fichier_en_cas_dinactivite_pendant_10.jpg
Là il me dit L'indice n'appartient pas à le sélection
lindice_nappartient_pas_a_le_selection.png
Message que je n'ai jamais eu pendant mes tests, je suis sur Excel 2010. Je ne sais pas si cela peut avoir un impact.
Code final :
J'ai utilisé dans ThisWorkbook :
Sub Workbook_open()
Compteur = 0
Feuil1.Tempo
End Sub
Et dans Feuil1 :
Dim Compteur As Integer
Sub Tempo()
Application.OnTime Now + TimeValue("00:01:00"), "Feuil1.maMacro"
End Sub
Sub maMacro()
Compteur = Compteur + 1
If Compteur = 10 Then
Workbooks(ThisWorkbook.Name).Save
ActiveWorkbook.Close
Exit Sub
End If
Feuil1.Tempo
End Sub
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 0 Then
Compteur = 0
End If
End Sub
classeur_test.xlsm
2 « J'aime »