Appel d'une macro xlam chargée depuis une autre macro

Bonjour à tous.

Je sèche sur un sujet.

Je dois réaliser des extractions de données depuis plus d'une centaine fichiers excel d'un client, tous protégés par un mot de passe.

J'ai codé une macro pour effectuer des extractions.

J'ai besoin de transformer les données de certaines cellules de ces fichiers.

Je souhaite donc effectuer une copie de ces fichier comportant mes modifications pour assurer la traçabilité du traitement opéré par ma macro.

Ma macro ouvre chacun des fichiers protégés, en lecture seule.

Je fais une copie du fichier et je souhaite supprimer le mot de passe de la feuille pour éviter de me retrouver "verrouillé" plus tard.

Le problème n'est pas tant la suppression du mot de passe.

J'ai une macro qui me permet de le faire mais je ne sais pas comment l'appeler depuis ma macro.

La macro qui effectue la suppression du mot de passe est un fichier xlam chargé à chaque démarrage d'excel et est déclenchée depuis le ruban.

Donc, si je clique manuellement, cette macro supprime le mot de passe.

Mais je ne sais pas l'appeler depuis ma macro de traitement des fichiers client.

J'ai bourlingué sur la toile, mais je n'ai pas trouvé de solutions.

Que ce soit pour la macro de suppression de mot de passe ou pour toute autre macro déclenchée par un clic sur le bouton du ruban, j'aimerais bien comprendre comment substituer l'action manuelle du "clic" au déclenchement de la macro par vba.

J'ai essayé (pour faire des essais):

Sub ouvre()
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\BDI\SRS\PV_Essais_V599999XX\PRODUCTION\PRODUCTION\PV essai 999999AAA.xls", ReadOnly:=True

Application.Run MAcro:="'password.xlam'!UnprotectSheet"

End Sub

Lorsque j’exécute, j'ai un message d'erreur 449: argument non facultatif.

Au delà de la nécessité avérée dudit argument, lorsque je clique sur le bouton du ruban, on ne me demande pas d'argument !

Je ne vois pas pourquoi j'ai besoin d'en fournir un maintenant.

J'ai tenté de rajouter un argument en précisant "activesheet" à tout hasard, mais ça ne fonctionne pas.

Merci d'avance pour vos suggestions, solutions...

Je précise que je ne cherche pas à pirater quoi que ce soit avec la macro de suppression du mot de passe, au cas où cela ferait vibrer une corde sensible chez certains.

Je travaille dans l'aéronautique, secteur ultra (trop) sensible et vous n'avez pas idée du nombre de fichiers à exploiter (qu'ils soient pdf ou autres), protégés et qu'il est rageant de voir ainsi protégés alors qu'il faut parfois les annoter, modifier...

Merci d'avance.

Bonjour,

Pour ajouter un argument

Application.Run "password.xlam!UnprotectSheet", argument

Je ne sais pas quel argument ajouter et j'ai déjà essayé.

La macro de suppression du mot de passe est distribuée sur le net et protégée.

Je ne comprends pas qu'il faille déclarer un argument puisque l'appui sur le bouton ne nécessite pas de déclarer quelque argument que ce soit.

Quel code pour substituer l'appui sur le bouton qui déclenche une macro dans le ruban ?

bonjour,

Essaie :

Application.Run "password.xlam!UnprotectSheet"

A+

Bonjour Galopin.

Je n'ai plus d'erreur d'arguments, mais la macro ne s’exécute pas.

Merci pour votre contribution.

Je cherche...

Bonjour,

tu as une autre possibilité avec Révision / Permettre la modification des plages'

Je sélectionne toute la feuille et j'ajoute mon identifiant dans les autorisations d'accès.

Après avoir cliqué sur 'Ajouter' tu peux faire 'Avancé...' puis 'Rechercher' pour retrouver ton ident si tu n'y es pas arrivé au premier coup.

Ensuite plus besoin de déprotéger la feuille lorsque je travaille dessus.

eric

Rechercher des sujets similaires à "appel macro xlam chargee"