Mise à jour

Bonjour le forum,

Je viens vers vous avec une demande d’aide sans savoir est-ce que cette demande est compliquée ou non.

J’ai plusieurs fichiers qui font la partie d’un projet. Les fichiers se ne trouvent pas tous dans le même répertoire.

Je cherche une solution pour les mettre à jour automatiquement pendant chaque nuit.

C’est à dire, est-ce que possible de créer un code qu’à 3 heures de nuit ouvrira tous les fichiers mettra les à jour, sauvegarder les changements et les fermera ?

Les répertoires des fichiers sont soit

1 - Gestion :web :telechargement:

Soit

2 - Gestion :contrats de recherche :Base Contrats:

Les ":" sont utiliées car je travail sur MAC.

Merci d’avance pour votre aide !

Baton

P.S. Vous trouverez ci-dessous le code développé par vba-new qui fonctionne bien. Ce code ouvre tous les fichiers du répertoire 1 mais manque le fichier qui ne doit pas être participé dans le calcul mais doit être mise à jour quand même (le répertoire 2). Le deuxième paramètre qui manque ce code-là c’est de lancer la mise à jour automatiquement pendant la nuit.

Sub som()
    Dim MasterWbk As Workbook
    Dim i As Long, cel As Range
    Dim passwords
    Application.ScreenUpdating = False
    Set MasterWbk = ThisWorkbook
    passwords = Array("aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "ppp", "qqq", "rrr", "sss", "ttt", "uuu", "vvv", "www", "xxx")
    For i = 1 To 24
        Workbooks.Open "BD_equipe_" & i & ".xls", UpdateLinks:=3, Password:=passwords(i - 1)
        For Each cel In Sheets("Recap1").[C4:F35,C37:F38,K4:N35,K37:N38]
            MasterWbk.ActiveSheet.Range(cel.Address) = MasterWbk.ActiveSheet.Range(cel.Address) + cel.Value
        Next cel
        ActiveWorkbook.Close False
    Next i
End Sub

Bonjour,

si les fichiers sont utilisés sur MAC, sais-tu que tu as une fonction excel (indicateur de suivi) qui te permet de programmer un rappel pour les ouvrir automatiquement. Dans la barre d'outils tu devrais avoir un petit drapeau rouge juste à coté de l'icone disquette.

Si oui, il suffirait de exécuter une macro Worbook_open à l'ouverture des fichiers pour les mettre à jour.

A te relire

Dan a écrit :

Bonjour,

si les fichiers sont utilisés sur MAC, sais-tu que tu as une fonction excel (indicateur de suivi) qui te permet de programmer un rappel pour les ouvrir automatiquement. Dans la barre d'outils tu devrais avoir un petit drapeau rouge juste à coté de l'icone disquette.

Si oui, il suffirait de exécuter une macro Worbook_open à l'ouverture des fichiers pour les mettre à jour.

A te relire

Bonjour,

Merci Dan pour ton attention et temps.

Je ne suis pas sur de comprendre ta recommandation correctement. C’est pourquoi ma réponse «perhaps is not too much relevant ».

Les fichiers se changent parce qu'il y a toujours des nouvelles données. C’est pourquoi il me semble que si une macro peut se lancer automatiquement pendant la nuit ca ne dérangera à personne. Pour l’instant, ça prend plus de 3 heures pour la macro pour mettre à jour les données car les fichiers sont "lourds".. Ca ne pose aucun souci dans la nuit mais sera très gênant pendant la journée du travail.

Cordialement,

Baton

re,

Je ne suis pas sur de comprendre ta recommandation correctement

Sous MAC il y a une fonction de suivi qui te permet même si un fichier est fermé d'avoir un rappel automatiquement qui apparait sur ton bureau. Je pensais peut être utiliser cette fonction qui ouvrirait le fichier automatiquement et par code dans un Workbook_open d'exécuter les mises à jour des fichiers.

A ma connaissance, cette fonction n'est disponible que sous MAC.

Sous Windows, il faut placer le fichier dans le répertoire XLStart si je me rappelle. De là on place un code qui à l'ouverture excéutera la SUB SOM pour les mises à jour.

Dans ta demande, Excel reste ouvert ou peut se trouver fermé ? ou qui ouvre excel ?

A te relire

Bonjour,

Sous MAC il y a une fonction de suivi qui te permet même si un fichier est fermé d'avoir un rappel automatiquement qui apparait sur ton bureau. Je pensais peut être utiliser cette fonction qui ouvrirait le fichier automatiquement et par code dans un Workbook_open d'exécuter les mises à jour des fichiers.

A ma connaissance, cette fonction n'est disponible que sous MAC.

Sous Windows, il faut placer le fichier dans le répertoire XLStart si je me rappelle. De là on place un code qui à l'ouverture excéutera la SUB SOM pour les mises à jour.

Le problème est les “poids” des fichiers. Même si la fonction que tu me propose marche bien, le problème du temps de mise à jour reste toujours. Hier, j’ai parlé avec quelqu’un. Il m’a dit que peut être il y a la possibilité de lancer macro avant de partir le travail mais de facto macro commencera faire le calcul après un délai bien déterminé dans le code (7 heures plus tard, par exemple).

Le but de ma demande n’est pas trouver la solution comment faire la mise a jour mais quand la faire pour éviter de gêner aux utilisateurs.

En utilisant de cette fonction proposée, je pourrai mettre à jour le fichier AERES.xls + si il y a la possibilité de rajouter un délai dans le code existant, ca pourra repondre à la question.

Dans ta demande, Excel reste ouvert ou peut se trouver fermé ? ou qui ouvre excel ?

Selon des règles existantes, je dois faire « Log out » de ma session avant de partir. Ca permet sauvegarder mes données. Un fichier (AERES.xls) est sauvegardé dans le répertoire interne, tandis que tous les autres se trouvent dans le répertoire « .... :téléchargement : » et ils sont accessibles d’extérieur.

Merci,

Baton

Re,

Selon des règles existantes, je dois faire « Log out » de ma session avant de partir.

Si ta session est fermée, je ne vois pas comment tu vas faire pour mettre les fichiers à jour. Si tu veux mettre à jour tes fichiers, il faut qu'excel soit ouvert et le fichier.

Hier, j’ai parlé avec quelqu’un. Il m’a dit que peut être il y a la possibilité de lancer macro avant de partir le travail mais de facto macro commencera faire le calcul après un délai bien déterminé dans le code (7 heures plus tard, par exemple).

Effectivement en mettant ce code par exemple dans un fichier excel qui exécutera la macro Sub som() pour mettre à jour.

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:420:00"), "som"
End Sub

Code à placer dans Thisworkbook et ce, dans le fichier "pilote" donc Ares si j'ai compris.

Ce code déclenchera la macro SOM, 7 heures après l'ouverture du fichier dans lequel tu auras placé ce code.

Attention donc à quel moment tu ouvriras le fichier. Si souci on peut aussi mettre cette ligne dans une simple macro et la déclencher via un bouton par exemple ou à la fermeture (A tester bien sûr)

Amicalement

Bonjour

Je me permet d'intervenir au risque de dire une bêtise

Une question seulement

Avec Windaube il y a le planificateur de tâche et sur Mac ça existe ?

Si ta session est fermée, je ne vois pas comment tu vas faire pour mettre les fichiers à jour. Si tu veux mettre à jour tes fichiers, il faut qu'excel soit ouvert et le fichier.

Si je te comprends correctement, au moment quand je ferme ma session, la macro qui était en train d’exécutée sera automatiquement arrêtée ? Même si elle se trouve dans le serveur commun et pas dans « My Documents » ?

Effectivement en mettant ce code par exemple dans un fichier excel qui exécutera la macro Sub som() pour mettre à jour

Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:420:00"), "som"
End Sub

Code à placer dans Thisworkbook et ce, dans le fichier "pilote" donc Ares si j'ai compris.

Ce code déclenchera la macro SOM, 7 heures après l'ouverture du fichier dans lequel tu auras placé ce code.

Attention donc à quel moment tu ouvriras le fichier. Si souci on peut aussi mettre cette ligne dans une simple macro et la déclencher via un bouton par exemple ou à la fermeture (A tester bien sûr).

Pour l’instant, la macro Som se trouve dans le fichier BD_Recap.xls et « ne s’occupe pas du tout» avec le fichier AERES.xls qui se trouve dans autre répertoire. Peux-tu rajouter ce dernier fichier AERES.xls dans la macro SOM pour le mettre a jour seulement ? Selon les types des données le fichier AERES.xls doit être le premier à mettre à jour car il contient l’information générale / de base.

Ton idée mettre un bouton pour lancer la macro me paraît très bonne parce les utilisateurs ouvrent et ferment ce fichier plusieurs fois dans la journée.

Bon soirée.

Baton


Banzai64 a écrit :

Bonjour

Je me permet d'intervenir au risque de dire une bêtise

Une question seulement

Avec Windaube il y a le planificateur de tâche et sur Mac ça existe ?

Bonjour,

Merci pour ta proposition. Je n'ai jamais utilisé ce logiciel et je le ne connais pas. Je pourrai le chercher lundi prochain.

Est-ce que ce planificateur permet d'executer des macros quand la session est fermer?

En tous cas, je vais te rendre la reponse.

Merci et bonne soirée!

Baton

Bonsoir

D'après ce que je sais (sources diverses)

Avec W.....

Lors de l'enregistrement de la tâche il faut que tu rentres le mot de passe de la session

Donc une fois tous les renseignements demandées tu peux fermer ta session et laisser l'ordinateur allumé

Re,

Si je te comprends correctement, au moment quand je ferme ma session, la macro qui était en train d’exécutée sera automatiquement arrêtée ? Même si elle se trouve dans le serveur commun et pas dans « My Documents » ?

Pas facile de te répondre là car il faudrait connaitre le système de gestion utilisé. Si le programme excel est sur ton disque dur local, la fermeture de ta session fermear aussi excel. Par contre si les ordinateurs sont en "terminal serveur" (excel est mis sur un serveur local et appelé par les utilisateurs), je pense que lefai de fermer ta session peut ne pas fermer excel. Mais là je dis peut être une "betise"

Une chose est sure c'est que si excel est fermé, le code s'arretera.

Il faudrait que tu fasses des tests pour voir si excel reste ouvert ou non lorsque tu fermes ta session.

A te relire

Rechercher des sujets similaires à "mise jour"