Fonction personnalisée NbJoursChomes sous Excel2007
#1
Débutant XLPages

Inscription: 19/05/2010

Messages: 1

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 25-05-2010 15h42
Bonjour, Tout d'abord merci pour ce site formidable...
Je me permet de vous solliciter au sujet d'un post de 2008 concernant la fonction NbJoursChomes qui permet de calculer, comme sont nom l'indique, le nombre de jour chomés entre deux dates. J'ai réccupéré le code VBA qui était indiqué et cela fonctionne très bien sous Excel 2003. entre temps je viens de migrer vers Excel 2007. Et là pas moyen de faire fonctionner ce code. J'avais créé un .xla et la fonction apparaissait bien dans la liste des fonctions personnalisées mais sous 2007, elle n'apparaît plus et n'est ni reconnue. J'ai bien tenté de faire un .xlam mais sans résultat. Connaîtriez vous un moyen pour faire fonctionner cette fonction sous Excel 2007.
D'avance merci

Jean-Philippe

Ci joint le code en question :
Option Explicit

Function NbJoursChomes(D1 As Date, D2 As Date) As Long
'myDearFriend! - www.mdf-xlpages.com
Dim DF As New Collection
Dim D As Date
Dim NbJO As Long
Dim An As Integer
Dim Ok As Boolean
    On Error Resume Next
    For An = Year(D1) To Year(D2)
        D = DimPaques(An)
        DF.Add DateSerial(An, 1, 1), CStr(DateSerial(An, 1, 1))     'Jour de l'An
        DF.Add D + 1, CStr(D + 1)                                   'Lundi de Pâques
        DF.Add DateSerial(An, 5, 1), CStr(DateSerial(An, 5, 1))     'Fête du Travail
        DF.Add DateSerial(An, 5, 8), CStr(DateSerial(An, 5, 8))     'Armistice 1945
        DF.Add D + 39, CStr(D + 39)                                 'Jeudi Ascension
        DF.Add D + 50, CStr(D + 50)                                 'Lundi de Pentecôte
        DF.Add DateSerial(An, 7, 14), CStr(DateSerial(An, 7, 14))   'Fête Nationale
        DF.Add DateSerial(An, 8, 15), CStr(DateSerial(An, 8, 15))   'Assomption
        DF.Add DateSerial(An, 11, 1), CStr(DateSerial(An, 11, 1))   'Toussaint
        DF.Add DateSerial(An, 11, 11), CStr(DateSerial(An, 11, 11)) 'Armistice 1918
        DF.Add DateSerial(An, 12, 25), CStr(DateSerial(An, 12, 25)) 'Noël
    Next An
    D = D1
    Do
        If Weekday(D, vbMonday) < 6 Then
            Ok = DF(CStr(D)) <> ""
            If Ok Then
                NbJO = NbJO + 1
                Ok = False
            End If
        Else
            NbJO = NbJO + 1
        End If
        D = D + 1
    Loop Until D > D2
    NbJoursChomes = NbJO
End Function

Private Function DimPaques(ByVal Annee As Integer) As Date
'myDearFriend! - www.mdf-xlpages.com
'(Calcul du dimanche de Pâques d'après un algorithme de Thomas O'Beirne)
Dim n As Integer, c As Integer, a As Byte, b As Byte
    n = Annee - 1900
    a = n Mod 19
    b = (11 * a + 4 - ((a * 7 + 1) \ 19)) Mod 29
    c = 25 - b - ((n - b + 31 + (n \ 4)) Mod 7)
    DimPaques = DateAdd("d", c, DateSerial(Annee, 3, 31))
End Function


Edité par myDearFriend! le 25/05/2010 21:19:14
Hors Ligne
Rapport   Haut 

Re: Fonction personnalisée NbJoursChomes sous Excel2007
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 25-05-2010 21h41
Bonsoir Jeanphi68 et bienvenue sur XLpages.com
Bonsoir le Forum,

Je viens de vérifier et n'arrive pas à reproduire ton problème. Chez moi, même sous forme XLA, ça fonctionne toujours sous XL2007.

Cela dit, comme précisé dans la FAQ : Installer/Désinstaller un complément ou macro complémentaire, vérifie d'abord que tu as bien appliqué les conseils dispensés dans le paragraphe intitulé "Préalable à l'installation d'un complément", conseils relatifs aux paramètres de confidentialité liés aux compléments, à savoir sous XL2007 :

- Cliquer sur le bouton Office :
- Puis, en bas, sur le bouton :
- Dans le volet de gauche, cliquer sur :
- Puis, à droite sur le bouton :
- Et choisir le bouton :

- .. et dans la partie droite de cette fenêtre, vérifier qu'aucune option ne soit cochée.



J'espère que c'est la bonne piste à suivre dans ton cas.

Par ailleurs, STP, merci de ne pas faire de copier coller dans tes posts depuis un autre éditeur (Word ou autre éditeur spécialisé). Pour obtenir du code VBA formaté avec coloration syntaxique, ici, il convient simplement d'utiliser le bouton prévu à cet effet :



J'ai rectifié ton post pour réintégrer les bonnes balises de code.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes