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

Excel Discussion :

Nbre de semaine dans une année


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut Nbre de semaine dans une année
    bonjour !!
    j'édit mon sujet car j'ai pas très bien tourné mon problème.
    je fais un logiciel qui simule pour chaque semaine d'une année des graphique "aire 2D", les graphiques durent 1ans.pas 2fois la même semaine.je dois simulé le passage les semaines intermédiaires si la semaine saisie est supérieur à la dernière des données du graphique.


    pour calculé les points intermédiaires lors d'un changement d'année.
    il me faut savoir combien de semaine dans une année.

    j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dim ma date as string
    Cint(Format(ma_date, "ww", vbMonday, vbFirstFourDays))
    cela fonctionne mais quand ma date =31/12/2008 le résultat de cette ligne est 1.pourquoi?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cint(Format(31/12/2008, "ww", vbMonday, vbFirstFourDays)) =1
    sa marche pour 2007
    et 2006

    je répète que la fonction NO.SEMAINE(x;y) n'a pas l'aire d'exister pas dans la liste fonction en mettant "tous"

    est ce vrai que la fonction fourni par excel NO.SEMAINE fonctionne mal dans certain caS?


    en faite désolé de ne pas avoir compris plus tôt random.

    qu'elle est la solution pour trouver le nombre de semaine dans une année?en utilisant un autre moyen que la référence du numéro de semaine du 31 décembre de l'année voulu?

    merci vous avez des idées?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    En A1 : 31/12/2008
    En B1 : =NO.SEMAINE(A1) renvoie 53
    En C1 : =NO.SEMAINE("31/12/2008") renvoie aussi 53

    Je ne vois pas où est ton problème.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Il existe une norme afnor sur les calendriers.
    En France la semaine commence un lundi.
    La semaine 1 d’une année est la première contenant quatre jours, ou dit autrement la première semaine contenant un jeudi.
    L’application de cette règle conduit parfois à une semaine 53
    Le premier janvier 2009 tombe un jeudi donc du 29 décembre 2008 au 4 janvier 2009 nous sommes en semaine 1 de 2009

    La fonction no.semaine en fonction des paramètres systèmes peut retourner un numéro différent chez toi elle semble ok

    On peut utiliser d’autres règles internationales en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function nose(x As Variant) As Variant
    If IsDate(x) Then
    ' à la norme française 
    nose = CByte(Format(x, "ww", vbMonday, vbFirstFourDays))
    Else
    nose = Null
    End If
    End Function
    Et en remplaçant vbmonday( valeur 2) par un autre paramètre régional
    Et vbfirstfourday(valeur 2) par la valeur idoine.

    L’aide de la fonction format pourrait t’être utile.
    Elle est pas belle la vie ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut fonction NO_SEMAINE
    je pige pas la fonction s'appelle comment en vb sa me donne un
    mais sous une feuille pas moyen de trouver la fonction et d'avoir un résultat je l'ai fait hier aujourdhui je trouve pas:

    excel 2000




    sinon le code vb
    de la macro excel que j'avais enregistré


    HAAAA je sais pourquoi j'avais essayé sur les versions > 2003

    donc code obligatoire

    comment faire sur excel 2000



    dans le cadre de mon algo
    je viens de le faire avec la fonction du dessus gentillement proposé
    et regardé magie =1 pour 31/12/2008 et pour 31/12/2007 =53
    pour les années en dessous sa marche on dirait!!


    alors??? svp c'est intéressant!!enfin surement un bug mais comment le contourné?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut svp
    pouvez me donnez votre avis?


    cordialement
    -------------------------
    kickoune

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonsoir...

    Il aurait été intéressant que ta copie d'écran ait été réalisée avec la cellule B1 active, puisque c'est elle qui pose problème...

    Il y a presque certainement une faute de frappe à la saisie de la formule.

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    la fonction n'existe pas sur excel 2000

    ai-je tords en cherchant sur le net il y a écrit 2000, en tous cas elle n'est pas dans la liste des fonctions.
    -de plus la fonction avec laquel on voit que sa merde est équivalente à nO.SEMAINE

    je viens d'essayé chez moi sur 2007

    sa fait un si on ne met pas guillemet autour de la date en utilisant NO.SEMAINE.....

    mais je préferé utilisé un code vba car la fontion NO.SEMAINE merde dans certain cas cité sur le net....non??
    j'essayeré sur 2000

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    La fonction NOSE n'est pas une fonction intégrée à Excel, mais est une fonction personnelle qui doit être disponible pour le classeur qui l'utilise. Or, elle l'est, au vu de l'illustration que tu nous donnes, en tout cas en BA. Elle est donc également disponible pour la cellule B1. Donc, c'est qu'il y a probablement une erreur de frappe, et la version d'Excel n'est pas responsable du problème que tu soulèves...

    Ou alors, soit je n'ai pas compris le problème, soit tu l'as mal exprimé...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut mais ....
    N0.SEMAINE n'est pas sur 2000........relis les phrases sinon on se comprendra pas ^^titre du deuxième sujet
    je sais bien que nose n'existe pas c'est bien écrit au dessus que je parle de NO.SEMAINE est pas de nose ^^ je suis pas autant débutant quand meme me sous estime pas autant ^^.

    c'est quoi les inconvénients de NO.SEMAINE est pour la XXX fois
    existe-il la fonction NO.SEMAINE sur excel 2000.?marche t-elle tout le temps..

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Ne sois pas si susceptible...

    Il n'est pas toujours évident de comprendre un problème, même si je dois reconnaître que je n'avais pas tout lu...

    Mais comme tu n'es pas débutant (là, je me venge un peu... ), tu dois savoir qu'il y a une touche d'aide (tu sais, F1 ...) et si tu questionnes l'aide d'Excel, tu pourras lire que lorsque l'on a le problème #NOM? avec NO.SEMAINE, il faut vérifier que la macro complémentaire "Utilitaire d'analyse" est cochée...

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Pierre Fauconnier
    Bonsoir...

    Il aurait été intéressant que ta copie d'écran ait été réalisée avec la cellule B1 active, puisque c'est elle qui pose problème...

    Il y a presque certainement une faute de frappe à la saisie de la formule.

    Ok?
    pour répondre a cette réponse

    ben dans la cellule il y a écrit

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Pierre Fauconnier
    Ne sois pas si susceptible...

    Il n'est pas toujours évident de comprendre un problème, même si je dois reconnaître que je n'avais pas tout lu...

    Mais comme tu n'es pas débutant (là, je me venge un peu... ), tu dois savoir qu'il y a une touche d'aide (tu sais, F1 ...) et si tu questionnes l'aide d'Excel, tu pourras lire que lorsque l'on a le problème #NOM? avec NO.SEMAINE, il faut vérifier que la macro complémentaire "Utilitaire d'analyse" est cochée...

    Ok?
    merci pour ta réponse je regarderé
    je m'excuse un peu pour mon comportement.j'ai refait mon topic.
    je suis toujours préssé.

    tu peux me dire si c'est vrai que la fonction num.Semaine ne fonctionne pas de temps à autre?stp

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par kickoune
    merci pour ta réponse je regarderé
    je m'excuse un peu pour mon comportement.j'ai refait mon topic.
    je suis toujours préssé.
    Pas de problème
    Citation Envoyé par kickoune
    tu peux me dire si c'est vrai que la fonction num.Semaine ne fonctionne pas de temps à autre?stp
    Si la macro complémentaire est cochée, elle fonctionne tout le temps...

    Bonne continuation
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut Nbre de semaine dans une année
    comment trouver le nombre semaine dans une année vu que la méthode en prenant le numéro de semaine du 31 décembre ne fonctionne pas .


    il faut enléver quelque jour si on trouve la première semaine de la nouvelle année?

  15. #15
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour à tous

    S tu n'as pas acces a : NO.SEMAINE, essaye cela

    =ENT((B1-DATE(ANNEE(B1);1;1))/7)+1 ---> N° de semaine de la date

    =ENT((DATE(annee(B1);12;31)-DATE(ANNEE(B1);1;1))/7)+1 ---> N° de semaine Maxi de l'année

    Bonne journée ensoleillée
    Wilfried

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut re
    salut!!
    j'ai essayé ta solution elle trouve toujours le même résultat =53


    hors defois c'est 52 si je ne me trompes pas?
    il y a 52 ou 53 semaines

  17. #17
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    Le 1er janvier 2007 etant un lundi cela fausse legerement les tests

    si c'est un mercredi, la 1ere semaine sera comptabilise à partir du 5 janvier donc 52 semaines



    Voici une formule complementaire en 2007 ca me donne 53 et en 2006 ca me donne 52

    mais je ne suis pas tres sur pour toute les annees
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ENT((DATE(ANNEE(B1);12;31)-DATE(ANNEE(B1);1;1))/7)+(1 * (JOURSEM(DATE(ANNEE(B1);1;1);2)<=MOD(DATE(ANNEE(B1);12;31)-DATE(ANNEE(B1);1;1)+1;7)))
    bonne journée
    Wilfried

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    merci pour ta solution mais elle trouve toujours 53


    merci quand même

  19. #19
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    je te joins le fichier, ou il calcule bien 52
    Wilfried

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    excel fait que merdé il aime pas que je copie ta formule et que je la colle et que je change la cellule ou il y a la date...



    j'ai écrit un truk bète...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function FinSemAnnee(x As Variant) As Variant
    If IsDate(x) Then
    ' à la norme française
    If (CByte(Format("31/12/" & Year(variables.DerniereDate), "ww", vbMonday, vbFirstFourDays)) = 1) Then
    Do Until CByte(Format("31/12/" & Year(variables.DerniereDate), "ww", vbMonday, vbFirstFourDays)) > 50
    x = x - 1
    Loop
     
     
    End If
    FinSemAnnee = CByte(Format("31/12/" & Year(variables.DerniereDate), "ww", vbMonday, vbFirstFourDays))
    Else: FinSemAnnee = Null
    End If
    End Function

    defois il stop la la function au x=x-1 pourquoi alors qu'il le comprend bien avec une cellule ...
    merci à tous

    vu que sa marche pas bien j'essaye avec la tienne je suis en train de le traduire en VBA.

    si tu veux bien m'aider, car la finalité il me faut du vba..
    j'ai traduit le code je regarde pour toutes les années et je poste
    sinon pourquoi mon code a moi ne marche pas
    il bloque sur x=x-1 et la macro s'arrète

    des idées svp c'est bientot finit

    merci a toi wil

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/11/2014, 18h05
  2. Réponses: 2
    Dernier message: 16/11/2007, 16h30
  3. nombre de semaine dans l'année
    Par bnreb10 dans le forum Collection et Stream
    Réponses: 18
    Dernier message: 26/09/2006, 11h43
  4. Trouver le nbre de lettre dans une chaine
    Par martin199 dans le forum C++
    Réponses: 10
    Dernier message: 06/09/2006, 01h31
  5. Nbre de caractères dans une chaine
    Par Thepince dans le forum Access
    Réponses: 2
    Dernier message: 10/08/2006, 14h34

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