Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

xll et macro complémentaire

5 réponses
Avatar
jlo
Bonjour
Je vous contacte car j'ai crée un fichier .xla de macro complémentaire et je
retrouve toutes mes fonctions mélangées à d'autres dans la catégorie
"Personalisée" de coller une fonction. Comment est-ce que je peux avoir mes
fonctions regroupées dans une "catégorie" que j'aurai défini? Faut-il que je
passe par la création d'un fichier xll?
merci

5 réponses

Avatar
MichDenis
Lorsque l'on clique sur le bouton "fx" de la barre de formule
dans la fenêtre qui s'ouvre, si on sélectionne la catégorie
personnalisée, ce sont tous les fonctions des macros
complémentaires chargés par la commande "outils /
Macros complémentaires / qui apparaissent, sauf ceux
de Microsoft qui ont déjà été réparties dans les catégories
appropriées + les fonctions personnalisées définies dans un
module standard du classeur.

Voici une manière d'ajouter une catégorie et ses fonctions.
Elle est de Laurent Longre... je crois.

à placer dans le ThisWorkbook de ton classeur.

Private Const NomCat As String = "MA_CATEGORIE"

Option Base 1

Private Sub Workbook_Open()

'Application.AskToUpdateLinks = False
Dim I As Integer, LCat As Integer
Dim Cat As String
Dim NomFct, DescFct
Dim Addin As Boolean, FMasquée As Boolean

On Error GoTo Fin
Application.EnableCancelKey = xlErrorHandler

NomFct = Array("Ma_Fonction1", "Ma_Fonction2", "Ma_Fonction3")
DescFct = Array("DESCRIPTION FONCTION 1", _
"DESCRIPTION FONCTION 2"," DESCRIPTION FONCTION 3",)

Addin = Me.IsAddin
If Addin Then
Application.ScreenUpdating = False
Me.IsAddin = False
End If
FMasquée = Not Me.Windows(1).Visible
If FMasquée Then
Application.ScreenUpdating = False
Me.Windows(1).Visible = True
End If

LCat = 14
Do
LCat = LCat + 1
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,," & LCat & ")"
Cat = Names("Djzh" & LCat).Category
Loop While Cat <> "User Defined" And Cat <> NomCat

If Cat = "User Defined" Then _
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,,""" & NomCat & """)"

For I = 1 To UBound(NomFct)
Application.MacroOptions Macro:=NomFct(I), _
Description:ÞscFct(I), Category:=LCat
Next I

For I = 15 To LCat
Application.ExecuteExcel4Macro "DELETE.NAME(""Djzh" & I & """)"
Next I

Fin:
If Addin Then Me.IsAddin = True
If FMasquée Then Me.Windows(1).Visible = False
ThisWorkbook.Saved = True

End Sub






"jlo" a écrit dans le message de news:

Bonjour
Je vous contacte car j'ai crée un fichier .xla de macro complémentaire et je
retrouve toutes mes fonctions mélangées à d'autres dans la catégorie
"Personalisée" de coller une fonction. Comment est-ce que je peux avoir mes
fonctions regroupées dans une "catégorie" que j'aurai défini? Faut-il que je
passe par la création d'un fichier xll?
merci
Avatar
MichDenis
Fichier exemple de Laurent Longre
http://cjoint.com/?gcqu4d6ChD



"MichDenis" a écrit dans le message de news:

Lorsque l'on clique sur le bouton "fx" de la barre de formule
dans la fenêtre qui s'ouvre, si on sélectionne la catégorie
personnalisée, ce sont tous les fonctions des macros
complémentaires chargés par la commande "outils /
Macros complémentaires / qui apparaissent, sauf ceux
de Microsoft qui ont déjà été réparties dans les catégories
appropriées + les fonctions personnalisées définies dans un
module standard du classeur.

Voici une manière d'ajouter une catégorie et ses fonctions.
Elle est de Laurent Longre... je crois.

à placer dans le ThisWorkbook de ton classeur.

Private Const NomCat As String = "MA_CATEGORIE"

Option Base 1

Private Sub Workbook_Open()

'Application.AskToUpdateLinks = False
Dim I As Integer, LCat As Integer
Dim Cat As String
Dim NomFct, DescFct
Dim Addin As Boolean, FMasquée As Boolean

On Error GoTo Fin
Application.EnableCancelKey = xlErrorHandler

NomFct = Array("Ma_Fonction1", "Ma_Fonction2", "Ma_Fonction3")
DescFct = Array("DESCRIPTION FONCTION 1", _
"DESCRIPTION FONCTION 2"," DESCRIPTION FONCTION 3",)

Addin = Me.IsAddin
If Addin Then
Application.ScreenUpdating = False
Me.IsAddin = False
End If
FMasquée = Not Me.Windows(1).Visible
If FMasquée Then
Application.ScreenUpdating = False
Me.Windows(1).Visible = True
End If

LCat = 14
Do
LCat = LCat + 1
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,," & LCat & ")"
Cat = Names("Djzh" & LCat).Category
Loop While Cat <> "User Defined" And Cat <> NomCat

If Cat = "User Defined" Then _
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,,""" & NomCat & """)"

For I = 1 To UBound(NomFct)
Application.MacroOptions Macro:=NomFct(I), _
Description:ÞscFct(I), Category:=LCat
Next I

For I = 15 To LCat
Application.ExecuteExcel4Macro "DELETE.NAME(""Djzh" & I & """)"
Next I

Fin:
If Addin Then Me.IsAddin = True
If FMasquée Then Me.Windows(1).Visible = False
ThisWorkbook.Saved = True

End Sub






"jlo" a écrit dans le message de news:

Bonjour
Je vous contacte car j'ai crée un fichier .xla de macro complémentaire et je
retrouve toutes mes fonctions mélangées à d'autres dans la catégorie
"Personalisée" de coller une fonction. Comment est-ce que je peux avoir mes
fonctions regroupées dans une "catégorie" que j'aurai défini? Faut-il que je
passe par la création d'un fichier xll?
merci
Avatar
tissot.emmanuel
Bonjour,

Sub NouvelleCategorie()
Application.MacroOptions Macro:="MaFonction", Category:="Mes fonctions"
End Sub

Me semble un peu plus simple pour creer la categorie "Mes fonctions" et y
inclure la fonction "MaFonction".

Cordialement,

Manu/

"MichDenis" a écrit dans le message de news:

Fichier exemple de Laurent Longre
http://cjoint.com/?gcqu4d6ChD



"MichDenis" a écrit dans le message de news:

Lorsque l'on clique sur le bouton "fx" de la barre de formule
dans la fenêtre qui s'ouvre, si on sélectionne la catégorie
personnalisée, ce sont tous les fonctions des macros
complémentaires chargés par la commande "outils /
Macros complémentaires / qui apparaissent, sauf ceux
de Microsoft qui ont déjà été réparties dans les catégories
appropriées + les fonctions personnalisées définies dans un
module standard du classeur.

Voici une manière d'ajouter une catégorie et ses fonctions.
Elle est de Laurent Longre... je crois.

à placer dans le ThisWorkbook de ton classeur.

Private Const NomCat As String = "MA_CATEGORIE"

Option Base 1

Private Sub Workbook_Open()

'Application.AskToUpdateLinks = False
Dim I As Integer, LCat As Integer
Dim Cat As String
Dim NomFct, DescFct
Dim Addin As Boolean, FMasquée As Boolean

On Error GoTo Fin
Application.EnableCancelKey = xlErrorHandler

NomFct = Array("Ma_Fonction1", "Ma_Fonction2", "Ma_Fonction3")
DescFct = Array("DESCRIPTION FONCTION 1", _
"DESCRIPTION FONCTION 2"," DESCRIPTION FONCTION 3",)

Addin = Me.IsAddin
If Addin Then
Application.ScreenUpdating = False
Me.IsAddin = False
End If
FMasquée = Not Me.Windows(1).Visible
If FMasquée Then
Application.ScreenUpdating = False
Me.Windows(1).Visible = True
End If

LCat = 14
Do
LCat = LCat + 1
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,," & LCat & ")"
Cat = Names("Djzh" & LCat).Category
Loop While Cat <> "User Defined" And Cat <> NomCat

If Cat = "User Defined" Then _
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,,""" & NomCat & """)"

