IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

date de la dernière exécution d'une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 43
    Par défaut date de la dernière exécution d'une macro
    Bonjour,

    J'ai écrit une macro pour le nettoyage des classeurs Excel, dans le but de réduire la taille de ces derniers. Je crée ainsi, à la fin du nettoyage, un fichier log pour résumer ce qui a été fait, dans lequel est figurée une "Last clean up date", c'est la date de la dernière fois où le bouton "Clean Up" a été cliqué (sachant que cela est fait occasionnellement)

    Je sais que c'est un truc de relou qui ne sert à rien. Mais j'aime bien alors avez-vous une idée pour m'aider svp ?

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub CleanUp()                 'Ta Macro
    'déclarations des variables
     
    Open "C:\Users\user\Desktop\Log" & Format(Now(), "ddmmyyyy hhnn") & ".txt" For Output As #1
    Print #1, "Last clean up date " & Format(Now(), "dd mm yyyy  hh:mm:ss")
    Close #1
     
    'Suite du code

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut hantran et le forum
    avez-vous une idée pour m'aider svp ?
    Pourquoi la dernière ligne de code de ta macro ne serait-elle pas une inscription de la date système ?
    A+

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 43
    Par défaut
    Bonjour,

    Soit c'est moi qui a un niveau anglais de shit (concernant les "last" "latest" "latter" etc...), soit vous n'avez pas tout à fait saisi ce que je voulais dire... Mais je crois que c'est moi quand même.

    Alors je m'explique : non, surtout pas la date du système.
    Dans le log, il y a "Last clean up date" et "Current date", c'est bien différente.
    Par exemple, la dernière fois quand je clean up c'est le 01 Mai, aujourd'hui j'en fais encore une fois, le 01 Juin. Donc dans le log :
    ...
    Last clean up date : 01 Mai 2010
    Current date : 01 Juin 2010 (date système, là d'accord ! )
    ...

    Ce que je voulais c'est, aujourd'hui 01 Juin, j'exécute la macro, elle me récupère bien la date 01 Mai.

    Petite précision : j'ai changé d'avis entre temps, je ne crée plus un fichier .txt, mais un UserForm, les dates seront les Label1, Label2...
    Donc, au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    UserForm1.Label1 = dernière_date
    UserForm1.Label2 = Date & " " & Time
    ...
    UserForm1.Show

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    la dernière date, tu la mémorise quelque part (une feuille caché par exemple qui gardera l'historique)

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut hantran et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UserForm1.Label1 = UserForm1.Label2
    UserForm1.Label2 = Date & " " & Time
    ...
    UserForm1.Show
    A+

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Citation Envoyé par hantran Voir le message
    Bonjour,

    .... Je crée ainsi, à la fin du nettoyage, un fichier log pour résumer ce qui a été fait, dans lequel est figurée une "Last clean up date", c'est la date de la dernière fois où le bouton "Clean Up" a été cliqué (sachant que cela est fait occasionnellement)
    Si j'ai bien compris, il s'agit d'un fichier log (un historique)
    Dans ces conditions, la solution donnée par mercatog me parait adaptée, à condition simplement de modifier le mode For Output en mode For Append.
    Conserver une donnée dans un UserForm n'est pas possible (donnée perdue entre sessions). Un fichier texte (le .log) est donc la solution. On pourrait également mémoriser dans une cellule, mais peu adapté car un historique risque d'être une longue chaîne.

    EDIT : après réflexion, l'idéal me parait un fichier .log (donc texte plat), mais écrit "à l'envers" (en LIFO = Last Input First Output). Cela peut-être mis en oeuvre en mémorisant (en lecture) dans une variable (appelons-la deja_present) la totalité du fichier, puis, en mode écriture, en écrivant (en mode output) la concaténation des nouvelles données avec la variable deja_present. Cette méthode fera gagner beaucoup de temps lors de l'exploitation (en nouvelle lecture) du fichier log puisqu'il suffira d'en lire la toute première ligne (elle contiendra la date de la dernière opération qui nous intéresse).

Discussions similaires

  1. exécution d'une macro si date du jour = dernier jour du mois en cours
    Par Tournament dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 18/06/2015, 17h45
  2. Revenir sur la cellule sélectionné après exécution d'une macro
    Par Daniel-Gérald dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/02/2007, 21h50
  3. [EXCEL] interrompre l'exécution d'une macro
    Par ustilago dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/10/2006, 10h24
  4. [VBA-E]Exécution d'une macro en arrière-plan
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/04/2006, 23h13
  5. Allongement d'uin temps d'exécution d'une macro
    Par avanrill dans le forum Access
    Réponses: 2
    Dernier message: 06/03/2006, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo