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

Exécution macro

14 réponses
Avatar
jenesaispaspourquoi
Bonjour,

Je suis en recherche d'une astuce concernant l’exécution des macros, à savoir:
Existe-t-il une macro qui n'exécuterait pas macro1 si macro2 non exécutable ?

Merci pour vos réponses.

Cordialement

10 réponses

1 2
Avatar
DanielCo
Bonjour,
Qu'est-ce que tu entends par "macro non exécutable" ?
Cordialement.
Daniel


Bonjour,

Je suis en recherche d'une astuce concernant l’exécution des macros, à
savoir: Existe-t-il une macro qui n'exécuterait pas macro1 si macro2 non
exécutable ?

Merci pour vos réponses.

Cordialement
Avatar
jenesaispaspourquoi
Le mercredi 05 Novembre 2014 à 17:19 par jenesaispaspourquoi :
Bonjour,

Je suis en recherche d'une astuce concernant l’exécution des
macros, à savoir:
Existe-t-il une macro qui n'exécuterait pas macro1 si macro2 non
exécutable ?

Merci pour vos réponses.

Cordialement


Bonjour DanielCo,

Par macro non exécutable, j'entends macro mise en commentaires.
Est-ce possible ?

Cordialement
Avatar
DanielCo
Le mercredi 05 Novembre 2014 à 17:19 par jenesaispaspourquoi :
Bonjour,

Je suis en recherche d'une astuce concernant l’exécution des
macros, à savoir:
Existe-t-il une macro qui n'exécuterait pas macro1 si macro2 non
exécutable ?

Merci pour vos réponses.

Cordialement


Bonjour DanielCo,

Par macro non exécutable, j'entends macro mise en commentaires.
Est-ce possible ?

Cordialement



J'ai trouvé ce code pour tester l'existence d'une macro (désolé, les
commentaires sont en anglais :

'================================================================================ '- CHECK IF A MODULE & SUBROUTINE EXISTS
'- VBA constant : vbext_pk_Proc = All procedures other than property
procedures.
'- An error is generated if the Module or Sub() does not exist - so we
trap them.
'---------------------------------------------------------------------------------
'- VB Editor : Tools/References - add reference TO ......
'- .... "Microsoft Visual Basic For Applications Extensibility"
'----------------------------------------------------------------------------------
'- Brian Baulsom October 2007
'================================================================================= Sub MacroExists()
Dim MyModule As Object
Dim MyModuleName As String
Dim MySub As String
Dim MyLine As Long

'---------------------------------------------------------------------------
'- test data
MyModuleName = "TestModule"
MySub = "Number2"

'----------------------------------------------------------------------------
On Error Resume Next
'- MODULE
Set MyModule =
ActiveWorkbook.VBProject.vbComponents(MyModuleName).CodeModule
If Err.Number <> 0 Then
MsgBox ("Module : " & MyModuleName & vbCr & "does not exist.")
Exit Sub
End If

'-----------------------------------------------------------------------------
'- SUBROUTINE
'- find first line of subroutine (or error)
MyLine = MyModule.ProcStartLine(MySub, vbext_pk_Proc)
If Err.Number <> 0 Then
MsgBox ("Module exists : " & MyModuleName & vbCr _
& "Sub " & MySub & "( ) : does not exist.")
Else
MsgBox ("Module : " & MyModuleName & vbCr _
& "Subroutine : " & MySub & vbCr _
& "Line Number : " & MyLine)
End If
End Sub
'-----------------------------------------------------------------------------------

Daniel
Avatar
jenesaispaspourquoi
Le mercredi 05 Novembre 2014 à 17:19 par jenesaispaspourquoi :
Bonjour,

Je suis en recherche d'une astuce concernant l’exécution des
macros, à savoir:
Existe-t-il une macro qui n'exécuterait pas macro1 si macro2 non
exécutable ?

Merci pour vos réponses.

Cordialement


DanielCo,

Merci pour votre retour.
Je teste un peu plus tard et vous tiens informé.
Merci.

Cordialement
Avatar
jenesaispaspourquoi
Le mercredi 05 Novembre 2014 à 17:19 par jenesaispaspourquoi :
Bonjour,

