Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
je vous explique mon problème, j'incrémente un fichier excel via un autre.
le soucis c'est que si celui incrémenté est ouvert par une tierce personne en gardant les filtres mon incrémentations ne va pas marcher ou écraser des données.
ce que je voudrais c'est une macro qui défiltrerai mes colonnes A17 à J17 et que le fichier s'enregistrerai et se fermerai au bout d'un certain temps...
Salut,
Je ne vois pas comment le fichier va s’enregistrer et fermer tout seul? Je suis avec mon telephone peut etre que je ne vois pas la macro…
Pour reprendre, je souhaiterai par exemple que les filtres des colonnes a à e soit defiltré puis le fichier s’enregistre et se ferme tout seul au bout de 5 min par exemple, suis je assez clair? Dans ma tete oui hihi
je souhaiterai par exemple que les filtres des colonnes a à e soit defiltré puis le fichier s’enregistre et se ferme tout seul au bout de 5 min par exemple,
Donc ton téléphone est mal connecté .... il commence par la fin !!
Bon comme j'ai dit il faut tout défiltrer , puis enregistrer et fermer ...mais pourquoi au bout de 5min ??? il va falloir mettre un sacré timer !!!
J'ai retrouvé cette macro de "TI" alias Thierry Pourtier qui permet de fermer après 5 minutes d'inactivité, toute activité relance le timer pour 5 minutes etc....
VB:
Option Explicit
Option Private Module
'Ti
'Delai est le temps d'inactivité maxi en minutes
Const Delai = 5 'Donc pour 5 minutes on mets 5
Sub Programmation()
Dim Heure As Date
Heure = Now + TimeValue("00:" & Delai & ":00")
ThisWorkbook.Names.Add Name:="ChronoTime", RefersTo:=Heure
ThisWorkbook.Names.Add Name:="Chrono", RefersTo:=0
Application.OnTime Heure, "Interruption"
End Sub
Private Sub Interruption()
With ThisWorkbook
If .Sheets(1).Evaluate("Chrono") = 0 Then
.Save
.Close
Else
Programmation
End If
End With
End Sub
Sub SupprimeInterruption()
Dim Heure As Date
On Error Resume Next
Heure = ThisWorkbook.Sheets(1).Evaluate("ChronoTime")
Application.OnTime Heure, "Interruption", schedule:=False
End Sub
dans ThisWorkbook
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SupprimeInterruption
End Sub
Private Sub Workbook_Open()
Programmation
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
ThisWorkbook.Names("Chrono").Value = 1
End Sub
Sinon tu as ce code qui ferme le fichier à une heure donnée ici 12H00
VB:
Private Sub Workbook_Open()
'A 12h00, lancement de la procedure fermeture
Application.OnTime TimeValue("12:00:00"), "fermeture"
End Sub
Sub fermeture()
'Message d'alerte
MsgBox "Le fichier va se fermer automatiquement"
'Sauvegarde du fichier
ActiveWorkbook.Save
'Fermeture du fichier
ActiveWorkbook.Close
End Sub
*Ces 2 codes je les ai trouvé sur internet en moins de 1 minute
J'ai retrouvé cette macro de "TI" alias Thierry Pourtier qui permet de fermer après 5 minutes d'inactivité, toute activité relance le timer pour 5 minutes etc....
VB:
Option Explicit
Option Private Module
'Ti
'Delai est le temps d'inactivité maxi en minutes
Const Delai = 5 'Donc pour 5 minutes on mets 5
Sub Programmation()
Dim Heure As Date
Heure = Now + TimeValue("00:" & Delai & ":00")
ThisWorkbook.Names.Add Name:="ChronoTime", RefersTo:=Heure
ThisWorkbook.Names.Add Name:="Chrono", RefersTo:=0
Application.OnTime Heure, "Interruption"
End Sub
Private Sub Interruption()
With ThisWorkbook
If .Sheets(1).Evaluate("Chrono") = 0 Then
.Save
.Close
Else
Programmation
End If
End With
End Sub
Sub SupprimeInterruption()
Dim Heure As Date
On Error Resume Next
Heure = ThisWorkbook.Sheets(1).Evaluate("ChronoTime")
Application.OnTime Heure, "Interruption", schedule:=False
End Sub
dans ThisWorkbook
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SupprimeInterruption
End Sub
Private Sub Workbook_Open()
Programmation
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
ThisWorkbook.Names("Chrono").Value = 1
End Sub
Sinon tu as ce code qui ferme le fichier à une heure donnée ici 12H00
VB:
Private Sub Workbook_Open()
'A 12h00, lancement de la procedure fermeture
Application.OnTime TimeValue("12:00:00"), "fermeture"
End Sub
Sub fermeture()
'Message d'alerte
MsgBox "Le fichier va se fermer automatiquement"
'Sauvegarde du fichier
ActiveWorkbook.Save
'Fermeture du fichier
ActiveWorkbook.Close
End Sub
*Ces 2 codes je les ai trouvé sur internet en moins de 1 minute
effetivement je suis tombé sur tes exemples en recherchant, par contre j esuis toujours bloqué sur un point.
sur this workbook => BeforeClose je voudrais qu'il désactive les filtres puis enregistre mais ça ne fonctionne pas, une idée?
Private Sub Workbook_Open()
Délai = TimeValue("00:01:00")
Reste = Délai
ProchainArret
majHeure
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime HeureArrêt, Procedure:="Fin", Schedule:=False
ProchainArret
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Run "'liste de débit.xlsm'!majHeure"
ActiveSheet.ShowAllData
Application.Run "'liste de débit.xlsm'!majHeure"
ThisWorkbook.Save
On Error Resume Next
Application.OnTime HeureArrêt, Procedure:="Fin", Schedule:=False ' annule événnement
Application.OnTime temps, Procedure:="majHeure", Schedule:=False
End Sub
Bonsoir tous @Phil69970 : Moi non plus et qui plus est AUCUNE pour sélectionner des colonnes!!
---
Et donc si l'on connait un peu la philosophie MS qui est une des plus complète en matière de structure de logiciel si certaines instructions que l'on souhaite n'existent pas c'est que cela n'est pas le bon choix et qu'il faut revoir sa pensée !!!! (philosophique si posssibe !)
Comme par exemple : Ayant travaillé en programmation sur des gros systèmes GPAO , on désactivait les accès "clients" on faisait ses MAJ ... tranquille .. on re activait; c'était pas pour 1h que l'usine allait fermer !!!!
Là ce n'est QUE Excel !! donc tu inhibes le partage ( déjà obligé pour modif vba) tu fais tes MAJ revalide et ...
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.