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

Requêtes et SQL. Discussion :

convertir n° semaine en date [Toutes versions]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut convertir n° semaine en date
    Bonjour, je suis nouveau et j’aimerais avoir votre aide.

    Voila j’ai un problème j’essaye d’utiliser la fonction suivante :

    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
    Function LundiSemaineAnnéeQuelconque(semaine As Integer, Optional An As Integer = 0) As Date
    On Error GoTo TraitementErreur
    'Teste si le numéro de semaine est correct et si l'année est spécifiée.
    If IsNull(semaine) Or semaine <= 0 Or semaine > 52 Then
       MsgBox "Le numéro de semaine est incorrect, veuillez corriger", vbCritical, "Erreur de saisie"
       Exit Function
    ElseIf An = 0 Then
       An = Year(Date)
    End If
    Dim Datetemp As Date
    ' On calcule à partir du 1er janvier de l'année spécifiée
    Datetemp = DateSerial(An, 1, 1) + (semaine - 1) * 7
    LundiSemaineAnnéeQuelconque = Datetemp - (Weekday(Datetemp) - vbMonday)
    Exit Function
    TraitementErreur:
       MsgBox "No Erreur: " & Err.Number & Chr(13) & Chr(13) & Err.Description
    End Function
    Elle permet donc de convertir un numéro de semaine en date


    J’ai un formulaire avec une textbox ou j’entre un numéro de semaine (exemple : 52)

    La fonction me retourne le 24/12/2009 jusqu'à là pas de problème.
    Le problème est que je n’arrive pas à afficher la date d’une autre année.

    Si jentre 52/08 j’ai une erreur d’exécution 13 (incompatibilité de type) (je suppose que c’est-à-cause du « / »

    Si j’entre 5208 le nombre est >53 donc j’ai le message qui me dit que mon numéro de semaine n’est pas valide.

    J’ai essayé 52 08 j’obtiens toujours 24/12/2009 et non l’année 2008

    De plus, je n’ai pas l’impression que cela me donne la bonne date du lundi car quand on tape 52 (de l’année 2009) cela m’affiche 24/12/2009 et normalement ca devrait être le 21/12/2009 (il me semble)

    Quelqu’un a une idée ?

    Ah, j’oubliais petit détail (qui a son importance :p) je ne suis vraiment pas très bon en programmation

    sinon un peu plus bas dans le forum, j'ai vu un post de Scopas qui voulait faire la meme chose mais je prefere le code que j'ai inseré un peu plus haut dans ce post.

    merci de votre aide par avance

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 920
    Points : 4 828
    Points
    4 828
    Par défaut
    Bonjour,
    Tu y étais presque : essaie ... 52 2008

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    salut,

    merci pour la reponse mais cela ne me debloque pas. Lorsque j'entre 52 2008 j'ai un message d'erreur qui me dit erreur d'execution 6 depassement de capacité

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 920
    Points : 4 828
    Points
    4 828
    Par défaut
    Sorry,
    il faut bien sûr une virgule entre les 2 arguments de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date1=LundiSemaineAnnéeQuelconque(26,2008)

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    Super ta solution marche c’est bien la « , » qui manquait MAIS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Semaine2 =LundiSemaineAnnéeQuelconque(26,2008)
    Mon problème est que je voudrais que cela prenne la valeur qui est dans le champ date1
    Dans date1 j’entre 10,2007
    Quand je regarde le code y me prend que le 10 pour la semaine est An = 0 donc y prend pas le 2007 avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Semaine2 =LundiSemaineAnnéeQuelconque(date1)
    Donc il faudrait que je mette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Semaine2 =LundiSemaineAnnéeQuelconque(date1, ?)
    ? = car je ne vois pas trop quoi mettre

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    soit tu demandes les deux valeurs l'une après l'autre, soit tu passes par la fonction split.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'si toujours date1 = 10,2007 alors
     
    Semaine2 =LundiSemaineAnnéeQuelconque(split(date1,",")(0),split(date1,",")(1))

  7. #7
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Tu peux aussi créer deux champs dans ton formulaire et ainsi isoler la notion de semaine et d'année, ce qui évite tout souci de séparateurs...

    Champ1 :
    Nom = txtSemaine
    Valeur = numéro de la semaine
    Option = tu peux prévoir un masque de saisie ou une liste déroulante...

    Champ2:
    Nom = txtAnnée
    Valeur = Année
    Option = tu peux prévoir un masque de saisie
    Valeur par défaut = tu peux prévoir de mettre l'année en cours en mettant =Year(Date())


    Pour calculer alors ta date, quelque chose du genre (non testé):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date1 =LundiSemaineAnnéeQuelconque(Me!txtSemaine,Me!txtAnnée)

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Points : 17
    Points
    17
    Par défaut
    Salut,


    merci pour votre aide, j'ai donc utilisé la methode a mout1234.

    merci a vous tous

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

Discussions similaires

  1. [2008R2] Convertir une semaine en date
    Par ARONE dans le forum Développement
    Réponses: 3
    Dernier message: 26/03/2014, 17h45
  2. [XL-2003] Comment convertir un n° de semaine en Date
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/06/2010, 18h55
  3. [Dates] Convertir un numéro de semaine en date
    Par Popop56 dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2009, 12h54
  4. Comment convertir ce style de date ?
    Par Bruno13 dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 04h03
  5. [Firebird] Convertir une String en date
    Par laffreuxthomas dans le forum SQL
    Réponses: 1
    Dernier message: 04/05/2005, 19h42

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