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 :

Lancement d'une macro entre et seulement deux dates


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2019
    Messages : 23
    Par défaut Lancement d'une macro entre et seulement deux dates
    Bonjour à tous,
    Je voudrais connaître le code Vba Excel afin de pouvoir lancer la Macro1 entre deux dates (à cheval sur deux années civiles) et ce à l'ouverture du classeur.
    Soit: date début : 27/12/ de l'année courante.
    date fin : 10/01/ de l'année suivante.
    En dehors de cet intervalle de dates la Macro1 ne s'active pas.
    D'avance merci pour votre collaboration.

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Moi je ferai une macro qui vérifie la periode de date

    puis je ferai un CALL quand la date est comprise dans la période

    sinon rien

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Le 18 Voir le message
    date début : 27/12/ de l'année courante.
    date fin : 10/01/ de l'année suivante.
    La notion "d'année suivante" est assez difficile à saisir.
    Je traduirais donc ta seconde condition par "avant le 10/01 de l'année en cours".

    En dehors de cet intervalle de dates la Macro1 ne s'active pas.
    Commence ta macro par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Now() < DateSerial(Year(Now()), 12, 27) And Now() > DateSerial(Year(Now()), 1, 10) Then Exit Sub

  4. #4
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2019
    Messages : 23
    Par défaut Lancement d'une macro entre deux dates spécifiques
    Merci Igloobel et Menhir,
    Mais à première vue cela ne fonctionne pas, j'essaye encore et vous tiens au courant

  5. #5
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Fournit ton code que l'on voit ce qui cloche

  6. #6
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2019
    Messages : 23
    Par défaut Lancement d'une macro entre et seulement deux dates
    Bonjour Igloobel,
    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub workbook_open()
        If Format(Now(), "yy,mm,dd") < DateSerial(Year(Now()), 12, 27) And Format(Now(), "yy,mm,dd") > DateSerial(Year(Now()), 1, 10) Then
            MsgBox "aa "
        Else
            MsgBox "bb "
        End If
    End Sub
    Merci.

  7. #7
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    si tu compares une chaine avec une date cela ne marche pas

    donc voici quelque chose de ressemblant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
       Dim MaDate As Date
     
        'MaDate = Now()
        'MaDate = #1/5/2020# 'format MM/JJ/AAAA
        MaDate = #12/30/2019#
     
        If MaDate < DateSerial(Year(Now()), 12, 27) And MaDate > DateSerial(Year(Now()), 1, 10) Then
            MsgBox "hors plage"
        Else
            MsgBox "traitement à faie"
        End If
     
    End Sub
    Menhir t'a livré un code prêt à l'emploi ! juste un else et un end if manque. J'ai juste changé le Now()= par MaDate= pour faciliter les tests et c'est tout.


    Comprends-tu maintenant : MaDate < DateSerial(Year(Now()), 12, 27)

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Le 18 Voir le message
    Mais à première vue cela ne fonctionne pas
    Si tu n'es pas plus descriptif, on ne va pas avancer.

    Citation Envoyé par Le 18 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Format(Now(), "yy,mm,dd") < DateSerial(Year(Now()), 12, 27) And Format(Now(), "yy,mm,dd") > DateSerial(Year(Now()), 1, 10) Then
    C'est sûr que si tu modifies le code sans le signaler, on aura du mal à comprendre pourquoi ça ne fonctionne pas.

    Reprend mon code (sans ces "Format" qui ne servent qu'à mettre l'embrouille) et ça ira mieux.

  9. #9
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2019
    Messages : 23
    Par défaut Lancement d'une macro entre et seulement deux dates
    Merci à vous deux Igloobel et Menhir pour votre collaboration.
    Je fais les modifications cet après-midi et vous tiens au courant.

  10. #10
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2019
    Messages : 23
    Par défaut lancement d'une macro entre et seulement deux dates
    Re-bonjour Igloobel et Menhir,
    C'est parfait et fonctionne comme demandé.
    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] executer une macro entre deux dates
    Par Eric26 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2011, 09h24
  2. [VBA-E] Lancement d'une macro en fonction du contenu d'une cellule
    Par Zak Blayde dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2007, 15h13
  3. [VBA-E]Probleme de lancement d'une macro non souhaité
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 06/12/2006, 12h50
  4. [VBA-E] Lancement d'une macro située dans un autre fichier
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/09/2006, 16h48
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

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