xll et macro complémentaire

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4564121
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"
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
MichDenis
Le #4564111
Fichier exemple de Laurent Longre
http://cjoint.com/?gcqu4d6ChD



"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"
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
tissot.emmanuel
Le #4563521
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"
Fichier exemple de Laurent Longre
http://cjoint.com/?gcqu4d6ChD



"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"
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





jlo
Le #4915411
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"
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"
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






tissot.emmanuel
Le #4915331
Bonjour,

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

Cordialement,

Manu/

"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"
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"
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








Publicité
Poster une réponse
Anonyme