Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupération du numéro de la semaine à partir d'une date

9 réponses
Avatar
word
Bonjour

Sur un planning r=E9alis=E9 dans tableau Word 2003, je dois r=E9cup=E9rer =
le
num=E9ro de la semaine correspondant =E0 une date affich=E9e. Dans Excel la
fonction NO.SEMAINE fonctionne tr=E8s bien, mais =E0 priori elle ne
fonctionne pas dans Word m=EAme lorsqu'on ins=E8re une formule.
Quelqu'un aurait-il une solution ? merci par avance de votre aide

9 réponses

Avatar
michdenis
Bonjour,

Dans un module standard de ton fichier Word,
copie cette fonction personnalisée.

'-----------------------------------
Function NoSem(x As Date)
If IsDate(x) Then
NoSem = DatePart("ww", CDate(x), vbSunday)
Else
NoSem = "format date non reconnue"
End If
End Function
'-----------------------------------




"word" a écrit dans le message de groupe de discussion :

Bonjour

Sur un planning réalisé dans tableau Word 2003, je dois récupérer le
numéro de la semaine correspondant à une date affichée. Dans Excel la
fonction NO.SEMAINE fonctionne très bien, mais à priori elle ne
fonctionne pas dans Word même lorsqu'on insère une formule.
Quelqu'un aurait-il une solution ? merci par avance de votre aide
Avatar
michdenis
Pour les européens, il y a cette fonction :
'---------------------------------------
Function NoSemEu(D As Date)
If IsDate(D) Then
NOS = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
NoSemEu = ((D - NOS - 3 + (Weekday(NOS) + 1) Mod 7)) 7 + 1
Else
NoSemEu = "format date non reconnue"
End If
End Function
'---------------------------------------
Avatar
Jacques93
Bonjour,
Le 25/01/2010 13:19, michdenis a écrit :
Bonjour,

Dans un module standard de ton fichier Word,
copie cette fonction personnalisée.

'-----------------------------------
Function NoSem(x As Date)
If IsDate(x) Then
NoSem = DatePart("ww", CDate(x), vbSunday)
Else
NoSem = "format date non reconnue"
End If
End Function
'-----------------------------------




Si la question concerne la France, il vaut mieux utiliser les paramètres :

NoSem = DatePart("ww", CDate(x), vbUseSystemDayOfWeek, vbFirstFourDays)

ou vbUseSystemDayOFWeek = vbMonday.

La période du vendredi 01/01/2010 au dimanche 03/01/2010 correspond à la
semaine 53 de 2009.

La première semaine de 2010 commençant le lundi 04/01/2010.

--

Cordialement,

Jacques.
Avatar
word
On 25 jan, 15:01, Jacques93 wrote:
Bonjour,
Le 25/01/2010 13:19, michdenis a crit :

> Bonjour,

> Dans un module standard de ton fichier Word,
> copie cette fonction personnalis e.

> '-----------------------------------
> Function NoSem(x As Date)
> If IsDate(x) Then
>      NoSem = DatePart("ww", CDate(x), vbSunday)
> Else
>      NoSem = "format date non reconnue"
> End If
> End Function
> '-----------------------------------

Si la question concerne la France, il vaut mieux utiliser les param tres :

   NoSem = DatePart("ww", CDate(x), vbUseSystemDayOfWeek, vbFirstFo urDays)

ou vbUseSystemDayOFWeek = vbMonday.

La p riode du vendredi 01/01/2010 au dimanche 03/01/2010 correspond la
semaine 53 de 2009.

La premi re semaine de 2010 commen ant le lundi 04/01/2010.

--

Cordialement,

Jacques.



Merci pour vos réponses
Pourriez-vous si vous avez le temps m'indiquer comment créer un module
standard puis comment utiliser la formule ?
je vous en remercie par avance
j'ai essayé de copier-coller dans une macro mais je ne sais pas si
c'est un module standared, puis j'ai créé la formule Nosem,Word
m'affiche un message d'erreur.
Merci de votre aide
cordialement

Brigitte
Avatar
michdenis
Je ne connais pas les possibilités de Word lorsqu'il s'agit
d'inclure dans un texte l'usage d'une fonction personnalisée.
Laissons aux spécialistes de Word, la chance de s'exprimer.

Je t'ai fait un petit exemple là : http://cjoint.com/?bzwTW0Ql2B
Avatar
Jacques93
Le 25/01/2010 20:09, word a écrit :


Merci pour vos réponses
Pourriez-vous si vous avez le temps m'indiquer comment créer un module
standard puis comment utiliser la formule ?
je vous en remercie par avance
j'ai essayé de copier-coller dans une macro mais je ne sais pas si
c'est un module standared, puis j'ai créé la formule Nosem,Word
m'affiche un message d'erreur.
Merci de votre aide
cordialement

Brigitte



Avec un tableau sous Word 2003, en imaginant que ton tableau ressemble à
quelque chose comme :

