NUMERO SEMAINE VB

[Fermé]
Signaler
-
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
-
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

12 réponses

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 177
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+
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
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 177
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.
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
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 177
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

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
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à
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 177
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+
ok merci pour tes conseils :)
parcontre comment fait on pour " indenté"
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 177
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+
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 177
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 ?