For I = 1 To UBound(NomFct)
Application.MacroOptions Macro:=NomFct(I), _
Description:ÞscFct(I), Category:=LCat
Next I

For I = 15 To LCat
Application.ExecuteExcel4Macro "DELETE.NAME(""Djzh" & I & """)"
Next I

Fin:
If Addin Then Me.IsAddin = True
If FMasquée Then Me.Windows(1).Visible = False
ThisWorkbook.Saved = True

End Sub






"jlo" a écrit dans le message de news:

Bonjour
Je vous contacte car j'ai crée un fichier .xla de macro complémentaire et
je
retrouve toutes mes fonctions mélangées à d'autres dans la catégorie
"Personalisée" de coller une fonction. Comment est-ce que je peux avoir
mes
fonctions regroupées dans une "catégorie" que j'aurai défini? Faut-il que
je
passe par la création d'un fichier xll?
merci





Avatar
jlo
Bonjour

Merci pour la réponse. j'ai essayé c'est parfait dans dans un fichier .xls
mais par contre si je le fais dans un fichier .xla, lorsque je sélectionne ma
macro complémentaire, au chargement je retrouve mes macros dans une catégorie
que j'ai défini mais par contre EXCEL m'a convertit le fichier .xla en .xls
avec l'extension .xla et lorsque je quitte EXCEL sans avoir modifié mon .xla
il me demande de le sauvegarder mais comme si c'était un Workbook ????. Je
veux faire ça dans un .xla car j'ai des fonctions avec base de temps et elles
n'ont pas le même comportement dans un xls et xla (Pourquoi ????). Je ne
désèspère pas mais si vous avez un idée je suis preneur . merci


Fichier exemple de Laurent Longre
http://cjoint.com/?gcqu4d6ChD



"MichDenis" a écrit dans le message de news:

Lorsque l'on clique sur le bouton "fx" de la barre de formule
dans la fenêtre qui s'ouvre, si on sélectionne la catégorie
personnalisée, ce sont tous les fonctions des macros
complémentaires chargés par la commande "outils /
Macros complémentaires / qui apparaissent, sauf ceux
de Microsoft qui ont déjà été réparties dans les catégories
appropriées + les fonctions personnalisées définies dans un
module standard du classeur.

Voici une manière d'ajouter une catégorie et ses fonctions.
Elle est de Laurent Longre... je crois.

à placer dans le ThisWorkbook de ton classeur.

Private Const NomCat As String = "MA_CATEGORIE"

Option Base 1

Private Sub Workbook_Open()

'Application.AskToUpdateLinks = False
Dim I As Integer, LCat As Integer
Dim Cat As String
Dim NomFct, DescFct
Dim Addin As Boolean, FMasquée As Boolean

On Error GoTo Fin
Application.EnableCancelKey = xlErrorHandler

NomFct = Array("Ma_Fonction1", "Ma_Fonction2", "Ma_Fonction3")
DescFct = Array("DESCRIPTION FONCTION 1", _
"DESCRIPTION FONCTION 2"," DESCRIPTION FONCTION 3",)

Addin = Me.IsAddin
If Addin Then
Application.ScreenUpdating = False
Me.IsAddin = False
End If
FMasquée = Not Me.Windows(1).Visible
If FMasquée Then
Application.ScreenUpdating = False
Me.Windows(1).Visible = True
End If

LCat = 14
Do
LCat = LCat + 1
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,," & LCat & ")"
Cat = Names("Djzh" & LCat).Category
Loop While Cat <> "User Defined" And Cat <> NomCat

If Cat = "User Defined" Then _
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,,""" & NomCat & """)"

For I = 1 To UBound(NomFct)
Application.MacroOptions Macro:=NomFct(I), _
Description:ÞscFct(I), Category:=LCat
Next I

For I = 15 To LCat
Application.ExecuteExcel4Macro "DELETE.NAME(""Djzh" & I & """)"
Next I

Fin:
If Addin Then Me.IsAddin = True
If FMasquée Then Me.Windows(1).Visible = False
ThisWorkbook.Saved = True

End Sub






"jlo" a écrit dans le message de news:

