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 :

[VBA-E] Lundi d'une semaine


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut [VBA-E] Lundi d'une semaine
    Bjr,

    Dans ce code que représente le 3 de DATE et à quoi sert Text ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lundisem = Evaluate("text(date(2008,1,3)-weekday(date(2008,1,3))-5+(7*17)+ 0,""dd/mm/yyyy"")")

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    la fonction "Texte" sert à convertir une valeur en texte et par la même occasion ici, de mettre en forme le résultat: "dd/mm/yyyy"


    bon après midi
    michel

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut
    bjr,

    Ok pour la transfo en texte mais ici pourquoi on transforme en texte ?

    et pouquoi date part du 3 1 2008 si le 3 représente bien le jour ?
    Cdt

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    mais ici pourquoi on transforme en texte ?
    tu as lu mon message ?

    par la même occasion ici, de mettre en forme le résultat: "dd/mm/yyyy"

    sans la fonction Texte, tu obtiendrais uniquement une valeur numérique représentant la date : 39559


    bon week end
    michel

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Petite précision.
    Ce que tu nous montres est une formule Excel, pas du code VBA.

    Tu pourrais parfaitement analyser cette formule en tapant chacun des mots clés (après un =) dans la barre de formule et en cliquant sur le bouton fx (juste devant la barre de formule).
    Tu obtiendrais toute l'info nécessaire.

    Ceci dit, il est franchement tordu de faire un Evaluate en VBA alors que toutes les fonctions Excel utilisées ont leur équivalent en VBA.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut
    Bjr Alain

    C'est pourtant ce que j'ai récupéré qui disait "comment trouver par macro la date du lundi d'une semaine donnée le code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Test()
    Dim Annee As Integer, Semaine As Integer, NumJour As Integer
     
    Annee = 2007
    Semaine = 43
    NumJour = 0 ' 0=Lundi, 1=Mardi ...
     
    MsgBox Evaluate("TEXT(DATE(" & Annee & ",1,3)-WEEKDAY(DATE(" & Annee & _
        ",1,3))-5+(7*" & Semaine & ")+" & NumJour & ",""dd/mm/yyyy"")")
    End Sub
    Existe-t-il mieux en code ?
    Cdt

  7. #7
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut
    Bjr,

    J'ai vu vos code, moi j'avais adapté comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    annee=Format(Date,"yyyy")
    datdeb=Format(annee &",1,3","#####"
    joursem=Weekday(datdeb)
    numsem=DatePart("ww",Date)
    lundi=Format((datdeb-joursem) -5+(7*numsem),"dd/mm/yyyy")

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Mais c'est maintenant autre chose !
    Tu cherches le lundi de la semaine dans laquelle se trouve la date en cours ?

    Si c'est celà, rien de plus simple !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Command1_Click()
      MsgBox Date - WeekDay(Date) + 2
    End Sub

  9. #9
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut
    Bjr,
    Non je cherche bien le lundi d'une semaine par rapport au n° de cette semaine.
    Cdt

  10. #10
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par porc-bouc Voir le message
    Bjr,
    Non je cherche bien le lundi d'une semaine par rapport au n° de cette semaine.
    Cdt

    Faudrait savoir !

    Cela implique donc que tu ne pars pas d'une date, mais d'un millésime et d'un numéro de semaine (et rien d'autre) et correspond à ta toute première formulation. ===>> Et la solution t'a été donnée plus haut, non ?

  11. #11
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Par défaut
    Bien sur c'est bien ce que je fais: le format date n'est la que pour recuperer l'annee et datdeb= format(annee & ",1,3","#####") c'est pareil que dateserial(annee,1,1) non ?

  12. #12
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Comme quoi, mon premier code, même s'il vient d'une lecture incomplète de la question, répondait bien au problème:
    Connaître le lundi précédent une date donnée.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. obtenir le premier lundi de la semaine dans une semaine donnée
    Par olivtone dans le forum Développement
    Réponses: 4
    Dernier message: 03/07/2015, 16h54
  2. Réponses: 1
    Dernier message: 06/11/2009, 13h52
  3. Réponses: 2
    Dernier message: 05/07/2006, 14h21
  4. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15

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