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

VBA Access Discussion :

Nombre de Lundi, Mardi , Mercredi etc dans une plage de date


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 195
    Points : 83
    Points
    83
    Par défaut Nombre de Lundi, Mardi , Mercredi etc dans une plage de date
    Bonsoir les amis,

    Je suis face à un dileme. et je voulais votre aide.
    Voilà moi problème. J'ai une plage de Date exemple : 02/02/2018 au 01/02/2019.
    Voici la plage :
    02/02/2018
    03/02/2018
    04/02/2018 etc....

    donc j'aimerai identifier le nombre de lundi, le nombre de mardi, le nombre de mercredi, etc dans la plage.

    Je demande de ll'aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Il y a peut-etre un moyen de le calculer en function du nombre de jour et du 1er jour de la periode mais il ne m'apparait pas.

    Ci-dessous une function VBA qui fait cela de maniere plus brutrale :

    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
    16
    17
    18
    Public Function CompteJourSemaine(prmDateDebut As Date, prmDateFin As Date) As Dictionary
        'Cette function a besoin d'une reference a Microsoft Scripting Runtime
        Dim result As New Dictionary
     
        Dim numJour As Long
        Dim d As Date: For d = prmDateDebut To prmDateFin
            numJour = Weekday(d, vbMonday) 'Suppose que la semaine commence le lundi donc 1 = Lundi.
     
            If result.Exists(numJour) Then
                    result.Item(numJour) = result.Item(numJour) + 1
                Else
                    Call result.Add(numJour, 1)
            End If
     
        Next d
     
        Set CompteJourSemaine = result: Set result = Nothing
    End Function
    ici un exemple d'utilisation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Exemple_CompteJourSemaine()
        Dim listeNombreJourSemaine As Dictionary
        Set listeNombreJourSemaine = CompteJourSemaine(DateSerial(2018, 1, 1), DateSerial(2018, 1, 14))
     
        Dim i As Long
     
        For i = 0 To listeNombreJourSemaine.Count - 1
            Debug.Print listeNombreJourSemaine.Keys(i), listeNombreJourSemaine.Items(i)
        Next i
     
        Set listeNombreJourSemaine = Nothing
    End Sub
    Note que si la periode est de moins d'une semaine, les jours manquants ne seront pas dans le resultat, pas meme a 0.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 195
    Points : 83
    Points
    83
    Par défaut
    Ha merci, Grandement merci pour la réponse.
    Depuis hier j'étais la dessus. Mais il un grand problème à mon niveau. Je suis un débutant et depuis hier je tente de le mettre en place mais sans succés donc si je pouvais l'avoir en version Access ça me permettra de connaitre sa mise en exécution.
    Merci pour la compréhension

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Non, desole, je ne peux pas te fournir de base exemple.

    Ce qu'il faut faire c'est ajouter un module et copier les 2 codes dedans.
    Le 1er est la function elle-meme et le 2nd seulement un exemple qui permet de verifier si cela fonctionne.

    Pour t'aider plus il faudrait que tu expliques dans quel contexte tu veux te servir des resultats.
    La, tel que c'est ecrit, cel suppose que c'est dans un programme VBA.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 195
    Points : 83
    Points
    83
    Par défaut
    Ha ok pas de problème.
    Oui c'est un programme VBA. Voici mon but. Sélection des jours comme : Lundi, Jeudi et Dimanche. déterminer une période du 22/06/2018 au 21/06/2019, il y aura combien de Lundi, Jeudi et Dimanche.
    Voici ce que j'aimerais faire.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Exemple_CompteJourSemaine fait cela et t'affiche le nombre de chaque jour de la semaine dans la periode voulue en commencant par 1 le lundi.

    Si tu veux seulement voir le nombre de Jeudi tu peux faire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print listeNombreJourSemaine(4)
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Il y a une autre solution qui calcule via une req un nombre de jours (lundi à dimanche) entre 2 dates (Datedeb et Datefin)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Compare Database
    Public Function NbLundis(DateDeb As Date, DateFin As Date)
    NbLundis = DateDiff("ww", DateDeb, DateFin, vbMonday) - Int(vbMonday = Weekday(DateDeb))
    'vbMonday = lundi, vbTuesday = mardi, vbWednesday = mercredi, vbThursday = jeudi, vbFriday = vendredi, vbSaturday = samedi, vbSunday = dimanche
    End Function
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

Discussions similaires

  1. Compter les nombres de 0, 1 et 2 dans une plage de cellules
    Par Novice72 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/08/2016, 10h09
  2. [XL-2010] calcul du nombre de jours ouvrables dans une plage de dates
    Par logan13 dans le forum Excel
    Réponses: 6
    Dernier message: 12/07/2016, 12h53
  3. Réponses: 4
    Dernier message: 18/10/2015, 19h35
  4. Réponses: 16
    Dernier message: 14/09/2006, 06h43
  5. [date] Recherche dans une plage de dates
    Par astro84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/06/2005, 17h13

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