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 :

reset d'un compteur à une certaine date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 44
    Par défaut reset d'un compteur à une certaine date
    Bonjour à tous,

    Voila je suis en train de finaliser une petite macro.
    Je souhaiterai qu'à l'ouverture du classeur, un test se fasse sur une cellule et si la date du jour est égale à la date de la cellule, alors je réinitialise un compteur.

    Le problème est que si je n'ouvre pas le classeur (samedi ou dimanche par exemple), mon compteur ne va pas se réinitialiser.
    Et dans le sens inverse, si je réinitialise le compteur lorsque la date est dépassée, je risque de rater des incrémentations.


    Est ce que vous auriez une solution pour faire ce que je veux faire ?

    Merci à tous,


    exemple :
    compteur x
    date du jour : 29/08/2013
    date dans cellule : 30/08/2013

    quand j'ouvrirai mon classeur demain, x sera réinitialisé à 0.
    mais si je ne l'ouvre que après demain, il ne le sera pas.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Comment marche ton compteur, quels sont les facteurs d'incrémentation ?

    Tu peux mettre une autre variable que tu contrôles manuellement tu mets dans une case de ton classeur, une variable DejaReset que tu modifieras manuellement lors du reset de ton compteur puis dans ta macro d'ouverture tu mets une double condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If date>datedereset and dejareset = "False" then
    compteur=0
    end if

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Cette contribution VBA / Fonction - Incrémentation de n° t'aidera peut-être.
    Il s'agit d'une fonction prête à l'emploi qui permet un "reset" de compteur en fonction de plusieurs paramètres.
    Il y a un classeur de démonstration à télécharger.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 44
    Par défaut
    merci pour vos réponses rapides, je vais analyser tout ca.
    Pour plus d'infos, c'est un classeur ou il y a des périodes (du 12/08/2013 au 11/08/2014).
    durant chaque période, il y a un certain nombre d'evenemments qui permettent de générer un compteur.
    à chaque fin de période, il faut remettre à zero ce compteur, et repartir pour une nouvelle période. il ne faut donc pas rater les premiers jours de la période considérée.

    Citation Envoyé par EngueEngue Voir le message
    Tu peux mettre une autre variable que tu contrôles manuellement tu mets dans une case de ton classeur, une variable DejaReset que tu modifieras manuellement lors du reset de ton compteur puis dans ta macro d'ouverture tu mets une double condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If date>datedereset and dejareset = "False" then
    compteur=0
    end if

    Merci pour cette double condition. cela règle le problème si jamais je demande un reset après la date clé. Mais si jamais je fais le premier reset 5 jours après, j'aurai perdu 5 jours d'incrémentation dans la nouvelle période.

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Si l'incrémentation est journalière, il te suffit d'initialiser le compteur d'après la différence de jours entre la date de référence et la date actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Sub Test()
     
        Dim DateFin As Date
        Dim Compteur As Long
     
        DateFin = Range("A1")
     
        'si la date est identique, "Compteur" sera égal à 0
        'sinon, il aura la valeur de la différence en jours
        If Now >= DateFin Then Compteur = Now - DateFin
     
        MsgBox Compteur
     
    End Sub
    Hervé.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 44
    Par défaut
    l'incrémentation est journalière mais pas régulière.
    Il se peut que je n'ai aucun incrémentation sur plusieurs jours mais à l'inverse plusieurs incrémentation sur une journée.

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Oh! Tu sais mon ami, nous ne sommes pas dans ta tête, on ne connaît pas ton problème alors comment veux tu que l'on imagine une solution ?

    Comme déjà dit :
    Quels sont les facteurs d'incrémentation de ton compteur?

    Si tu reset ton compteur 5 jours après tu peux soit l'ajuster manuellement soit avoir une formule qui te le calcule en dépendant des facteurs d'incrémentation.

    Pas 37000 solutions. Deux. A toi d'en choisir une.

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par andy.spit Voir le message
    l'incrémentation est journalière mais pas régulière.
    Il se peut que je n'ai aucun incrémentation sur plusieurs jours mais à l'inverse plusieurs incrémentation sur une journée.
    As-tu essayé la procédure présente sur le lien que je t'ai proposé ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/09/2007, 11h42
  2. [VBA-E]demarrer une macro a partir d'une certaine date
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/01/2007, 21h35
  3. Durée depuis une certaine date jusqu'à aujourd'hui
    Par kirouha dans le forum Access
    Réponses: 5
    Dernier message: 13/07/2006, 10h07
  4. [C# VS2005] Appel d'un handler à une certaine date
    Par djmanu dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/04/2006, 12h24
  5. Ne prendre que les infos avant une certaine date??
    Par mythtvtalk.com dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/07/2003, 10h20

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