Est-ce possible ? J'ai 8 macros dans le classeur de macros personnel, et je
souhaiterais n'avoir qu'un seul bouton qui puisse m'ouvrir une boite de
dialogue qui me permettrai de voir ces 8 macros et pour enfin choisir celle
que je souhaiterais lancer mais avec une sécurité... du style que quand je
l'aurais choisis, un msgbox me demande si je souhaite poursuivre ou non.
Bonjour La combinaison des touches ALT et F8 fait très bien cela ....
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"news.orange.fr" a écrit dans le message de groupe de discussion : kt81p1$21n$
Bonjour,
Est-ce possible ? J'ai 8 macros dans le classeur de macros personnel, et je souhaiterais n'avoir qu'un seul bouton qui puisse m'ouvrir une boite de dialogue qui me permettrai de voir ces 8 macros et pour enfin choisir celle que je souhaiterais lancer mais avec une sécurité... du style que quand je l'aurais choisis, un msgbox me demande si je souhaite poursuivre ou non.
Merci
Manu
Bonjour
La combinaison des touches ALT et F8 fait très bien cela ....
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"news.orange.fr" a écrit dans le message de groupe de discussion :
kt81p1$21n$1@speranza.aioe.org...
Bonjour,
Est-ce possible ? J'ai 8 macros dans le classeur de macros personnel, et je
souhaiterais n'avoir qu'un seul bouton qui puisse m'ouvrir une boite de
dialogue qui me permettrai de voir ces 8 macros et pour enfin choisir celle
que je souhaiterais lancer mais avec une sécurité... du style que quand je
l'aurais choisis, un msgbox me demande si je souhaite poursuivre ou non.
Bonjour La combinaison des touches ALT et F8 fait très bien cela ....
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"news.orange.fr" a écrit dans le message de groupe de discussion : kt81p1$21n$
Bonjour,
Est-ce possible ? J'ai 8 macros dans le classeur de macros personnel, et je souhaiterais n'avoir qu'un seul bouton qui puisse m'ouvrir une boite de dialogue qui me permettrai de voir ces 8 macros et pour enfin choisir celle que je souhaiterais lancer mais avec une sécurité... du style que quand je l'aurais choisis, un msgbox me demande si je souhaite poursuivre ou non.
Merci
Manu
MichD
Bonjour,
Copie cette procédure dans un module dans un nouveau module standard de ton fichier de macros personnelles. Elle doit demeurer seule dans ce module. Nomme ce module "MichD" - propriété "Name" du module.
Les macros doivent être regroupées dans des modules standard de ton fichier de macros personnelles et non dans des modules feuilles.
Ne pas oublier d'ajouter la référence indiquée.
'------------------------------------------- Sub ListeMacrosModule()
'Il faut ajouter la référence : '"Microsoft Visual Basic For Application Extensibility 5.3" 'Dans la fenêtre de l'éditeur de code, 'Barre des menus / outils / référence et cocher 'la bibliothèque suggérée.
Dim Wbk As Workbook, Macro As String Dim VBCodeMod As Object, Comp As Object, C As Object Dim StartLine As Long, i As Long, X As Long, R As Variant
'Identifie le classeur source où sont les procédures Set Wbk = ThisWorkbook
On Error Resume Next
i = 1 'Boucle sur tous les modules du projet, incluant le formulaire. For Each C In Wbk.VBProject.VBComponents Set Comp = C Set VBCodeMod = Wbk.VBProject.VBComponents(C.Name).CodeModule
With VBCodeMod If .Name <> "MichD" Then StartLine = .CountOfDeclarationLines + 1 Do Until StartLine >= .CountOfLines X = X + 1 Message = Message & X & " - " & .ProcOfLine(StartLine, _ vbext_pk_Proc) & vbCrLf StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _ vbext_pk_Proc), vbext_pk_Proc)
StartLine = StartLine + 1 i = i + 1 Loop End If End With Next
R = Application.InputBox(Prompt:="Choisissez le numéro de la macro à exécuter." & _ vbCrLf & vbCrLf & Message, Title:="Choix de la macro", Type:=1)
Copie cette procédure dans un module dans un
nouveau module standard de ton fichier de macros
personnelles. Elle doit demeurer seule dans ce
module. Nomme ce module "MichD" - propriété "Name"
du module.
Les macros doivent être regroupées dans des modules standard
de ton fichier de macros personnelles et non dans des modules
feuilles.
Ne pas oublier d'ajouter la référence indiquée.
'-------------------------------------------
Sub ListeMacrosModule()
'Il faut ajouter la référence :
'"Microsoft Visual Basic For Application Extensibility 5.3"
'Dans la fenêtre de l'éditeur de code,
'Barre des menus / outils / référence et cocher
'la bibliothèque suggérée.
Dim Wbk As Workbook, Macro As String
Dim VBCodeMod As Object, Comp As Object, C As Object
Dim StartLine As Long, i As Long, X As Long, R As Variant
'Identifie le classeur source où sont les procédures
Set Wbk = ThisWorkbook
On Error Resume Next
i = 1
'Boucle sur tous les modules du projet, incluant le formulaire.
For Each C In Wbk.VBProject.VBComponents
Set Comp = C
Set VBCodeMod = Wbk.VBProject.VBComponents(C.Name).CodeModule
With VBCodeMod
If .Name <> "MichD" Then
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
X = X + 1
Message = Message & X & " - " & .ProcOfLine(StartLine, _
vbext_pk_Proc) & vbCrLf
StartLine = StartLine +
.ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
StartLine = StartLine + 1
i = i + 1
Loop
End If
End With
Next
R = Application.InputBox(Prompt:="Choisissez le numéro de la macro à
exécuter." & _
vbCrLf & vbCrLf & Message, Title:="Choix de la macro", Type:=1)
Copie cette procédure dans un module dans un nouveau module standard de ton fichier de macros personnelles. Elle doit demeurer seule dans ce module. Nomme ce module "MichD" - propriété "Name" du module.
Les macros doivent être regroupées dans des modules standard de ton fichier de macros personnelles et non dans des modules feuilles.
Ne pas oublier d'ajouter la référence indiquée.
'------------------------------------------- Sub ListeMacrosModule()
'Il faut ajouter la référence : '"Microsoft Visual Basic For Application Extensibility 5.3" 'Dans la fenêtre de l'éditeur de code, 'Barre des menus / outils / référence et cocher 'la bibliothèque suggérée.
Dim Wbk As Workbook, Macro As String Dim VBCodeMod As Object, Comp As Object, C As Object Dim StartLine As Long, i As Long, X As Long, R As Variant
'Identifie le classeur source où sont les procédures Set Wbk = ThisWorkbook
On Error Resume Next
i = 1 'Boucle sur tous les modules du projet, incluant le formulaire. For Each C In Wbk.VBProject.VBComponents Set Comp = C Set VBCodeMod = Wbk.VBProject.VBComponents(C.Name).CodeModule
With VBCodeMod If .Name <> "MichD" Then StartLine = .CountOfDeclarationLines + 1 Do Until StartLine >= .CountOfLines X = X + 1 Message = Message & X & " - " & .ProcOfLine(StartLine, _ vbext_pk_Proc) & vbCrLf StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _ vbext_pk_Proc), vbext_pk_Proc)
StartLine = StartLine + 1 i = i + 1 Loop End If End With Next
R = Application.InputBox(Prompt:="Choisissez le numéro de la macro à exécuter." & _ vbCrLf & vbCrLf & Message, Title:="Choix de la macro", Type:=1)
Vraiment étrange, sur ton fichier joint, c'est nickel, sur personnal, toujours rien (et ais refait la procedure) du coup, j'ai tenté sur un autre fichier : Module MichD, ton code Module1 : mes macros
Et là, il y a un semblant de début, car il me met une boite où je dois taper le N° de la macro et sans les voir dans la boite, contrairement à ton fichier où je viens bien toutes les macros. Et même si je tape un N° de macro, elle ne se lance pas.
Bizarre
Manu
"MichD" a écrit dans le message de news: kt8fmq$9uq$
Vraiment étrange, sur ton fichier joint, c'est nickel, sur personnal,
toujours rien (et ais refait la procedure) du coup, j'ai tenté sur un autre
fichier :
Module MichD, ton code
Module1 : mes macros
Et là, il y a un semblant de début, car il me met une boite où je dois taper
le N° de la macro et sans les voir dans la boite, contrairement à ton
fichier où je viens bien toutes les macros. Et même si je tape un N° de
macro, elle ne se lance pas.
Bizarre
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
kt8fmq$9uq$1@speranza.aioe.org...
Voici un fichier exemple : http://cjoint.com/?CGEpL7HTS0c
Appelle la macro : "ListeMacrosModule"
Tu inscris dans la boîte de message le numéro de la liste choisi.
Dans ton cas, toutes les macros sont dans le fichier de macros
personnelles
y compris la macro "ListeMacrosModule"
Vraiment étrange, sur ton fichier joint, c'est nickel, sur personnal, toujours rien (et ais refait la procedure) du coup, j'ai tenté sur un autre fichier : Module MichD, ton code Module1 : mes macros
Et là, il y a un semblant de début, car il me met une boite où je dois taper le N° de la macro et sans les voir dans la boite, contrairement à ton fichier où je viens bien toutes les macros. Et même si je tape un N° de macro, elle ne se lance pas.
Bizarre
Manu
"MichD" a écrit dans le message de news: kt8fmq$9uq$
Tu dois charger la référence dans le fichier où tu places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application Extensibility 5.3" dans la fenêtre de l'éditeur de code, barre des menus / outils / référence et cocher la bibliothèque suggérée.
Tu dois charger la référence dans le fichier où tu
places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application
Extensibility 5.3"
dans la fenêtre de l'éditeur de code, barre des menus / outils / référence
et cocher
la bibliothèque suggérée.
Tu dois charger la référence dans le fichier où tu places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application Extensibility 5.3" dans la fenêtre de l'éditeur de code, barre des menus / outils / référence et cocher la bibliothèque suggérée.
Je l'ai bien coché la référence, j'ai fait divers tests, mais rien de concluant, il n'y a que ton fichier qui fonctionne... Je ne pige vraiment pas Je suis sur la V2007, ca change quelque chose ?
Manu
"MichD" a écrit dans le message de groupe de discussion : kt8lai$qma$
Tu dois charger la référence dans le fichier où tu places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application Extensibility 5.3" dans la fenêtre de l'éditeur de code, barre des menus / outils / référence et cocher la bibliothèque suggérée.
Je l'ai bien coché la référence, j'ai fait divers tests, mais rien de
concluant, il n'y a que ton fichier qui fonctionne... Je ne pige vraiment
pas
Je suis sur la V2007, ca change quelque chose ?
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de groupe de
discussion : kt8lai$qma$1@speranza.aioe.org...
Tu dois charger la référence dans le fichier où tu
places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application
Extensibility 5.3"
dans la fenêtre de l'éditeur de code, barre des menus / outils / référence
et cocher
la bibliothèque suggérée.
Je l'ai bien coché la référence, j'ai fait divers tests, mais rien de concluant, il n'y a que ton fichier qui fonctionne... Je ne pige vraiment pas Je suis sur la V2007, ca change quelque chose ?
Manu
"MichD" a écrit dans le message de groupe de discussion : kt8lai$qma$
Tu dois charger la référence dans le fichier où tu places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application Extensibility 5.3" dans la fenêtre de l'éditeur de code, barre des menus / outils / référence et cocher la bibliothèque suggérée.
Mais j'ai tout de même un doute, j'avais coché cette case lorsque j'étais dans le fichier personal, puis j'ai constaté qu'elle étais toujours coché même si j'étais dans un autre fichier, est-ce normal ? Ce qui me fais douter, c'est ta phrase : "dans la fenêtre de l'éditeur de code" Moi, j'ai l'impression que cette case coché est pour tout le VBA, je me trompe ? Et je ne comprend pas ce que veux dire : " la bibliothèque suggérée"...
Manu
"MichD" a écrit dans le message de groupe de discussion : kt8lai$qma$
Tu dois charger la référence dans le fichier où tu places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application Extensibility 5.3" dans la fenêtre de l'éditeur de code, barre des menus / outils / référence et cocher la bibliothèque suggérée.
Mais j'ai tout de même un doute, j'avais coché cette case lorsque j'étais
dans le fichier personal, puis j'ai constaté qu'elle étais toujours coché
même si j'étais dans un autre fichier, est-ce normal ? Ce qui me fais
douter, c'est ta phrase : "dans la fenêtre de l'éditeur de code"
Moi, j'ai l'impression que cette case coché est pour tout le VBA, je me
trompe ? Et je ne comprend pas ce que veux dire : " la bibliothèque
suggérée"...
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de groupe de
discussion : kt8lai$qma$1@speranza.aioe.org...
Tu dois charger la référence dans le fichier où tu
places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application
Extensibility 5.3"
dans la fenêtre de l'éditeur de code, barre des menus / outils / référence
et cocher
la bibliothèque suggérée.
Mais j'ai tout de même un doute, j'avais coché cette case lorsque j'étais dans le fichier personal, puis j'ai constaté qu'elle étais toujours coché même si j'étais dans un autre fichier, est-ce normal ? Ce qui me fais douter, c'est ta phrase : "dans la fenêtre de l'éditeur de code" Moi, j'ai l'impression que cette case coché est pour tout le VBA, je me trompe ? Et je ne comprend pas ce que veux dire : " la bibliothèque suggérée"...
Manu
"MichD" a écrit dans le message de groupe de discussion : kt8lai$qma$
Tu dois charger la référence dans le fichier où tu places ces macros :
Il faut ajouter la référence : '"Microsoft Visual Basic For Application Extensibility 5.3" dans la fenêtre de l'éditeur de code, barre des menus / outils / référence et cocher la bibliothèque suggérée.