Bonjour
Je vous contacte car j'ai crée un fichier .xla de macro complémentaire et je
retrouve toutes mes fonctions mélangées à d'autres dans la catégorie
"Personalisée" de coller une fonction. Comment est-ce que je peux avoir mes
fonctions regroupées dans une "catégorie" que j'aurai défini? Faut-il que je
passe par la création d'un fichier xll?
merci






Avatar
tissot.emmanuel
Bonjour,

Est ce que la propriété IsAddin de ton fichier est bien égale à True?

Cordialement,

Manu/

"jlo" a écrit dans le message de news:

Bonjour

Merci pour la réponse. j'ai essayé c'est parfait dans dans un fichier .xls
mais par contre si je le fais dans un fichier .xla, lorsque je sélectionne
ma
macro complémentaire, au chargement je retrouve mes macros dans une
catégorie
que j'ai défini mais par contre EXCEL m'a convertit le fichier .xla en
.xls
avec l'extension .xla et lorsque je quitte EXCEL sans avoir modifié mon
.xla
il me demande de le sauvegarder mais comme si c'était un Workbook ????. Je
veux faire ça dans un .xla car j'ai des fonctions avec base de temps et
elles
n'ont pas le même comportement dans un xls et xla (Pourquoi ????). Je ne
désèspère pas mais si vous avez un idée je suis preneur . merci


Fichier exemple de Laurent Longre
http://cjoint.com/?gcqu4d6ChD



"MichDenis" a écrit dans le message de news:

Lorsque l'on clique sur le bouton "fx" de la barre de formule
dans la fenêtre qui s'ouvre, si on sélectionne la catégorie
personnalisée, ce sont tous les fonctions des macros
complémentaires chargés par la commande "outils /
Macros complémentaires / qui apparaissent, sauf ceux
de Microsoft qui ont déjà été réparties dans les catégories
appropriées + les fonctions personnalisées définies dans un
module standard du classeur.

Voici une manière d'ajouter une catégorie et ses fonctions.
Elle est de Laurent Longre... je crois.

à placer dans le ThisWorkbook de ton classeur.

Private Const NomCat As String = "MA_CATEGORIE"

Option Base 1

Private Sub Workbook_Open()

'Application.AskToUpdateLinks = False
Dim I As Integer, LCat As Integer
Dim Cat As String
Dim NomFct, DescFct
Dim Addin As Boolean, FMasquée As Boolean

On Error GoTo Fin
Application.EnableCancelKey = xlErrorHandler

NomFct = Array("Ma_Fonction1", "Ma_Fonction2", "Ma_Fonction3")
DescFct = Array("DESCRIPTION FONCTION 1", _
"DESCRIPTION FONCTION 2"," DESCRIPTION FONCTION 3",)

Addin = Me.IsAddin
If Addin Then
Application.ScreenUpdating = False
Me.IsAddin = False
End If
FMasquée = Not Me.Windows(1).Visible
If FMasquée Then
Application.ScreenUpdating = False
Me.Windows(1).Visible = True
End If

LCat = 14
Do
LCat = LCat + 1
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,," & LCat & ")"
Cat = Names("Djzh" & LCat).Category
Loop While Cat <> "User Defined" And Cat <> NomCat

If Cat = "User Defined" Then _
Application.ExecuteExcel4Macro _
"DEFINE.NAME(""Djzh" & LCat & """,0,2,,,""" & NomCat & """)"

For I = 1 To UBound(NomFct)
Application.MacroOptions Macro:=NomFct(I), _
Description:ÞscFct(I), Category:=LCat
Next I

For I = 15 To LCat
Application.ExecuteExcel4Macro "DELETE.NAME(""Djzh" & I & """)"
Next I

Fin:
If Addin Then Me.IsAddin = True
If FMasquée Then Me.Windows(1).Visible = False
ThisWorkbook.Saved = True

End Sub






"jlo" a écrit dans le message de news:

Bonjour
Je vous contacte car j'ai crée un fichier .xla de macro complémentaire et
je
retrouve toutes mes fonctions mélangées à d'autres dans la catégorie
"Personalisée" de coller une fonction. Comment est-ce que je peux avoir
mes
fonctions regroupées dans une "catégorie" que j'aurai défini? Faut-il que
je
passe par la création d'un fichier xll?
merci