Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Macro auto dès ouverture Excel

muhrtag

XLDnaute Nouveau
Bonjour,

J'ai un petit problème et besoin de votre aide !

J'ai un fichier Excel qui permet de suivre les contrats qui arrivent à terme dans une entreprise. J'ai alors une macro qui permet de trier les dates de fin des contrats, de les compter et d'envoyer un mail au responsable avec le nombre de contrat arrivant à terme dans les 3 prochains jours. Jusqu'ici tout fonctionne

Je voudrais que ce fichier se mette à jour dès l'ouverture du PC. J'ai donc planifié une tâche avec le planificateur de tâche windows qui ouvre le fichier au démarrage de l'ordinateur. J'ai également été dans le code de l'ouverture du fichier mais je coince... La seule chose que j'ai réussi à faire, c'est lancer la macro automatique dès l'ouverture de ce fichier ou à une heure précise... Dans un cas, des mails partiraient à chaque ouverture du fichier (le destinateur va devenir fou ) et dans l'autre il est nécessaire d'avoir démarrer l'ordinateur AVANT l'heure indiqué de début de la macro.

J'espère que jusqu'ici mes explications sont claires

Dans l'absolu je voudrais que la macro se déclenche seulement à la première ouverture de la journée
Est-ce que c'est faisable ? Pensez vous à une autre solution ?

Merci !
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Pourquoi ne pas noter dans un cellule la date à laquelle il était ouvert en dernier et vérifier à l'ouverture si c'est déjà celle du jour ?
Note: il doit être enregistré suite au traitement s'il à lieu bien sûr.
 

muhrtag

XLDnaute Nouveau
Oui oui c'est une bonne piste, je compte enregistrer la date du jour à la fermeture du fichier. A son ouverture il compare la date de dernière ouverture à celle du jour et lance la macro automatiquement si la date est égale ! Ca devrait marcher... Je teste et je vous tiens au courant !
 

muhrtag

XLDnaute Nouveau
Pardon je me suis trompé dans mon explication, vous avez raison "quand les dates sont diférentes !!"

C'était pour voir si vous suiviez
J'ai pas eu le temps de tester encore mais cet après midi ça devrait être bon.
 

muhrtag

XLDnaute Nouveau
La solution a l'air de fonctionner ! Merci pour l'aide Dranreb. Je met le code pour ceux qui chercheraient comme moi :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

'Renseigne la date du jour dans une cellule à la fermeture du fichier
Dim today As Date
today = Date

Worksheets("Nom de la feuille").Range("cellule").Value = today

End Sub


Private Sub Workbook_Open()

Dim today As Date
today = Date

'Si la date de la dernière ouverture du fichier est différente de celle d'aujourd'hui alors on déclenche la macro de mise à jour
If Worksheets("Nom de la feuille").Range("cellule").Value = today Then
Else: Application.Run ("ma macro")
End If

End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…