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 :

rapporte la date du dernier dimanche connu


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut rapporte la date du dernier dimanche connu
    Salut,

    Je ne sais pas si je me complique la vie, mais je n'arrive pas à trouver une fonction qui me donnerait la date du dernier dimanche connu.
    Est-ce que quelqu'un pourrait m'éclairer svp ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    752
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 752
    Points : 832
    Points
    832
    Par défaut
    Tu prends la date actuelle, et tant que le jour testé n'est pas dimanche tu recules de 1 jour: t'as plus qu'à traduire ça avec du code!

    Regarde aussi le module DateTime dans la bibliothèque VBA: t'as plein de trucs intéressants dedans.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Merci pour ta réponse.
    Voici ce que j'ai programmé (je ne suis pas un pro ), a priori ca fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For i = 1 To 8
        Find = Date - i
        Mydate = Format(Find, "dddd")
        If Mydate = "Sunday" Then
            Find = Date - i
            Find = Format(Find, "dddd, mmm d yyyy")
            i = 8
        End If
    Next
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Juste une remarque :

    pour cette fois cela fonctionne, mais vous utilisez "Find" comme une variable et c'est un mot-clé, ce qui n'est pas conseillé.

    Vous pouvez utiliser sans problème une variable vous convenant et qui n'est pas un mot-clé.

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Ca tient en une ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DimanchePrecedent = DatePivot + (1 - Weekday(DatePivot) Mod 8)
    Pour faire plus joli, on peut l'utiliser dans une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function DimanchePrecedent(DatePivot As Date) As Date
        DimanchePrecedent = DatePivot + (1 - Weekday(DatePivot) Mod 8)
    End Function
    Si c'est pour utiliser dans Excel, pas besoin de passer par VBA
    Voici la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =A1+(1-MOD(JOURSEM(A1);8))
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 66
    Points : 39
    Points
    39
    Par défaut
    Merci par vos réponses.
    Je suis toujours faciné par vos manière de simplifier les choses ! Merci !!

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    752
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 752
    Points : 832
    Points
    832
    Par défaut
    J'avoue que moi-même je n'ai pas pensé au Mod dont je suis pourtant assez friand, et pas qu'en VB/VBA.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/10/2014, 11h14
  2. Valeur de la date du dernier dimanche du mois
    Par LeSchtroumpf dans le forum Général VBA
    Réponses: 2
    Dernier message: 24/08/2012, 09h37
  3. creation d'un forum, date de derniere mise a jour
    Par Invité dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/03/2006, 20h51
  4. [FLASH 8] Tri d'un dataGrid par rapport à la date
    Par aldo-tlse dans le forum Flash
    Réponses: 4
    Dernier message: 02/12/2005, 17h34
  5. [Upload] Date de dernier accès aux fichiers...
    Par John@EuroDevz dans le forum Langage
    Réponses: 10
    Dernier message: 08/04/2005, 10h57

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