NUMERO SEMAINE VB

noobduvb -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour !!!!!!!!!!!!!!!!!!!!!!!

voilà je travail sur un petit bou de programme pour connaitre mon numéro de semaine à l'aide d'une date
j'ai fait quelque recherche, jai vu que je n'étais pas le seul a me pencher sur le problème!
mais un doute me viens ! suite a plusieur algo proposer par d'autre utilisateur

éclairé moi !!!!! :p

ma question est donc : faut t'il ou pas prendre en compte la semaine 53

par exemple le 29/12/2003 fait partie de la semaine 52 , 53 ou de l 1er semaine de 2004
Configuration: Windows XP
Firefox 1.5.0.1

12 réponses

  1. noobduvb
     
    bonsoir lermite222,

    non il est vrai que pour l'instant je n'ais pas besoin de met jours ouvrés ( lundi à vendredi) et pas ouvrables ( lundi à samedi)
    car au début je voulais faire mon calendrier par jours et donc mes jours ouvrés!
    car aprés avoir créer mon calendrier je voudrais distribuer des charges que jai calculer par jours

    n'ésité pas à demander si vous trouver pas mon explication trés claire

    merciiii
    1
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Il n'y a que 52 semaines dans une année.
    Pour éviter la semaine 53, normalement ont ne commence à compté les semaines que si le 1er lundi est < que le 4ém jour.
    Et au bout ont met une condition Si >52 then WE = 52.
    A+
    0
  3. noobduvb
     
    je mexplique un peu mieu !

    je voudrais avoir un calendrier semaine ( excel) qui commence selon la semaine actuelle qui s'etalle sur 3-4 années

    ex nous somme le 28 mai soit semaine 22 je voudrais que la semaine prochaine avoir la semaine 23 ( j'ai besoin que des jours ouvrés, donc je pense qu'il faut que je jou avec les vendredi de chaque semaine )

    2008 2009 ect
    ________________________________________________________________
    S22 | S23 | S24 | S25 ect.....S52. S1 | S2 | ect

    et avoir la semaine prochaine avoir

    2008 2009 ect
    ________________________________________________________________
    S23 | S24 | S25 | S26 ect.....S52. S1 | S2 | ect

    :)

    merci a l'avance pour tout
    0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Behhhh alors.. juste faire une boucle qui tourne sur tes cellules et qui inscrive S22 : S23 : S24 etc jusque 52 et tu recommence à 1 pour les années suivantes.. je vois pas où est le problème.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. noobduvb
     
    Re tout le monde xD

    bah voila ce que j'ai fait :

    '**
    'Création du calendrier
    '**
    '
    Windows("MAMACRO.xls").Activate
    Worksheets("Feuil1").Activate

    dt = Format(Date, "dd - mm - yyyy")' je prend en référence ma date d'aujourdhui
    semaineactuelle = Format(dt - 2, "ww", vbSaturday)'je calcule dans quelle semaine nous nous trouvons
    Worksheets("Feuil1").Cells(7, 36).Value = semaineactuelle ' je commence mon calendrier à la semaine actuelle
    Cells(7, 36).Interior.ColorIndex = 8

    For J = 37 To 200
    semaineactuelle = semaineactuelle + 1 ' a chaque changement de collone je change de semaine
    Worksheets("Charges techniciens").Cells(7, J).Value = semaineactuelle
    Cells(7, J).Interior.ColorIndex = 8

    If Worksheets("Charges techniciens").Cells(7, J).Value > "52" Then
    semaineactuelle = 1
    Worksheets("Charges techniciens").Cells(7, J).Value = semaineactuelle
    Cells(7, J).Interior.ColorIndex = 4

    End If
    Next

    mais j'ai un petit probleme je voudrais qu'a chaque changement d'année ( >52 semaine ) changé ma couleur des cellule pour différencier mes années et repartir de 1 jusqu'a 52 !
    ce qu'i n'est pas le cas dans ma boucle
    je commence bien à la semaine 22 jusqu'à 52 pui aprés jai des des semaine de 5 et mon changemen de couleur de se fait que sur la semaine 1

    pouvais vous m'éclairé
    merci merci
    0
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Mettre ta couleur en variable...
    Dim Coul as integer
    Coul=4

    ....
    ....
    If Worksheets("Charges techniciens").Cells(7, J).Value > "52" Then
    semaineactuelle = 1
    coul = coul + 1 'ou faire un select case pour avoir d'autre couleurs
    Worksheets("Charges techniciens").Cells(7, J).Value = semaineactuelle
    Cells(7, J).Interior.ColorIndex = coul

    End If

    0
  8. noobduvb
     
    merci lermite222,

    a vrai dire la couleur n'est pas importante !
    ma 1er année se passe bien
    mais celles qui suivent sont des année de 5 semaine ....

    encore meci
    0
  9. noobduvb
     
    j'ai trouvé le probleme était le 52 entre ""

    voilà mon code
    '**
    'Création du calendrier
    '**
    '
    Windows("MAMACRO.xls").Activate
    Worksheets("Feuil1").Activate

    Dim coul As Integer
    coul = 6

    semaineactuelle = TrouverNuméroSemaine(dt)'je fait appel à une fonction et "dt" est ma date du jour
    Worksheets("Feuil1").Cells(7, 36).Value = semaineactuelle
    Cells(7, 36).Interior.ColorIndex = coul

    For J = 37 To 200 'j'ai pri 200 car je voulais m'étallé sur au moins 2-3ans
    semaineactuelle = semaineactuelle + 1
    Worksheets("Feuil1").Cells(7, J).Value = semaineactuelle
    Cells(7, J).Interior.ColorIndex = coul

    If Worksheets("Feuil1").Cells(7, J).Value > 52 Then
    semaineactuelle = 1
    coul = coul + 1
    Worksheets("Feuil1").Cells(7, J).Value = semaineactuelle
    Cells(7, J).Interior.ColorIndex = coul

    End If
    Next

    n'ésité pas à critiqué mon code ! je pense qu'il a moyen de l'amélioré! voilà
    0
  10. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Le code est bien fait.
    2 petite remarques
    Indenté ton code le rend plus compréhensible, aussi bien pour la lecture que pour un éventuel déboggage.
    Sub TaMacro()
    Dim coul As Integer
    
    
        Windows("MAMACRO.xls").Activate
        Worksheets("Feuil1").Activate
        
        coul = 6
    
        'je fait appel à une fonction et "dt" est ma date du jour
        semaineactuelle = TrouverNuméroSemaine(dt)
        Worksheets("Feuil1").Cells(7, 36).Value = semaineactuelle
        Cells(7, 36).Interior.ColorIndex = coul
        
        'j'ai pri 200 car je voulais m'étallé sur au moins 2-3ans
        For j = 37 To 200
            semaineactuelle = semaineactuelle + 1
            Worksheets("Feuil1").Cells(7, j).Value = semaineactuelle
            Cells(7, j).Interior.ColorIndex = coul
        
            If Worksheets("Feuil1").Cells(7, j).Value > 52 Then
                semaineactuelle = 1
                coul = coul + 1
                Worksheets("Feuil1").Cells(7, j).Value = semaineactuelle
                Cells(7, j).Interior.ColorIndex = coul
            End If
        Next j
    
    End Sub

    Sur les Next, bien que ce ne soit pas obligatoire, ajouter l'identifiant du For, sa simplifie quand
    il y a plusieur For/Next imbriqué.
    Bonne continuation.
    A+
    0
  11. noobduvb
     
    ok merci pour tes conseils :)
    parcontre comment fait on pour " indenté"
    0
  12. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    dans l'éditeur de code d'excell tu emploi les tabulations.
    Et dans l'éditeur texte de CCM tu sélectionne la partie code et tu clic sur le bouton 'Conserver la mise en forme' le bouton blanc dans la barre d'outils juste au dessus de l'éditeur.
    A+
    0
  13. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Dans l'exemple que tu donne ou intervienent les jours ouvrables ? je comprend pas bien.
    Parce que pour les semaines y à que de les inscrire ?
    -1