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 :

Sauvegarde fichier en fonction de la semaine [XL-2010]


Sujet :

Macros et VBA Excel

  1. #21
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    et si la première semaine commence par un vendredi de lundi a jeudi on est dans quelle année hein
    C'est pourtant simple (Norme Iso) :
    on est dans le 53ème semaine (hé oui, cela existe) de l'année antérieure.
    Mais on s'égare, là. C'est plutôt la norme Iso, qu'il te faudrait bûcher de plus près.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  2. #22
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    unparia
    et oui si je blague depuis tout a l'heure c'est bien parce que je trouve cela complètement idiot

    ok 53 semaine
    mais alors pourquoi
    la semaine qui commence par un vendredi le 01/01/xxxx ne serait pas une semaine si la dernière semaine année précédente qui ne comporte pas ses 7 jour en est une ??

    enfin ca m'amuse beaucoup et on peut débattre tant que tu veux mais on est dans un cadre ou( il y a des gens que l'on formate avec une logique alambiquée et les autres )

    c'est tout
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #23
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    A patricktoulon
    je ne crois tout simplement pas que le débat sur l'opportunité ou non de la norme iso ait ici sa place. Existent pour cela des forums dédiés aux considérations diverses et variées.
    L'application de cette norme est ici seule de rigueur. Le reste est pur égarement.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  4. #24
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    Ca présente l'avantage de n'avoir que des semaines de 7 jours.
    Plutôt que deux fois par an en avoir une de 1 à 6 jours
    eric

  5. #25
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour eriiic
    C'est en effet l'un des propos de la norme ISO
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  6. #26
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Apres un test sur plusieurs annees,
    La fonction suivante commet une erreur avec certaines dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumeroDeSemaineISOstandard= DatePart("ww", InDate, vbMonday, vbFirstFourDays)
    Celle-ci commet beaucoup d'erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumeroDeSemaineISOstandard= Format(InDate, "ww", vbMonday, vbFirstFourDays)
    La meilleure fonction est celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function IsoWeekNumber(d1 As Date) As Integer
    ' Attributed to Daniel Maher
        Dim d2 As Long
        d2 = DateSerial(Year(d1 - WeekDay(d1 - 1) + 4), 1, 3)
        IsoWeekNumber = Int((d1 - d2 + WeekDay(d2) + 5) / 7)
    End Function
    Cordialement

    Docmarti.

  7. #27
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Docmarti
    Apres un test sur plusieurs annees,
    La fonction suivante commet une erreur avec certaines dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part

    NumeroDeSemaineISOstandard= DatePart("ww", InDate, vbMonday, vbFirstFourDays)
    Il me serait utile (et à d'autres également) d'avoir un exemple d'erreur (une date).



    EDIT : je viens de passer en revue toutes les dates (de tous les jours, année par année) depuis le 01/01/1900 jusqu'au 31/12/2100 (deux siècles entiers).
    Ce passage en revue prend moins d'une minute (si tu le souhaites je te le communique) pour dénoncer une éventuelle différence entre le retour obtenu par datepart et la fonction que tu proposes.
    ------------->> résultats tous rigoureusement identiques !
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  8. #28
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    quid de la formule NO.SEMAINE.ISO ?

    je n'ai pas le temps de tester en cet instant, mais normalement c'est la justesse réincarnée si son nom n'est pas galvaudé

  9. #29
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour joe.levrai
    Le seul souci avec la fonction NO.SEMAINE.ISO est qu'elle n'existe pas sur toutes les versions de Excel (elle est relativement récente).
    Ce qui peut poser problème en cas de distribution du classeur.
    Je crois que nous en avons discuté (je ne sais plus avec qui) il y a peu de temps.
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  10. #30
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Effectivement, à partir de 2007

  11. #31
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour a tous

    bon puisque les super fonction vba du grand Microsoft pose des soucis
    je vous propose de faire ca a l'ancienne (si je puis dire )avec un boulier (ces chinois c'est les meilleurs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
        MsgBox semaine(Date)
    MsgBox semaine("18/11/2016")
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Function semaine(D As Date)
        Dim A, M As Long, J As Long, nbjour As Long, W As Long
        A = Year(D)
        For M = 1 To 12
            nbjour = Day(DateSerial(A, M + 1, 0))
            For J = 1 To nbjour
                If Format(DateSerial(A, M, J), "dddd") = "jeudi" Then W = W + 1
                If CDate(DateSerial(A, M, J)) = CDate(D) Then semaine = W
            Next J
            If semaine <> "" Then Exit For
        Next M
    End Function
    et sous l'autre forme de boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function semaine2(D As Date)
        Dim A, M As Long, J As Long, nbjour As Long, W As Long
        A = Year(D)
        Do
            M = M + 1: J = 0:nbjour = Day(DateSerial(A, M + 1, 0))
            Do
                J = J + 1
                If Format(DateSerial(A, M, J), "dddd") = "jeudi" Then W = W + 1
                If CDate(DateSerial(A, M, J)) = CDate(D) Then semaine2 = W
            Loop Until J = nbjour Or semaine2 <> ""
        Loop Until M = 12 Or semaine2 <> ""
    End Function
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #32
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Test sur la fonction DatePart entre 1900 et 1930 :

    3 erreurs :

    30/12/1907 semaine 53 au lieu de semaine 1
    29/12/1919 semaine 53 au lieu de semaine 1
    31/12/1923 semaine 53 au lieu de semaine 1
    Cordialement

    Docmarti.

  13. #33
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    30/12/1907 semaine 53 au lieu de semaine 1 ==>> non ! les deux donnent bien 1
    29/12/1919 semaine 53 au lieu de semaine 1 ==>> non ! les deux donnent bien 1
    31/12/1923 semaine 53 au lieu de semaine 1 ==>> non ! les deux donnent bien 1

    Une seule explication : tu n'as pas réellement passé des données typées en date

    EDIT : je te propose à nouveau de te communiquer le test fait (code et formules).
    Le veux-tu ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  14. #34
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5

  15. #35
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    de toute facon il faut aller bien loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test2()
      MsgBox DatePart("ww", "01/01/2016", vbMonday, vbFirstFourDays)
      MsgBox Format("01/01/2016", "ww", vbMonday, vbFirstFourDays)
    End Sub
    donne 53 pour les deux

    mes eux fonctions avait une erreur pour la semaine 1
    j'ai corrigé dans la version avec les do/loop
    maintenant c'est bon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
        MsgBox semaine2(Date)
        MsgBox semaine2("01/01/2016")
        MsgBox semaine2("05/01/2016")
        MsgBox semaine2("30/12/2016")
    End Sub
    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
    Function semaine2(D As Date)
        Dim A, M As Long, J As Long, nbjour As Long, W As Long
        A = Year(D): W = 0
        Do
            M = M + 1: J = 0: nbjour = Day(DateSerial(A, M + 1, 0))
                   Do
                J = J + 1
                If Format(DateSerial(A, M, J), "dddd") = "lundi" Then W = W + 1
                If Format(DateSerial(A, M, J), "dddd") = "jeudi" Then W = W + 1
                If CDate(DateSerial(A, M, J)) = CDate(D) Then semaine2 = W / 2
            Loop Until J = nbjour Or semaine2 <> ""
        Loop Until M = 12 Or semaine2 <> ""
        If semaine2 > 0 And semaine2 < 1 Then semaine2 = 1
        semaine2 = Round(semaine2)
    End Function
    dite moi si c'est bon chez vous
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #36
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Citation Envoyé par unparia Voir le message
    30/12/1907 semaine 53 au lieu de semaine 1 ==>> non ! les deux donnent bien 1
    29/12/1919 semaine 53 au lieu de semaine 1 ==>> non ! les deux donnent bien 1
    31/12/1923 semaine 53 au lieu de semaine 1 ==>> non ! les deux donnent bien 1

    Une seule explication : tu n'as pas réellement passé des données typées en date

    EDIT : je te propose à nouveau de te communiquer le test fait (code et formules).
    Le veux-tu ?
    Bien sur.


    Ma fonction est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function IsoWeekNumber(InDate As Date) As Long
     
        IsoWeekNumber = DatePart("ww", InDate, vbMonday, vbFirstFourDays)
     
    End Function
    Donc InDate est certainement de type Date.
    Cordialement

    Docmarti.

  17. #37
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    il faudrait effectivement nous montrer ton test unparia.

    du côté de Docmarti, ses arguments sont clairement ôtés de toute considération type vbsystem

  18. #38
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test2()
        Debug.Print "01/01/2016 semaine :" & DatePart("ww", "01/01/2016", vbMonday, vbFirstFourDays)
        Debug.Print "01/01/2016 semaine :" & Format("01/01/2016", "ww", vbMonday, vbFirstFourDays)
        ' pour etre sur d'injecter une date
        Debug.Print "01/01/2016 semaine :" & DatePart("ww", CDate("01/01/2016"), vbMonday, vbFirstFourDays)
        Debug.Print "01/01/2016 semaine :" & Format(CDate("01/01/2016"), "ww", vbMonday, vbFirstFourDays)
    End Sub
    résultat dans le debug
    01/01/2016 semaine :53
    01/01/2016 semaine :53
    01/01/2016 semaine :53
    01/01/2016 semaine :53
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #39
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Je viens d'en refaire un encore plus VISUEL, pour faciliter la compartaison.
    Le voici :
    Un classeur neuf
    sur feuil1 (avec les colonnes en format standard) :
    - une textbox textbox1
    - un bouton de commande commanbutton1
    - aucune formule en A1
    - formule en A2, à étirer jusqu'à la ligne 366 (pour années bissextiles) :
    - formule en B1, à étirer jusqu'à la ligne 366 (pour années bissextiles) :
    - formule en C1, à étirer jusqu'à la ligne 366 (pour années bissextiles) :
    - formule en D1, à étirer jusqu'à la ligne 366 (pour années bissextiles) :
    - Formule en E1 uniquement (compte les diofférences éventuelles)
    Lignes de code sur la feuille Feuil1 , maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton1_Click()
      TextBox1.Value = Val(TextBox1.Value) + 1
      Range("A1").Value = DateSerial(Val(TextBox1.Text), 1, 1)
    End Sub
    Et dans un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Function IsoWeekNumber(d1 As Date) As Integer
       IsoWeekNumber = DatePart("ww", d1, vbMonday, vbFirstFourDays)
    End Function
    Public Function IsoWeekNumber1(d1 As Date) As Integer
        ' Attributed to Daniel Maher
        Dim d2 As Long
        d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
        IsoWeekNumber1 = Int((d1 - d2 + Weekday(d2) + 5) / 7)
    End Function
    Voilà qui va permettre tous les examens visuels de ton choix.
    Mets une année (celle que tu veux) en textbox1 et clique sur commandbutton1
    -->> toutes les dates de cette année
    -->> à chaque clic nouveau --->> année suivante, etc ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  20. #40
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    vous pouvez faire tout les test que vous voulez
    c'est faux 1 fois sur deux voir 3

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test3()
    For i = 1901 To 2000
    teste = "01/01/" & i & " semaine :" & Format(CDate("01/01/" & i), "ww", vbMonday, vbFirstFourDays)
    teste = teste & " c'etait un :" & Format(CDate("01/01/" & i), "dddd")
    Debug.Print teste
    Next
    End Sub
    résuktat debug
    01/01/1901 semaine :1 c'etait un :mardi
    01/01/1902 semaine :1 c'etait un :mercredi
    01/01/1903 semaine :1 c'etait un :jeudi
    01/01/1904 semaine :53 c'etait un :vendredi
    01/01/1905 semaine :52 c'etait un :dimanche
    01/01/1906 semaine :1 c'etait un :lundi
    01/01/1907 semaine :1 c'etait un :mardi
    01/01/1908 semaine :1 c'etait un :mercredi
    01/01/1909 semaine :53 c'etait un :vendredi
    01/01/1910 semaine :52 c'etait un :samedi
    01/01/1911 semaine :52 c'etait un :dimanche
    01/01/1912 semaine :1 c'etait un :lundi
    01/01/1913 semaine :1 c'etait un :mercredi
    01/01/1914 semaine :1 c'etait un :jeudi
    01/01/1915 semaine :53 c'etait un :vendredi
    01/01/1916 semaine :52 c'etait un :samedi
    01/01/1917 semaine :1 c'etait un :lundi
    01/01/1918 semaine :1 c'etait un :mardi
    01/01/1919 semaine :1 c'etait un :mercredi
    01/01/1920 semaine :1 c'etait un :jeudi
    01/01/1921 semaine :53 c'etait un :samedi
    01/01/1922 semaine :52 c'etait un :dimanche
    01/01/1923 semaine :1 c'etait un :lundi
    01/01/1924 semaine :1 c'etait un :mardi
    01/01/1925 semaine :1 c'etait un :jeudi
    01/01/1926 semaine :53 c'etait un :vendredi
    01/01/1927 semaine :52 c'etait un :samedi
    01/01/1928 semaine :52 c'etait un :dimanche
    01/01/1929 semaine :1 c'etait un :mardi
    01/01/1930 semaine :1 c'etait un :mercredi
    01/01/1931 semaine :1 c'etait un :jeudi
    01/01/1932 semaine :53 c'etait un :vendredi
    01/01/1933 semaine :52 c'etait un :dimanche
    01/01/1934 semaine :1 c'etait un :lundi
    01/01/1935 semaine :1 c'etait un :mardi
    01/01/1936 semaine :1 c'etait un :mercredi
    01/01/1937 semaine :53 c'etait un :vendredi
    01/01/1938 semaine :52 c'etait un :samedi
    01/01/1939 semaine :52 c'etait un :dimanche
    01/01/1940 semaine :1 c'etait un :lundi
    01/01/1941 semaine :1 c'etait un :mercredi
    01/01/1942 semaine :1 c'etait un :jeudi
    01/01/1943 semaine :53 c'etait un :vendredi
    01/01/1944 semaine :52 c'etait un :samedi
    01/01/1945 semaine :1 c'etait un :lundi
    01/01/1946 semaine :1 c'etait un :mardi
    01/01/1947 semaine :1 c'etait un :mercredi
    01/01/1948 semaine :1 c'etait un :jeudi
    01/01/1949 semaine :53 c'etait un :samedi
    01/01/1950 semaine :52 c'etait un :dimanche
    01/01/1951 semaine :1 c'etait un :lundi
    01/01/1952 semaine :1 c'etait un :mardi
    01/01/1953 semaine :1 c'etait un :jeudi
    01/01/1954 semaine :53 c'etait un :vendredi
    01/01/1955 semaine :52 c'etait un :samedi
    01/01/1956 semaine :52 c'etait un :dimanche
    01/01/1957 semaine :1 c'etait un :mardi
    01/01/1958 semaine :1 c'etait un :mercredi
    01/01/1959 semaine :1 c'etait un :jeudi
    01/01/1960 semaine :53 c'etait un :vendredi
    01/01/1961 semaine :52 c'etait un :dimanche
    01/01/1962 semaine :1 c'etait un :lundi
    01/01/1963 semaine :1 c'etait un :mardi
    01/01/1964 semaine :1 c'etait un :mercredi
    01/01/1965 semaine :53 c'etait un :vendredi
    01/01/1966 semaine :52 c'etait un :samedi
    01/01/1967 semaine :52 c'etait un :dimanche
    01/01/1968 semaine :1 c'etait un :lundi
    01/01/1969 semaine :1 c'etait un :mercredi
    01/01/1970 semaine :1 c'etait un :jeudi
    01/01/1971 semaine :53 c'etait un :vendredi
    01/01/1972 semaine :52 c'etait un :samedi
    01/01/1973 semaine :1 c'etait un :lundi
    01/01/1974 semaine :1 c'etait un :mardi
    01/01/1975 semaine :1 c'etait un :mercredi
    01/01/1976 semaine :1 c'etait un :jeudi
    01/01/1977 semaine :53 c'etait un :samedi
    01/01/1978 semaine :52 c'etait un :dimanche
    01/01/1979 semaine :1 c'etait un :lundi
    01/01/1980 semaine :1 c'etait un :mardi
    01/01/1981 semaine :1 c'etait un :jeudi
    01/01/1982 semaine :53 c'etait un :vendredi
    01/01/1983 semaine :52 c'etait un :samedi
    01/01/1984 semaine :52 c'etait un :dimanche
    01/01/1985 semaine :1 c'etait un :mardi
    01/01/1986 semaine :1 c'etait un :mercredi
    01/01/1987 semaine :1 c'etait un :jeudi
    01/01/1988 semaine :53 c'etait un :vendredi
    01/01/1989 semaine :52 c'etait un :dimanche
    01/01/1990 semaine :1 c'etait un :lundi
    01/01/1991 semaine :1 c'etait un :mardi
    01/01/1992 semaine :1 c'etait un :mercredi
    01/01/1993 semaine :53 c'etait un :vendredi
    01/01/1994 semaine :52 c'etait un :samedi
    01/01/1995 semaine :52 c'etait un :dimanche
    01/01/1996 semaine :1 c'etait un :lundi
    01/01/1997 semaine :1 c'etait un :mercredi
    01/01/1998 semaine :1 c'etait un :jeudi
    01/01/1999 semaine :53 c'etait un :vendredi
    01/01/2000 semaine :52 c'etait un :samedi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/08/2008, 18h21
  2. Réponses: 2
    Dernier message: 03/06/2005, 11h01
  3. [quel langage] sauvegarder fichier dont l'url est connu
    Par azerty_essai dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 28/03/2005, 12h14
  4. Sauvegarde fichier excel
    Par tiopan dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/10/2003, 13h36
  5. Fichier de fonctions globales
    Par PEM dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/07/2002, 21h35

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