-----------------------------------
Date Jour N° semaine
-----------------------------------
01/01/2010
01/02/2010
01/03/2010
01/04/2010
01/05/2010
01/06/2010
01/07/2010
01/08/2010
01/09/2010
01/10/2010
01/11/2010
01/12/2010
-----------------------------------

tu peux utiliser les collections 'Tables' et 'Cells', ce qui évite
d'utiliser les champs (que je ne maitrise pas vraiment, je ne sais pas
si c'est possible avec eux).

Pour accéder à l'éditeur VBA sous 2003 :

Alt-F11

puis, tu double-click sur 'ThisDocument' dans la fenêtre en haut à
gauche ('Project')

Dans la partie droite, tu colles :

' -----------------------------------------------------------
Option Explicit

Private Function NoSem(dt As String) As String
If IsDate(dt) Then
NoSem = DatePart("ww", CDate(dt), vbUseSystemDayOfWeek,
vbFirstFourDays)
Else
NoSem = "format date non reconnue"
End If
End Function

Private Function NomJour(dt As String) As String
If IsDate(dt) Then
NomJour = WeekdayName(Weekday(CDate(dt), vbUseSystemDayOfWeek))
Else
NomJour = "format date non reconnue"
End If
End Function


Private Sub Document_Open()
Dim maTable As Table
Dim maDate As Cell
Dim maSem As Cell
Dim monJour As Cell
Dim i As Integer

Set maTable = ActiveDocument.Tables(1) ' à adapter
For i = 2 To maTable.Rows.Count
Set maDate = maTable.Columns(1).Cells(i)
Set monJour = maTable.Columns(2).Cells(i)
Set maSem = maTable.Columns(3).Cells(i)
monJour.Range.Text = NomJour(Left(maDate.Range.Text,
Len(maDate.Range.Text) - 1))
maSem.Range.Text = NoSem(Left(maDate.Range.Text,
Len(maDate.Range.Text) - 1))
Next i
End Sub

' Range.Text ajoute un caractère chr$(7) à la fin du texte.
' J'en ignore la raison.
--------------------------------------------------------------

Les cellules seront mise à jour à chaque ouverture du document.
Cela fonctionne aussi sous 2007 (Éventuellement activer le menu
'Developpeur' dans les options standard)

--

Cordialement,

Jacques.
Avatar
heureux-oli
Salut,

Peut-être simplement un format sur une date.

Format(Now(), "ww")

Malheureusement, je n'ai pas trouvé la possibilité de mettre un champ en
forme.

--
--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/
http://marie-lebeau.heaj.be/


"word" a écrit dans le message de news:

Bonjour

Sur un planning réalisé dans tableau Word 2003, je dois récupérer le
numéro de la semaine correspondant à une date affichée. Dans Excel la
fonction NO.SEMAINE fonctionne très bien, mais à priori elle ne
fonctionne pas dans Word même lorsqu'on insère une formule.
Quelqu'un aurait-il une solution ? merci par avance de votre aide
Avatar
michdenis
Quelques instants pour lire ceci :

http://support.microsoft.com/kb/200299/fr



"heureux-oli" a écrit dans le message de groupe de
discussion :
Salut,

Peut-être simplement un format sur une date.

Format(Now(), "ww")

Malheureusement, je n'ai pas trouvé la possibilité de mettre un champ en
forme.

--
--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.
http://heureuxoli.developpez.com/
http://word.developpez.com/
http://marie-lebeau.heaj.be/


"word" a écrit dans le message de news:

Bonjour

Sur un planning réalisé dans tableau Word 2003, je dois récupérer le
numéro de la semaine correspondant à une date affichée. Dans Excel la
fonction NO.SEMAINE fonctionne très bien, mais à priori elle ne
fonctionne pas dans Word même lorsqu'on insère une formule.
Quelqu'un aurait-il une solution ? merci par avance de votre aide
Avatar
word
On 27 jan, 00:35, "michdenis" wrote:
Quelques instants pour lire ceci :

http://support.microsoft.com/kb/200299/fr

"heureux-oli" a écrit dans le message de groupe de
discussion :
Salut,

Peut-être simplement un format sur une date.

Format(Now(), "ww")

Malheureusement, je n'ai pas trouvé la possibilité de mettre un champ en
forme.

--
--
Heureux-oli
Si rien n'est mentionné pour le code, c'est que j'en suis l'auteur.http ://heureuxoli.developpez.com/http://word.developpez.com/http://marie-lebeau .heaj.be/

"word" a écrit dans le message de news:

Bonjour

Sur un planning réalisé dans tableau Word 2003,  je dois récupé rer le
numéro de la semaine correspondant à une date affichée. Dans Excel la
fonction NO.SEMAINE fonctionne très bien, mais à priori elle ne
fonctionne pas dans Word même lorsqu'on insère une formule.
Quelqu'un aurait-il une solution ? merci par avance de votre aide



Merci à tous pour vos réponses
je vais de ce pas essayer