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 :

Comment convertir un n° de semaine en Date [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Points : 84
    Points
    84
    Par défaut Comment convertir un n° de semaine en Date
    Bonjour,
    J'essaye de trouver un code qui me premettrait de trouver en fonction d'un n° de semaine :
    L'intervalle en date 1er - Dernier jour de cette semaine

    En cherchant dans les forums j'ai trouvé le code ci dessous qui me permets de faire l'inverse, à partir d'un date trouver le n° de semaine. Mais je n'arrive pas à résoudre mon pb. Pouvez-vous m'apporter des conseils pour aboutir ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Cmd2_Click()
    Annee = DatePart("yyyy", TxtDate1)
    NumSem = DatePart("ww", TxtDate1, 2, 3)
    TxtSemaine = "S" & Right(Annee, 2) & NumSem
    End Sub

    Merci par avance
    MichaSarah

  2. #2
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour MichaSarah,

    Pour répondre, il faut savoir quelle norme internationale des numéros de semaine tu souhaites utiliser.
    La norme ISO considère comme 1ère semaine de l'année la 1ère semaine de 4 jours, c'est celle utilisée en France.
    Ca veut dire que le 1er janvier peut se retrouver en dernière semaine de l'année précédente, ou inversement que le 31/12 de l'année précédente peut se trouver en semaine 1...

    Re,

    Donc sur la norme ISO, la première date d'une semaine devrait donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function DateSemaine(NumSem As Long, NumAn As Long) As Date
        If NumSem < 53 Or (NumSem < 54 And Weekday(DateSerial(NumAn + 1, 1, 3), vbMonday) = 7) Then
            DateSemaine = DateSerial(NumAn, 1, 4) - Weekday(DateSerial(NumAn, 1, 4), vbMonday) + 1 + (NumSem - 1) * 7
        End If
    End Function
    et la dernière date 6 jours plus tard évidement

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,

    sans VBA

    n°de sem en B1
    année en B2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(DATE(B2;1;1)-MOD(DATE(B2;1;-2);7)+6)+7*(B1-1)
    explications:on cherche le 1° lundi de l'année DATE(B2;1;1)-MOD(DATE(B2;1;-2);7)+6 et on ajoute le nombre de semaine moins un multiplié par 7
    connaissant le lundi, on trouve facilement la fin de semaine

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Points : 84
    Points
    84
    Par défaut
    Bonjour,
    Merci à tous pour votre aide. J'ai utilisé la solution de tototiti2008.

    MichaSarah

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

Discussions similaires

  1. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  2. [Dates] Convertir un numéro de semaine en date
    Par Popop56 dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2009, 12h54
  3. Réponses: 4
    Dernier message: 06/06/2006, 16h18
  4. Réponses: 14
    Dernier message: 29/06/2005, 10h22
  5. []Comment convertir une date GMT en date vb ?
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 11/08/2004, 16h01

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