Les mémos

Fermer Tables

Fermer Requêtes

Fermer Formulaires

Fermer Etats

Fermer Modules

Fermer Base

Fermer Automation

Fermer Administration

Fermer Registre

Fermer String

Fermer Email CDO

Fermer Outlook

Fermer Net

Fermer Dates - Heures

Fermer Fichiers

Fermer Références

Fermer Vrac

Je débute...

Fermer La normalisation

Fermer VBA

Attention
Aucun support
par émail !

Utilisez le forum pour les questions/réponses concernant MsAccess et les codes que vous trouverez sur ce site.
Visites

   visiteurs

   visiteurs en ligne

Dates - Heures - Numéro de semaine

Calcul du numéro de Semaine / Année de référence

 

Cette fonction permet :

  • de tenir compte du bug de la dll Oleaut32.dll qui retourne parfois semaine 53 au lieu de 1
  • d'éviter de cumuler les données de deux semaines 1 en début et en fin d'une même année

 

Function fnWeek(MyDate As Date) As String
'**
'** Placez cette fonction dans un module général
'** Usage : dans un textebox
'** = fnWeek([champdate])

    Dim NoSemaine As Integer
    Dim NoAnnee As Integer
    If Not IsDate(MyDate) Then
        fnWeek = ""
    Else
        NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
            If NoSemaine = 53 Then
            '
            ' Correction Bug Oleaut32.dll (29/12/2003 par exemple)
            ' 
            If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
                NoSemaine = 1
            End If
        End If
   
        Select Case NoSemaine
        'Affecter la semaine 1 de fin d'année au début de l'année suivante
        Case 1
            If Month(MyDate) = 12 Then
                NoAnnee = Year(MyDate) + 1
            Else
                NoAnnee = Year(MyDate)
            End If
        Case Is < 52
            NoAnnee = Year(MyDate)
        'Affecter la semaine 52 ou 53 de début d'année à la fin d'année précédente
        Case Is >= 52
            If Month(MyDate) = 1 Then
                NoAnnee = Year(MyDate) - 1
            Else
                NoAnnee = Year(MyDate)
            End If
        End Select
       
        fnWeek = NoAnnee & "/" & Format(NoSemaine, "00")
   End If

End Function

 


Date de création : 25/10/2005 : 04:23
Dernière modification : 05/03/2006 : 22:21
Catégorie : Dates - Heures
Page lue 8644 fois


Imprimer l'article Imprimer l'article

Recherche



Lettre d'information
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha
Recopier le code :
Au sujet de l'auteur
L'auteur qui fréquente (fréquentait) le forum microsoft.public.fr.access a eu le plaisir d'être nommé MVP Office-Access de janvier 2003 à décembre 2011.

Qui sont les MVP ?

Divers ;-)
Nous contacter

Haut