Erreur 1004 "La méthode 'MacroOptions ' de l'objet '_Application' a échoué

Anonyme
2023-02-03T08:40:34+00:00

Version Microsoft Office Pro 2021

A l'exécution de Application.MacroOptions il se produit l'erreur 1004 "La méthode 'MacroOptions ' de l'objet '_Application' a échoué ... comment résoudre cette erreur ?

Private Sub DescriptionFonction()

' Procédure d'insertion d'une fonction personnelle dans le bandeau de fonctions Excel

Dim NomFonction As String 

Dim DescriptionFonction As String 

Dim CategorieFonction As String 

Dim ArgDesc(1 To 2) As String 

NomFonction = "GrégorienToHégire" 

DescriptionFonction = "calcul la conversion d'une date du calendrier Grégorien en une date du calendrier musulman et retourne en de la valeur du paramètre" 

CategorieFonction = 2 

ArgDesc(1) = "Date calendrier grégorien " 

ArgDesc(2) = "La valeur du paramètre peut être 1 = Jour Hégire, " '2 = mois Hégire, 3 = année Hégire, 4 = la date Hégire en texte au format 'JJ/MM/AAAA', 5 = la date Hégire en texte au format arabe " 

Application.MacroOptions  Macro:=NomFonction,  Description:=DescriptionFonction, Category:=CategorieFonction,  ArgumentDescriptions:=ArgDesc 

End Sub

Microsoft 365 et Office | Excel | Autres | Autres

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
DanielCo 107.7K Points de réputation
2023-02-03T09:47:16+00:00

Bonjour,

Ca fonctionne pour moi. Est-ce que tu as défini la fonction GrégorienToHégire ? Et si oui poste le code.

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

5 réponses supplémentaires

  1. DanielCo 107.7K Points de réputation
    2023-02-04T08:33:18+00:00

    Bonjour,

    Essaie de créer un nouveau classeur avec le code de la macro "DescriptionFonction" dans la Workbook_Open, en ajoutant :

    ThisWorkbook.Close False

    à la fin.

    La fonction, elle reste dans le personal.xlsb.

    Place ensuite le classeur dans le dossier XLSTART

    Il s'exécutera donc automatiquement au démarrage d'Excel sans être masqué.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2023-02-03T17:04:18+00:00

    Oui. L'instruction "MacroOptions" se peut s'exécuter que lorsque le classeur est affiché, c'est à dire ni dans le personal.xlsb ni dans une macro complémentaire.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2023-02-03T16:51:59+00:00

    ma version est Microsoft Office Pro 2021

    en plaçant ceci dans mon module de macros personnelles, je n'obtient que l'erreur 1004 au moment de l'exécution de la dernière ligne de la 2ème procédure

    Option Explicit

    Function GrégorienToHégire(dd As Date, parm As Integer) As Variant

    Dim hjour(7), hmonth(12) As String ' tableaux de jours de semaine et des mois en phonétique Arabe

                                                            '(je cherche toujours a l'afficher en alphabet arabe, mais ça ne marche pas)
    

    hjour(1) = "aliathnayn" 'lundi

    hjour(2) = "althulatha'" 'mardi

    hjour(3) = "al'arbiea'" 'mercredi

    hjour(4) = "alkhamis" 'jeudi

    hjour(5) = "aljumuea" 'vendredi

    hjour(6) = "alsabt" 'samedi

    hjour(7) = "al'ahad" 'dimanche

    hmonth(1) = "Muharram" 'janvier

    hmonth(2) = "Safar" 'février

    hmonth(3) = "Rabi’ Al-awwal" 'mars

    hmonth(4) = "Rabi’ Al-thani" 'avril

    hmonth(5) = "Jumada al-ula" 'mai

    hmonth(6) = "Jumada al-thania" 'juin

    hmonth(7) = "Rajab" 'juillet

    hmonth(8) = "Sha’aban" 'août

    hmonth(9) = "Ramadan" 'septembre

    hmonth(10) = "Shawwal" 'octobre

    hmonth(11) = "Dhu al-Qi’dah" 'novembre

    hmonth(12) = "Dhu al-Hijjah" 'décembre

    Calendar = vbCalHijri ' passage au calendrier Hijri

    GrégorienToHégire = Str(Day(dd)) & " " & hjour((Weekday(dd))) & " " & hmonth(Month(dd)) & " " & Year(dd)

    If parm = 1 Then GrégorienToHégire = Day(dd)

    If parm = 2 Then GrégorienToHégire = Month(dd)

    If parm = 3 Then GrégorienToHégire = Year(dd)

    If parm = 4 Then GrégorienToHégire = "" & Day(dd) & "/" & Month(dd) & "/" & (Year(dd))

    If parm = 5 Then GrégorienToHégire = hjour(Weekday(dd)) & " " & Str(Day(dd)) & " " & hmonth(Month(dd)) & " " & Year(dd)

    Calendar = vbCalGreg ' repassage au calendrier Grégorien en fin de function

    End Function

    Sub DescriptionFonction()

    ' Procédure d'insertion d'une fonction personnelle dans le bandeau de fonctions Excel

    Dim NomFonction As Stringé

    Dim DescriptionFonction As String

    Dim CategorieFonction As String

    Dim ArgDesc(1 To 2) As String

    NomFonction = "GrégorienToHégire"

    DescriptionFonction = "calcul la conversion d'une date du calendrier Grégorien en une date du calendrier musulman et retourne en de la valeur du paramètre"

    CategorieFonction = 2

    ArgDesc(1) = "Date calendrier grégorien "

    ArgDesc(2) = "La valeur du paramètre peut être 1 = Jour Hégire, " '2 = mois Hégire, 3 = année Hégire, 4 = la date Hégire en texte au format 'JJ/MM/AAAA', 5 = la date Hégire en texte au format arabe "

    Application.MacroOptions Macro:=NomFonction, Description:=DescriptionFonction, Category:=CategorieFonction, ArgumentDescriptions:=ArgDesc

    End Sub

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2023-02-03T10:31:00+00:00

    En déplaçant le code de la fonction et le sub DescriptionFonction dans une autre feuille tout fonctionne parfatement

    merci Daniel pour ton indication en m'indiquant que ça fonctionnait pour toi ça m'a incité à vérifier la macro autre part que dans la feuille de macro personnelles

    Reste à savoir pourquoi cela ne fonctionne pas dans le module Personal.xlsb

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire