Macro auto dès ouverture Excel

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 8)

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 !

Bonjour,

Un code à placer dans le ThisWorbook de ton classeur

Private Sub Workbook_Open()    ' A placer dans le classeur        
 With Sheets("Feuil1")    'Feuille à sélectionner        
    'If .Range("A1") <> Date Then    Si A1 contient une date, la macro1 s'exécute        
Macro1    'Macro à exécuter
    'End IF  ''la Fonction date n'est là qu'à titre d'exemple
  End With            
End Sub            

Merci,

par contre ce code doit être couplé à un compteur en fonction de la date non ? Car tout seul je ne vois pas comment faire pour qu'il ne fonctionne qu'à la première ouverture de la journée du fichier.

Dès que tu ouvres le classeur,le fichier s'ouvre sur la feuille désignée, quelque soit le moment de la journée

Pierrot

Oui mais mon problème c'est que je veux lancer la macro automatiquement à la première ouverture de la journée seulement, pas aux prochaines ouvertures.

Dans ce cas, je ne vois qu'une solution laisses ton fichier ouvert toute la journée,ou tu le ferme en réduction pour le garder en bas de l'écran

désolé, je ne vois rien d'autre.

Pierrot

bonjour

muhrtag a écrit :

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...

Private Sub Workbook_Open()     ' A placer dans le classeur

        dbt '= à une heure précise, si nous avons bcp de heure précises alors la premiere
        If Date <= dbt Then    '   Si la date planifié (première ouverture de la journée) est passée
         macro1  'Macro à exécuter
         Else
         'autre chose
         End If

    End Sub
     

------------------####################################-----------------------------

Vous pouvez vous servir d une plage de cellule sur le classeur comme un journal

Vous inscrivez toutes les opérations faites par la macro puis comme ca la dépasse les mails déjà envoyé et envoie les mails qui ne sont pas encore même a la fin de journée( avec une actualisation peut-être)

------------------####################################-----------------------------

J'ai trouvé une solution qui a l'air de fonctionner ! Merci pour l'aide quand même. 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

'A l'ouverture du fichier 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

Rechercher des sujets similaires à "macro auto ouverture"