fonction No.semaine indique #NOM? même si j'installe macro compl é
7 réponses
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"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
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" a écrit dans le message de groupe de discussion :
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"
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" <Phi@discussions.microsoft.com> a écrit dans le message de groupe de discussion :
D4149F82-794C-4AA3-9A9F-8073EE523306@microsoft.com...
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"
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" a écrit dans le message de groupe de discussion :
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
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"
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"
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
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"
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"
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
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" a écrit dans le message de news:
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"
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" <Phi@discussions.microsoft.com> a écrit dans le message de news:
D4149F82-794C-4AA3-9A9F-8073EE523306@microsoft.com...
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"
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" a écrit dans le message de news:
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
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" a écrit dans le message de news:
> 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"
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" <Phi@discussions.microsoft.com> a écrit dans le message de news:
D4149F82-794C-4AA3-9A9F-8073EE523306@microsoft.com...
> 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"
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" a écrit dans le message de news:
> 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
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
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
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
> 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
> 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
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