Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Bonjour,
Ca fonctionne pour moi. Est-ce que tu as défini la fonction GrégorienToHégire ? Et si oui poste le code.
Daniel
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
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
Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
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.
Bonjour,
Ca fonctionne pour moi. Est-ce que tu as défini la fonction GrégorienToHégire ? Et si oui poste le code.
Daniel
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
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
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
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