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

  1. #1
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : avril 2019
    Messages : 7
    Points : 4
    Points
    4
    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
    Inscrit en
    septembre 2005
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 685
    Points : 3 076
    Points
    3 076
    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
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    juin 2007
    Messages
    14 298
    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 : 14 298
    Points : 29 407
    Points
    29 407
    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
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : avril 2019
    Messages : 7
    Points : 4
    Points
    4
    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
    Inscrit en
    septembre 2005
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 685
    Points : 3 076
    Points
    3 076
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Fournit ton code que l'on voit ce qui cloche
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  6. #6
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : avril 2019
    Messages : 7
    Points : 4
    Points
    4
    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
    Inscrit en
    septembre 2005
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 685
    Points : 3 076
    Points
    3 076
    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)
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    juin 2007
    Messages
    14 298
    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 : 14 298
    Points : 29 407
    Points
    29 407
    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.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : avril 2019
    Messages : 7
    Points : 4
    Points
    4
    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
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    avril 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : avril 2019
    Messages : 7
    Points : 4
    Points
    4
    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, 10h24
  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, 16h13
  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, 13h50
  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, 17h48
  5. Réponses: 2
    Dernier message: 22/07/2002, 13h13

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