fonction No.semaine indique #NOM? même si j'installe macro compl é

Le
Phi
Je n'arrive pas à obtenir cette fonction de calcul.
Des macro complémentaires sont déjà installées notamment;
"analysis toolpak" et "analysis toolpak-VBA"
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 #18804461
Une date valide en C1, le 1 -> semaine débutant le dimanche
2 -> si tu veux une semaine débutant le Lundi
=NO.SEMAINE(C1;1)

En VBA
x = Application.WeekNum(Date,1)



"Phi"
Je n'arrive pas à obtenir cette fonction de calcul.
Des macro complémentaires sont déjà installées notamment;
"analysis toolpak" et "analysis toolpak-VBA"
Daniel.C
Le #18804971
Bonjour.
Tu as la version anglaise de ces utilitaires; essaie : WEEKDAY
Cordialement.
Daniel

Je n'arrive pas à obtenir cette fonction de calcul.
Des macro complémentaires sont déjà installées notamment;
"analysis toolpak" et "analysis toolpak-VBA"


Daniel.C
Le #18804961
Ou plutôt, comme l'écrit Denis : WEEKNUM

Je n'arrive pas à obtenir cette fonction de calcul.
Des macro complémentaires sont déjà installées notamment;
"analysis toolpak" et "analysis toolpak-VBA"


Trèfle
Le #18807221
Bonjour Phi,

Sauf erreur de ma part,
sous 2000 et 2003, si l'utilitaire d'analyse n'était pas coché avant
l'ouverture d'Excel (ou activé avant de solliciter la fonction ...), la
fonction NO.SEMAINE n'est pas disponible ... Il faut la rendre disponible
par Outil/Macro Complémentaire -> et sélectionner "Utilitaire d'analyse"
Par contre sous Excel 2007, elle est disponible sans activation de macro
complémentaire ! C'est le progrès ...

Trèfle

"Phi"
Je n'arrive pas à obtenir cette fonction de calcul.
Des macro complémentaires sont déjà installées notamment;
"analysis toolpak" et "analysis toolpak-VBA"


Laurent
Le #18810031
Bonjour,
Plus besoin de la cocher mais à ne plus utiliser avec des versions
antérieurs à Office 2007.
Si vous ouvrez un document utilisant cette fonction avec Office 2003, puis
rouvrir ensuite avec Office 2007, on peut avoir #NOM?, il faut revalider la
fonction à la main. Ou recréer la fonction en macro (il y des exemples sur le
newsgroup)


Laurent

"Trèfle" a écrit :

Bonjour Phi,

Sauf erreur de ma part,
sous 2000 et 2003, si l'utilitaire d'analyse n'était pas coché avant
l'ouverture d'Excel (ou activé avant de solliciter la fonction ...), la
fonction NO.SEMAINE n'est pas disponible ... Il faut la rendre disponible
par Outil/Macro Complémentaire -> et sélectionner "Utilitaire d'analyse"
Par contre sous Excel 2007, elle est disponible sans activation de macro
complémentaire ! C'est le progrès ...

Trèfle

"Phi"
> Je n'arrive pas à obtenir cette fonction de calcul.
> Des macro complémentaires sont déjà installées notamment;
> "analysis toolpak" et "analysis toolpak-VBA"





Michel Angelosanto
Le #18815051
Voici plusieurs formules de calcul:
La date est en A1
=NO.SEMAINE(A1;1) pour 2007 'pour Excel 97 cocher la macro complémentaire
"analysis toolpak"
=ENT((A1-SOMME(MOD(DATE(ANNEE(A1-MOD(A1-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)
on peut également utiliser cette formule (sauf en calendrier 1904)
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))+1
La fonction no.semaine renvoie le numéro de semaine selon la norme US,
pour obtenir le numéro de semaine ISO (utilisé en Europe) :
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28 ))+1
ou alors par VBA :
Function NumSemISO(XDATE As Date) As Integer
NumSemISO = ((Int(XDATE) - DateSerial(Year(Int(XDATE) + (8 -
Weekday(Int(XDATE))) _
Mod 7 - 3), 1, 1) - 3 + (Weekday(DateSerial(Year(Int(XDATE) + _
(8 - Weekday(Int(XDATE))) Mod 7 - 3), 1, 1)) + 1) Mod 7)) 7 + 1
End Function

ou
Dim c As Range
For Each c In Range([D1], [D65000].End(xlUp))
c.Offset(, 2) = Application.WeekNum(c)
Next c

ou
Public Function NoSem(UneDate As Date) As Integer
On Error Resume Next
NoSem = CInt(Format(UneDate, "ww", vbMonday, vbFirstFourDays))
End Function
Par formule , avec la date en A1:
'version français
="semaine: "&ENT((A1-(DATE(ANNEE(A1-JOURSEM(A1-1)+4);1;3)-
JOURSEM(DATE(ANNEE(A1-JOURSEM(A1-1)+4);1;3)))+5)/7)
'version anglais:
=INT((A1-(DATE(YEAR(A1-WEEKDAY(A1-1)+4),1,3)-WEEKDAY(DATE(YEAR(A1-WEEKDAY(A1
-1)+4),1,3)))+5)/7)
Par VBA:
Function ISOWeekNum(d1 As Date) As Integer
Dim d2 As Long
d2 = DateSerial(Year(d1 - WeekDay(d1 - 1) + 4), 1, 3)
ISOWeekNum = Int((d1 - d2 + WeekDay(d2) + 5) / 7)
End Function
Exemple: La date est saisie dans textbox1, on affiche la semaine dans label1
et la date complète dans label2
Private Sub textbox1_change()
Dim unedate As Date
On Error Resume Next
unedate = TextBox1.Text
If TextBox1.TextLength = 8 Then
Label2.Caption = unedate
NoSem = ISOWeekNum(unedate)
Label1.Caption = NoSem
End If
End Sub

Avec la fonction VBA de Laurent Longre
(http://xcell05.free.fr/pages/form/dateheure.htm#Numsemaine) :

Sub test()
MsgBox NOSEM(#2/22/2009#)
End Sub

Function NOSEM(D As Date) As Long
D = Int(D)
NOSEM = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
NOSEM = ((D - NOSEM - 3 + (Weekday(NOSEM) + 1) Mod 7)) 7 + 1
End Function

ou la fonction version Excel (du même auteur) :
=ENT((A1-SOMME(MOD(DATE(ANNEE(A1-MOD(A1-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)

Function ISOWeekNum(d1 As Date) As Integer
Dim d2 As Long
d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
ISOWeekNum = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function

En VBA
x = Application.WeekNum(Date,1)

--
Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8
Daniel.C
Le #18816081
> Bonjour,
Plus besoin de la cocher



Bonjour.
... pour les fonctions, mais l'analysis toolpack a bien d'autres
usages. Coche-le et regarde, dans l'onglet "Données", rubrique
"Analyse",le bouton "Utilitaire d'analyse".
Cordialement.
Daniel
Publicité
Poster une réponse
Anonyme