Je suis en recherche d'une astuce concernant l’exécution des
macros, à savoir:
Existe-t-il une macro qui n'exécuterait pas macro1 si macro2 non
exécutable ?

Merci pour vos réponses.

Cordialement


Bonsoir DanielCo, bonsoir le forum,

Pour faire suite à votre réponse, pourriez-vous me confirmer que la macro est un test d'existence d'un module et d'une macro nommée ?
Suite à ce test, est-il possible si non existence de la macro de ne faire fonctionner aucune macro ?

Merci pour votre réponse.

Cordialement
Avatar
MichD
Bonjour,

Ta demande est étrange...

Au lieu de tester ou non la présence d'une macro dans un projetVBA,
pourquoi ne pas définir les conditions d'appel de la macro? Si la ou les
conditions ne sont pas remplies, la macro ne s'exécute pas. C'est tout!
Avatar
jenesaispaspourquoi
Le mercredi 05 Novembre 2014 à 17:19 par jenesaispaspourquoi :
Bonjour,

Je suis en recherche d'une astuce concernant l’exécution des
macros, à savoir:
Existe-t-il une macro qui n'exécuterait pas macro1 si macro2 non
exécutable ?

Merci pour vos réponses.

Cordialement


Bonsoir MichD,

Votre remarque m'a fait toucher du doigt une autre problématique par rapport à mon étrange demande.
Je pense qu'il n'est plus nécessaire d'approfondir le sujet.
Merci DanielCo pour votre recherche et merci MichD pour vos remarques.
En revanche, j'ai une toute autre question:
Est-il possible qu'une macro dans un fichier fermé se lance automatiquement lorsqu'à partir d'un fichier ouvert nous ouvrons le fichier fermé OU qu'une macro dans un fichier fermé s'active lorsque un fichier précis est ouvert ?
Je ne sais pas si s'est très clair ...

Merci pour vos réponses.

Cordialement
Avatar
MichD
Bonjour,

Pour exécuter une macro d'un classeur fermé.

'------------------------------------------------------------
Sub test()
Dim Wk As Workbook, MaMacro As String
Dim Fichier As String

'Fichier fermé où est la macro a exécuté
Fichier = "c:UsersProfilDocumentsMonTest.xlsm"

Application.ScreenUpdating = False
'ouverture du fichier
Set Wk = Workbooks.Open(Fichier)

With Wk
'Masque le classeur
Wk.Windows(1).Visible = False
'Définis le nom du classeur + la macro a exécuté
'Si la macro est dans un module standard, on peut
'omettre son nom devant le nom de la macro
'Module1 = Nom du module
'Test = Nom de la macro à exécuté
MaMacro = .Name & "!Module1.test"
'Exécution de la macro
'Si la macro contient des paramètres
Application.Run MaMacro ' Param1,Param2
'Ferme le classeur avec sauvegarde
.Close True
End With
Application.ScreenUpdating = True
End Sub
'------------------------------------------------------------
Avatar
jenesaispaspourquoi
Le mercredi 05 Novembre 2014 à 17:19 par jenesaispaspourquoi :
Bonjour,

Je suis en recherche d'une astuce concernant l’exécution des
macros, à savoir:
Existe-t-il une macro qui n'exécuterait pas macro1 si macro2 non
exécutable ?

Merci pour vos réponses.

Cordialement


Bonjour MichD, bonjour le forum,

Merci beaucoup pour ce code, je teste dès que possible !!!

Bonne journée.
Avatar
GL
Le 05/11/2014 18:19, DanielCo a écrit :
Dim MyModule As Object
ActiveWorkbook.VBProject.vbComponents(MyModuleName).CodeModule



Oui l'objet CodeModule est bien pratique ! Par contre on a besoin de
"Accès approuvé au modèle d'objet du projet VBA" dans Options->
"Centre de Gestion de la confidentialité" -> "Paramètres du Centre de
Gestion de la confidentialité" -> "Paramètre des Macros"

Il faut le trouver !

On peut aussi définir:
Dim MyModule As CodeModule
pour bénéficier d'Intellisense.

Ceci étant, si la macro est en commentaires, la seule possibilité, je
crois, c'est de lire le code en mode texte et rechercher les caractères...

Bonne soirée.
1 2