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

Le
word
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21044941
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"
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
michdenis
Le #21045551
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
'---------------------------------------
Jacques93
Le #21045541
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.
word
Le #21048351
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
michdenis
Le #21049761
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
Jacques93
Le #21052761
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.
heureux-oli
Le #21058001
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"
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
michdenis
Le #21058381
Quelques instants pour lire ceci :

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



"heureux-oli" 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"
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
word
Le #21105331
On 27 jan, 00:35, "michdenis"
Quelques instants pour lire ceci :

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

"heureux-oli" 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"
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
Publicité
Poster une réponse
Anonyme