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 :

Boucle sur les dates


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut Boucle sur les dates
    Bonjour à tous,

    J'aimerai créer une macro afin de réaliser des fiches qui récapitule par jour les taches effectuées.

    Pour le moment, je bloque sur la liste des jours dans un mois, car tous les mois n'ont pas tous 31 jours.
    Ainsi, j'aimerai savoir comment on peut créer la boucle permettant d'afficher la date complète d'un mois complet ligne par ligne en tenant compte du nombre de jours de ce mois.

    Également j'aimerai savoir si on peut mettre une condition qui différencie les jours de semaine et les jours du week end par une couleur différente.

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Je n'ai pas la fonction FERIE dans ma version d'excel...

  4. #4
    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 à toutes et tous,

    Regarde si c'est ce que tu veux !

    Hervé.

    Oups,

    Je viens de voir que dans les jours fériés j'ai le vendredi avant Pâques qui est férié en Alsace, donc adapte.

    Hervé.
    Fichiers attachés Fichiers attachés

  5. #5
    Invité
    Invité(e)
    Par défaut Re
    C'est normal que tu n'est pas la fonton fériés dans êxcel, carc'est moi qui l'ai créé! Tu peux la jouter a ton projet VBen ajoutant un module et en copiant le code de dans.
    Attention il fautl'enrzgistrer en xls ou en xlsm

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Merci Theze et rdurupt, cela m'a permis de bien avancer !!

    Par contre, comment la jouter !?

    Une dernière question pour la couleur, vous avez utilisé quelle commande pour quelle soit verte pour un jour ouvré et rouge sinon ??

  7. #7
    Invité
    Invité(e)
    Par défaut Bonjour,
    Bonjour,
    Pour entrer dans VB, frapes simultanément sur les touches [Alt] + [F11].
    Ensuite Menu-> Insertion-> Module.
    Puis copie colle ce code.
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    Public Function Ferie(UneDate As Long, Optional DimanchesOuiNon As Boolean) As Boolean
    ' Par défaut la fonction ne considère pas que les Dimanche de Pâques
    ' et de Pentecôte sont fériés
    ' il suffit de renseigner l'argument DimanchesOuiNon à True à l'appel de la fonction
    ' pour les considérer comme fériés
    If IsSamediDimange(UneDate) Then
        Ferie = True
        Exit Function
    End If
    If IsNull(DimanchesOuiNon) Then DimanchesOuiNon = False
     
    Dim JFF ' table des fériés fixes (jours)
    Dim MFF ' table des fériés fixes (mois)
    JFF = Array(1, 1, 8, 14, 15, 1, 11, 25)
    MFF = Array(1, 5, 5, 7, 8, 11, 11, 12)
    Dim J As Long
    Ferie = False
    ' Recherche dans la table des jours fériés fixes
    For J = 0 To 7
    If Day(UneDate) = JFF(J) And Month(UneDate) = MFF(J) Then
    Ferie = True
    Exit Function
    End If
    Next J
    Dim FM ' contient les dates des lundis de Paques
    'FM = Array(38824, 39181, 39531, 39916, 40273, 40658, 41008, _
    '41365, 41750, 42100, 42457, 42842, _
    '43192, 43577, 43934, 44291, 44675, _
    '45026, 45383, 45768, 46118, 46475, _
    '46860, 47210, 47595)
     
    FM = Paque(Year(UneDate))
    ' Recherche si la date est un lundi de paques
    ' ou jeudi de l'ascension
    ' ou lundi de pentecôte
    'For J = 0 To 24 ' à changer si vous allez au delà de 2030
    If (UneDate = FM) Or (UneDate = FM + 39) Or (UneDate = FM + 50) Then
    Ferie = True
    Exit Function
    End If
    ' si DimanchesOuiNon est vrai
    ' on teste les dimanches de Pâques et Pentecote
     
     
    If DimanchesOuiNon Then
    If (UneDate = FM - 1) Or (UneDate = FM + 48) Then
    Ferie = True
    Exit Function
    End If
    End If
    'Next J
    End Function
    Private Function IsSamediDimange(J) As Boolean
    If Weekday(J) = 1 Then IsSamediDimange = True
    If Weekday(J) = 7 Then IsSamediDimange = True
    End Function
    Private Function MDDIF(A, B) As Long
    MDDIF = DateDiff("d", A, B)
    End Function
    Private Function MuMod(V, d)
    MuMod = Int(V / d)
    End Function
    Private Function Paque(Annee As Integer) As Date
    Dim A, B, C, d, E, F, G, H, I, J, K, l, M, N, O
    C = Annee - 1900
    d = C Mod 19
    E = (d * 7) + 1
    F = Int(E / 19)
    G = 11 * d - F + 4
    H = G Mod 29
    I = Int(C / 4)
    J = C - H + I + 31
    l = J Mod 7
    K = J Mod 7
    l = 25 - H - K
    M = CDate("31/03/" & Annee)
    Paque = M + l
    End Function
    Attention les fichiers Excel avec l’extension XLSX ne garde pas les macros !
    Il faut les sauvegarder en XLSM.

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Merci, cela fonctionne bien !!

    Une dernière chose, comment pourrais-je faire pour les couleurs !? A savoir, juste mettre en rouge les jours non ouvrés.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ccadic Voir le message
    Merci, cela fonctionne bien !!

    Une dernière chose, comment pourrais-je faire pour les couleurs !? A savoir, juste mettre en rouge les jours non ouvrés.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Merci !! J'ai réussi à l'incorporer à ma macro.

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

Discussions similaires

  1. Equivalent à TRUNC ou ROUND d'Oracle sur les Dates ?
    Par swirtel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/05/2005, 09h45
  2. operation sur les dates
    Par elendil dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/04/2005, 12h14
  3. [C#] Calcul sur les dates avec des DateTimePicker
    Par alizee971 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 02/04/2005, 17h14
  4. MS Access et TQuery (probleme sur les dates)
    Par Djob dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/06/2004, 14h57
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

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