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

Macro valable sur plusieurs fichiers

11 réponses
Avatar
Isa
Bonjour,

J'ai un fichier Excel extrait régulièrement d'un logiciel.
Le fichier extrait tel quel ne convient pas, il faut lui supprimer des
lignes, des colonnes...
Cette manip est à répéter à chaque fois que l'on fait une extraction.
Ma question est donc : est-il possible de créer une macro qui fasse toute la
mise en page nécessaire et lors d'un nouveau fichier, pouvoir appeler cette
macro pour l'exécuter de nouveau.
Je ne voudrais pas la recréer à chaque fois dans le nouveau fichier.
D'avance merci pour vos réponses.

Isa.

10 réponses

1 2
Avatar
Jordane
Bonjour,

Il est possible de créer ce qu'on appel des macros complémentaires.
En fait, il faut enregistrer la macro dans un classeur et la mettre au
format .XLA.
Ensuite, il est possible de l'intégrer dans excel.

- Sous Office 2003 => Outils / Options / Macros complémentaires.
- Sous 2007 => Bouton office / Options / Compléments .. et dans la liste
gérer choisir : Compléments Excel.


--
Cordialement,

Jordane


"Isa" a écrit :

Bonjour,

J'ai un fichier Excel extrait régulièrement d'un logiciel.
Le fichier extrait tel quel ne convient pas, il faut lui supprimer des
lignes, des colonnes...
Cette manip est à répéter à chaque fois que l'on fait une extraction.
Ma question est donc : est-il possible de créer une macro qui fasse toute la
mise en page nécessaire et lors d'un nouveau fichier, pouvoir appeler cette
macro pour l'exécuter de nouveau.
Je ne voudrais pas la recréer à chaque fois dans le nouveau fichier.
D'avance merci pour vos réponses.

Isa.



Avatar
Isa
Merci beaucoup pour ta réponse.
J'ai fait ce que tu m'as dit (sauf que je suis en Office 2000) et j'ai bien
ma macro enregistrée dans les macros complémentaires mais je ne sais pas
comment l'exécuter car je suppose qu'il doit falloir faire une action (sinon
elle s'exécuterait sur n'importe quel fichier excel).
D'avance merci.

"Jordane" wrote:

Bonjour,

Il est possible de créer ce qu'on appel des macros complémentaires.
En fait, il faut enregistrer la macro dans un classeur et la mettre au
format .XLA.
Ensuite, il est possible de l'intégrer dans excel.

- Sous Office 2003 => Outils / Options / Macros complémentaires.
- Sous 2007 => Bouton office / Options / Compléments .. et dans la liste
gérer choisir : Compléments Excel.


--
Cordialement,

Jordane


"Isa" a écrit :

> Bonjour,
>
> J'ai un fichier Excel extrait régulièrement d'un logiciel.
> Le fichier extrait tel quel ne convient pas, il faut lui supprimer des
> lignes, des colonnes...
> Cette manip est à répéter à chaque fois que l'on fait une extraction.
> Ma question est donc : est-il possible de créer une macro qui fasse toute la
> mise en page nécessaire et lors d'un nouveau fichier, pouvoir appeler cette
> macro pour l'exécuter de nouveau.
> Je ne voudrais pas la recréer à chaque fois dans le nouveau fichier.
> D'avance merci pour vos réponses.
>
> Isa.
>


Avatar
michdenis
T'aurais pu te contenter de mettre ta macro dans ton classeur
de macros personnelles si tu es la seule à utiliser cette macro

Pour utiliser une macro d'un classeur xla, cela se fait de 2 façon:

A ) Comme tu dis que ta macro complémentaire apparait dans la
liste des macros complémentaires énumérées, lorsque tu coches
cette macro compl. dans la liste, le fichier xla associé se charge
automatiquement ... il est visible dans la fenêtre de l'éditeur de code.

Pour appeler une macro dans ce fichier, tu dois utiliser la commande
suivante : application.run "MonClasseur.xla!MaMacro"

OU
si le nom de ton fichier contient des espaces, il faut utiliser ceci
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro

OU
Si la macro appelée est située ailleurs que dans un module standard,
tu dois insérer le nom du module dans la commande des exemples précédents
Exemple :
application.run "MonClasseur.xla!NomDuModule.MaMacro"

B ) Une façon plus simple :
Dans l'explorateur windows, retrouve ton ficher .xla et un clic droit
pour obtenir les propriétés du fichier. Inscrit un nom significatif et unique
dans la propriété du même nom.
Dans un deuxième temps, lorsque tu ouvriras la fenêtre de l'éditeur de code
tu pourras ajouter ce classeur comme référence : Outils / référence ent
prenant soin de le cocher.
Cela te permettra d'appeler ta procédure directement comme si elle faisait
parti de ton classeur.

Voilà.



"Isa" a écrit dans le message de groupe de discussion :

Bonjour,

J'ai un fichier Excel extrait régulièrement d'un logiciel.
Le fichier extrait tel quel ne convient pas, il faut lui supprimer des
lignes, des colonnes...
Cette manip est à répéter à chaque fois que l'on fait une extraction.
Ma question est donc : est-il possible de créer une macro qui fasse toute la
mise en page nécessaire et lors d'un nouveau fichier, pouvoir appeler cette
macro pour l'exécuter de nouveau.
Je ne voudrais pas la recréer à chaque fois dans le nouveau fichier.
D'avance merci pour vos réponses.

Isa.
Avatar
Isa
Ca me convient très bien une macro personnelle car en effet, elle ne sert
qu'à une personne. L'idéal c'est que la personne ouvre son fichier et qu'elle
clique sur un truc du genre "Exécuter tel macro" et que ça exécute le code.

J'ai essayé votre méthode B mais je n'arrive pas à changer de nom : mon
fichier .xla a un nom bien significatif mais quand je l'ajoute dans les
références il se nomme "VBA project" et cela me dit que le nom existe déjà...
Pouvez-vous me dire ce que j'ai loupé ?
Merci beaucoup.

"michdenis" wrote:

T'aurais pu te contenter de mettre ta macro dans ton classeur
de macros personnelles si tu es la seule à utiliser cette macro

Pour utiliser une macro d'un classeur xla, cela se fait de 2 façon:

A ) Comme tu dis que ta macro complémentaire apparait dans la
liste des macros complémentaires énumérées, lorsque tu coches
cette macro compl. dans la liste, le fichier xla associé se charge
automatiquement ... il est visible dans la fenêtre de l'éditeur de code.

Pour appeler une macro dans ce fichier, tu dois utiliser la commande
suivante : application.run "MonClasseur.xla!MaMacro"

OU
si le nom de ton fichier contient des espaces, il faut utiliser ceci
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro

OU
Si la macro appelée est située ailleurs que dans un module standard,
tu dois insérer le nom du module dans la commande des exemples précédents
Exemple :
application.run "MonClasseur.xla!NomDuModule.MaMacro"

B ) Une façon plus simple :
Dans l'explorateur windows, retrouve ton ficher .xla et un clic droit
pour obtenir les propriétés du fichier. Inscrit un nom significatif et unique
dans la propriété du même nom.
Dans un deuxième temps, lorsque tu ouvriras la fenêtre de l'éditeur de code
tu pourras ajouter ce classeur comme référence : Outils / référence ent
prenant soin de le cocher.
Cela te permettra d'appeler ta procédure directement comme si elle faisait
parti de ton classeur.

Voilà.



"Isa" a écrit dans le message de groupe de discussion :

Bonjour,

J'ai un fichier Excel extrait régulièrement d'un logiciel.
Le fichier extrait tel quel ne convient pas, il faut lui supprimer des
lignes, des colonnes...
Cette manip est à répéter à chaque fois que l'on fait une extraction.
Ma question est donc : est-il possible de créer une macro qui fasse toute la
mise en page nécessaire et lors d'un nouveau fichier, pouvoir appeler cette
macro pour l'exécuter de nouveau.
Je ne voudrais pas la recréer à chaque fois dans le nouveau fichier.
D'avance merci pour vos réponses.

Isa.



Avatar
michdenis
| J'ai essayé votre méthode B mais je n'arrive pas à changer de nom : mon
| fichier .xla a un nom bien significatif mais quand je l'ajoute dans les
| références il se nomme "VBA project" et cela me dit que le nom existe déjà...
| Pouvez-vous me dire ce que j'ai loupé ?
| Merci beaucoup.

Pour pouvoir afficher une macro complémentaire comme référence
dans la fenêtre de l'éditeur de code, ceci peut se faire de 2 façons :

A ) Lorsque l'on construit le projetVBA menant à la macro complémentaire
on peut (doit) modifier la propriété Name et lui attribuer un nom unique
c'est d'ailleurs ce nom qui va s'afficher dans la liste dans la fenêtre des
références.
Évidemment, pour ce faire, il faut que ce fichier soit fermé et qu'il ne soit
pas déjà référencer dans la liste des macros complémentaires dans la
fenêtre dédiée à ceux-ci. Si oui, il faut fermer toutes les instances d'excel,
ouvrir seul le fichier xla visé par un double-clique dans l'explorateur et
ouvrir la fenêtre de l'éditeur de code, enlevé le mot de passe
et modifié son nom de projet.... et surtout sauvegardé la modification
en cliquant sur le bouton ou en appelant la commande. Un fichier .xla
ne demande pas d'enregistrer les modifications à sa fermeture.

B ) La méthode que je te proposais demandais seulement de fermer toutes les
instances d'excel, aller dans l'explorateur Windows et par un clic droit sur le
fichier appelé la fenêtre des propriétés de ce dernier, et dans l'onglet
"personnaliser" définir la propriété "Name" d'un nom unique. C'est ce nom
que tu auras à cocher dans la liste de référence le cas échéant.

C ) Si tu as donné un nom à ton projet VBA et que tu as aussi défini la propriété
nom de la fenêtre propriété, c'est ce dernier qui s'affichera dans la fenêtre des
références.
Avatar
Isa
Désolée mais toujours pas réussi, j'ai l'impression de ne pas être douée...

Donc j'ai essayé d'ajouter la macro dans les références, elle s'ajoute mais
si je revient après sur les références, elle n'y est pas... (Je précise que
je l'ai enlevé des macros complémentaires).
Si j'arrive à passer cette étape de référencement, comment je fais ensuite
pour l'exécuter ?
D'avance merci pour votre réponse.

Isa.

"michdenis" wrote:


| J'ai essayé votre méthode B mais je n'arrive pas à changer de nom : mon
| fichier .xla a un nom bien significatif mais quand je l'ajoute dans les
| références il se nomme "VBA project" et cela me dit que le nom existe déjà...
| Pouvez-vous me dire ce que j'ai loupé ?
| Merci beaucoup.

Pour pouvoir afficher une macro complémentaire comme référence
dans la fenêtre de l'éditeur de code, ceci peut se faire de 2 façons :

A ) Lorsque l'on construit le projetVBA menant à la macro complémentaire
on peut (doit) modifier la propriété Name et lui attribuer un nom unique
c'est d'ailleurs ce nom qui va s'afficher dans la liste dans la fenêtre des
références.
Évidemment, pour ce faire, il faut que ce fichier soit fermé et qu'il ne soit
pas déjà référencer dans la liste des macros complémentaires dans la
fenêtre dédiée à ceux-ci. Si oui, il faut fermer toutes les instances d'excel,
ouvrir seul le fichier xla visé par un double-clique dans l'explorateur et
ouvrir la fenêtre de l'éditeur de code, enlevé le mot de passe
et modifié son nom de projet.... et surtout sauvegardé la modification
en cliquant sur le bouton ou en appelant la commande. Un fichier .xla
ne demande pas d'enregistrer les modifications à sa fermeture.

B ) La méthode que je te proposais demandais seulement de fermer toutes les
instances d'excel, aller dans l'explorateur Windows et par un clic droit sur le
fichier appelé la fenêtre des propriétés de ce dernier, et dans l'onglet
"personnaliser" définir la propriété "Name" d'un nom unique. C'est ce nom
que tu auras à cocher dans la liste de référence le cas échéant.

C ) Si tu as donné un nom à ton projet VBA et que tu as aussi défini la propriété
nom de la fenêtre propriété, c'est ce dernier qui s'affichera dans la fenêtre des
références.




Avatar
michdenis
| Donc j'ai essayé d'ajouter la macro dans les références
ce n'est pas la macro mais le fichier xla qui la contient qu'il faut passer en référence.

| (Je précise que je l'ai enlevé des macros complémentaires).

Quand tu places un fichier xla dans le répertoire ou Microsoft
regroupe la liste de ses fichiers xla. Ton fichier xla va s'ajouter
à la liste des macros complémentaires (non cochées) de la
fenêtre des macros complémentaires. Excel les affiche sans
avoir besoin de ton intervention. Quand tu coches une macro
complémentaire dans cette fenêtre, elle te donne accès aux
fonctions qu'elle contient mais ces dernières sont disponibles
seulement dans l'interface de la feuille de calcul. Pour pouvoir
les utiliser en VBA, si on a pas ajouter le fichier en référence, il
faut utiliser la syntaxe dont je t'ai donné les détails dans mon
message précédent. En passant le fichier en référence, on peut
alors appelé directement la macro par son nom comme si la
macro faisait parti de ton classeur. Habituellement lorsque tu
coches une macro complémentaire de la fenêtre du même
nom, son nom (s'il a été bien défini) s'ajoute "automatiquement"
dans la liste des références (pas cocher). S'il n'apparaît pas,
dans la fenêtre des références utiliser le bouton parcourir et remonter dans
l'arborescence des fichiers jusqu'au fichier xla que tu veux ajouter comme référence. Il
s'ajoutera à la liste. Ce ne sera pas son nom de fichier xla mais le nom que tu as donné à
ton projetvba ou à la propriété NOM du fichier. Tu le coches avant de fermer la fenêtre.




"Isa" a écrit dans le message de groupe de discussion :

Désolée mais toujours pas réussi, j'ai l'impression de ne pas être douée...

Donc j'ai essayé d'ajouter la macro dans les références, elle s'ajoute mais
si je revient après sur les références, elle n'y est pas... (Je précise que
je l'ai enlevé des macros complémentaires).
Si j'arrive à passer cette étape de référencement, comment je fais ensuite
pour l'exécuter ?
D'avance merci pour votre réponse.

Isa.

"michdenis" wrote:


| J'ai essayé votre méthode B mais je n'arrive pas à changer de nom : mon
| fichier .xla a un nom bien significatif mais quand je l'ajoute dans les
| références il se nomme "VBA project" et cela me dit que le nom existe déjà...
| Pouvez-vous me dire ce que j'ai loupé ?
| Merci beaucoup.

Pour pouvoir afficher une macro complémentaire comme référence
dans la fenêtre de l'éditeur de code, ceci peut se faire de 2 façons :

A ) Lorsque l'on construit le projetVBA menant à la macro complémentaire
on peut (doit) modifier la propriété Name et lui attribuer un nom unique
c'est d'ailleurs ce nom qui va s'afficher dans la liste dans la fenêtre des
références.
Évidemment, pour ce faire, il faut que ce fichier soit fermé et qu'il ne soit
pas déjà référencer dans la liste des macros complémentaires dans la
fenêtre dédiée à ceux-ci. Si oui, il faut fermer toutes les instances d'excel,
ouvrir seul le fichier xla visé par un double-clique dans l'explorateur et
ouvrir la fenêtre de l'éditeur de code, enlevé le mot de passe
et modifié son nom de projet.... et surtout sauvegardé la modification
en cliquant sur le bouton ou en appelant la commande. Un fichier .xla
ne demande pas d'enregistrer les modifications à sa fermeture.

B ) La méthode que je te proposais demandais seulement de fermer toutes les
instances d'excel, aller dans l'explorateur Windows et par un clic droit sur le
fichier appelé la fenêtre des propriétés de ce dernier, et dans l'onglet
"personnaliser" définir la propriété "Name" d'un nom unique. C'est ce nom
que tu auras à cocher dans la liste de référence le cas échéant.

C ) Si tu as donné un nom à ton projet VBA et que tu as aussi défini la propriété
nom de la fenêtre propriété, c'est ce dernier qui s'affichera dans la fenêtre des
références.




Avatar
Isa
Reprenons du début car je dois louper un truc.

J'ai supprimé mon fichier .xla des macros supplémentaires.
Je suis sous Office 2000.
Je démarre donc avec un fichier .xla qui est sur mon bureau.
Je renomme le projet sur lequel il est basé donc on passe de "VBAproject" à
"Macro_mise_en_page_fichier".

Ensuite j'ouvre mon fameux fichier Excel sur lequel je veux exécuter cette
macro.
J'ouvre le VBA, je vais dans Références et j'ajoute ce fichier .xla, je
réponds OK puis j'enregistre.
Là, la mise en page se fait. Si je ferme et que je rouvre le fichier Excel,
la mise en page n'est plus faite et dans les références, il n'y a plus celle
nommée Macro_mise_en_page_fichier.

De plus, ce que je voudrais c'est que l'utilisateur, suivant le fichier
qu'il a, applique cette macro ou non, je ne veux pas que cette macro soit
appliquée à chaque fichier Excel. Par exemple, je veux qu'il appuie sur un
raccourci clavier pour l'exécuter ou un truc du genre.

Merci pour votre patience mais on va y arriver ;-)))

Isa.

"michdenis" wrote:

| Donc j'ai essayé d'ajouter la macro dans les références
ce n'est pas la macro mais le fichier xla qui la contient qu'il faut passer en référence.

| (Je précise que je l'ai enlevé des macros complémentaires).

Quand tu places un fichier xla dans le répertoire ou Microsoft
regroupe la liste de ses fichiers xla. Ton fichier xla va s'ajouter
à la liste des macros complémentaires (non cochées) de la
fenêtre des macros complémentaires. Excel les affiche sans
avoir besoin de ton intervention. Quand tu coches une macro
complémentaire dans cette fenêtre, elle te donne accès aux
fonctions qu'elle contient mais ces dernières sont disponibles
seulement dans l'interface de la feuille de calcul. Pour pouvoir
les utiliser en VBA, si on a pas ajouter le fichier en référence, il
faut utiliser la syntaxe dont je t'ai donné les détails dans mon
message précédent. En passant le fichier en référence, on peut
alors appelé directement la macro par son nom comme si la
macro faisait parti de ton classeur. Habituellement lorsque tu
coches une macro complémentaire de la fenêtre du même
nom, son nom (s'il a été bien défini) s'ajoute "automatiquement"
dans la liste des références (pas cocher). S'il n'apparaît pas,
dans la fenêtre des références utiliser le bouton parcourir et remonter dans
l'arborescence des fichiers jusqu'au fichier xla que tu veux ajouter comme référence. Il
s'ajoutera à la liste. Ce ne sera pas son nom de fichier xla mais le nom que tu as donné à
ton projetvba ou à la propriété NOM du fichier. Tu le coches avant de fermer la fenêtre.




"Isa" a écrit dans le message de groupe de discussion :

Désolée mais toujours pas réussi, j'ai l'impression de ne pas être douée...

Donc j'ai essayé d'ajouter la macro dans les références, elle s'ajoute mais
si je revient après sur les références, elle n'y est pas... (Je précise que
je l'ai enlevé des macros complémentaires).
Si j'arrive à passer cette étape de référencement, comment je fais ensuite
pour l'exécuter ?
D'avance merci pour votre réponse.

Isa.

"michdenis" wrote:

>
> | J'ai essayé votre méthode B mais je n'arrive pas à changer de nom : mon
> | fichier .xla a un nom bien significatif mais quand je l'ajoute dans les
> | références il se nomme "VBA project" et cela me dit que le nom existe déjà...
> | Pouvez-vous me dire ce que j'ai loupé ?
> | Merci beaucoup.
>
> Pour pouvoir afficher une macro complémentaire comme référence
> dans la fenêtre de l'éditeur de code, ceci peut se faire de 2 façons :
>
> A ) Lorsque l'on construit le projetVBA menant à la macro complémentaire
> on peut (doit) modifier la propriété Name et lui attribuer un nom unique
> c'est d'ailleurs ce nom qui va s'afficher dans la liste dans la fenêtre des
> références.
> Évidemment, pour ce faire, il faut que ce fichier soit fermé et qu'il ne soit
> pas déjà référencer dans la liste des macros complémentaires dans la
> fenêtre dédiée à ceux-ci. Si oui, il faut fermer toutes les instances d'excel,
> ouvrir seul le fichier xla visé par un double-clique dans l'explorateur et
> ouvrir la fenêtre de l'éditeur de code, enlevé le mot de passe
> et modifié son nom de projet.... et surtout sauvegardé la modification
> en cliquant sur le bouton ou en appelant la commande. Un fichier .xla
> ne demande pas d'enregistrer les modifications à sa fermeture.
>
> B ) La méthode que je te proposais demandais seulement de fermer toutes les
> instances d'excel, aller dans l'explorateur Windows et par un clic droit sur le
> fichier appelé la fenêtre des propriétés de ce dernier, et dans l'onglet
> "personnaliser" définir la propriété "Name" d'un nom unique. C'est ce nom
> que tu auras à cocher dans la liste de référence le cas échéant.
>
> C ) Si tu as donné un nom à ton projet VBA et que tu as aussi défini la propriété
> nom de la fenêtre propriété, c'est ce dernier qui s'affichera dans la fenêtre des
> références.
>
>


Avatar
michdenis
A ) tu viens d'inscrire toutes les macros que tu désires
dans un tout nouveau fichier xls. Tu veux transformer
ce fichier en xla.

Avant de l'enregistrer, tu t'assures que tu as donné un
"nom" au projetVBA dans la fenêtre de l'éditeur de code
du classeur. Ce nom doit être unique. Il n'est pas
essentiel de mettre un mot de passe toute suite pour
verrouiller l'accessibilité au code. Tu peux attendre que
tout fonctionne comme tu le souhaites.

B ) Tu enregistre ton classeur et dans la fenêtre
Enregistrer sous, tu sélectionnes dans la liste déroulante
Type de fichier = "xla", et tu donnes un nom à ton classeur

Lorsque tu enregistres le fichier comme XLA, La principale
modification qu'Excel fait, c'est qu'il modifie la propriété
"IsAddin" à True -> ceci à pour effet de masquer toutes
les feuilles du classeur. Tu peux voir cette propriété à partir
de la fenêtre VBE. Pour ce faire, tu sélectionnes l'objet
ThisWorkbook du Classeur et dans la fenêtre des propriétés
tu recherches la propriété "IsAddin". D'ailleurs, tu peux le
faire manuellement sur n'importe quel classeur et observe
ce qui se passe à l'interface des feuilles de calcul lorsque tu
mets la propriété "IsAddin" = True
Cette parenthèse faite, tu finis l'enregistrement du classeur.
Tu peux choisir le répertoire que tu désires... mais si ce classeur
est destiné à un usager particulier, pourquoi ne pas l'enregistrer
dans le répertoire "macro complémentaire" de son profil usager.

C ) Après l'enregistrement, tu fermes le fichier xla et ouvre le fichier
dont tu veux lui attribuer une référence.
Tu ouvres l'éditeur de code pour ce fichier
Tu t'assures que c'est bien ce projetvba qui est actif
Barre des menus / outils / références / Tu ne verras pas le
nom que tu as mis pour ton fichier xla. Pour ce faire, tu
utilises le bouton "Parcourir de la fenêtre des références" et
tu remontes dans l'arborescence des fichiers jusqu'à ton fichier
complémentaire, il s'agit tout simplement de l'ajouter à la liste
et à le cocher avant de fermer la fenêtre des références

Maintenant si tu enregistre ton fichier, il conservera ton fichier en
macro complémentaire. À chaque fois que tu ouvriras ton fichier,
le fichier de la macro complémentaire s'ouvrira. Cependant, à moins
que tu aies prévu une procédure spécial au moment de la fermeture
de ton fichier, celui de la macro complémentaire demeurera ouvert
jusqu'à la fermeture d'excel. Si tu désires le fermer, il s'agit simplement
de passer la commande : Workbooks("NomDeMonClasseur.xla").Close

Voilà ! C'était ma dernière intervention sur ce fil. je crois avoir fait
le tour de la question.




"Isa" a écrit dans le message de groupe de discussion :

Reprenons du début car je dois louper un truc.

J'ai supprimé mon fichier .xla des macros supplémentaires.
Je suis sous Office 2000.
Je démarre donc avec un fichier .xla qui est sur mon bureau.
Je renomme le projet sur lequel il est basé donc on passe de "VBAproject" à
"Macro_mise_en_page_fichier".

Ensuite j'ouvre mon fameux fichier Excel sur lequel je veux exécuter cette
macro.
J'ouvre le VBA, je vais dans Références et j'ajoute ce fichier .xla, je
réponds OK puis j'enregistre.
Là, la mise en page se fait. Si je ferme et que je rouvre le fichier Excel,
la mise en page n'est plus faite et dans les références, il n'y a plus celle
nommée Macro_mise_en_page_fichier.

De plus, ce que je voudrais c'est que l'utilisateur, suivant le fichier
qu'il a, applique cette macro ou non, je ne veux pas que cette macro soit
appliquée à chaque fichier Excel. Par exemple, je veux qu'il appuie sur un
raccourci clavier pour l'exécuter ou un truc du genre.

Merci pour votre patience mais on va y arriver ;-)))

Isa.

"michdenis" wrote:

| Donc j'ai essayé d'ajouter la macro dans les références
ce n'est pas la macro mais le fichier xla qui la contient qu'il faut passer en
référence.

| (Je précise que je l'ai enlevé des macros complémentaires).

Quand tu places un fichier xla dans le répertoire ou Microsoft
regroupe la liste de ses fichiers xla. Ton fichier xla va s'ajouter
à la liste des macros complémentaires (non cochées) de la
fenêtre des macros complémentaires. Excel les affiche sans
avoir besoin de ton intervention. Quand tu coches une macro
complémentaire dans cette fenêtre, elle te donne accès aux
fonctions qu'elle contient mais ces dernières sont disponibles
seulement dans l'interface de la feuille de calcul. Pour pouvoir
les utiliser en VBA, si on a pas ajouter le fichier en référence, il
faut utiliser la syntaxe dont je t'ai donné les détails dans mon
message précédent. En passant le fichier en référence, on peut
alors appelé directement la macro par son nom comme si la
macro faisait parti de ton classeur. Habituellement lorsque tu
coches une macro complémentaire de la fenêtre du même
nom, son nom (s'il a été bien défini) s'ajoute "automatiquement"
dans la liste des références (pas cocher). S'il n'apparaît pas,
dans la fenêtre des références utiliser le bouton parcourir et remonter dans
l'arborescence des fichiers jusqu'au fichier xla que tu veux ajouter comme référence. Il
s'ajoutera à la liste. Ce ne sera pas son nom de fichier xla mais le nom que tu as donné
à
ton projetvba ou à la propriété NOM du fichier. Tu le coches avant de fermer la fenêtre.




"Isa" a écrit dans le message de groupe de discussion :

Désolée mais toujours pas réussi, j'ai l'impression de ne pas être douée...

Donc j'ai essayé d'ajouter la macro dans les références, elle s'ajoute mais
si je revient après sur les références, elle n'y est pas... (Je précise que
je l'ai enlevé des macros complémentaires).
Si j'arrive à passer cette étape de référencement, comment je fais ensuite
pour l'exécuter ?
D'avance merci pour votre réponse.

Isa.

"michdenis" wrote:

>
> | J'ai essayé votre méthode B mais je n'arrive pas à changer de nom : mon
> | fichier .xla a un nom bien significatif mais quand je l'ajoute dans les
> | références il se nomme "VBA project" et cela me dit que le nom existe déjà...
> | Pouvez-vous me dire ce que j'ai loupé ?
> | Merci beaucoup.
>
> Pour pouvoir afficher une macro complémentaire comme référence
> dans la fenêtre de l'éditeur de code, ceci peut se faire de 2 façons :
>
> A ) Lorsque l'on construit le projetVBA menant à la macro complémentaire
> on peut (doit) modifier la propriété Name et lui attribuer un nom unique
> c'est d'ailleurs ce nom qui va s'afficher dans la liste dans la fenêtre des
> références.
> Évidemment, pour ce faire, il faut que ce fichier soit fermé et qu'il ne soit
> pas déjà référencer dans la liste des macros complémentaires dans la
> fenêtre dédiée à ceux-ci. Si oui, il faut fermer toutes les instances d'excel,
> ouvrir seul le fichier xla visé par un double-clique dans l'explorateur et
> ouvrir la fenêtre de l'éditeur de code, enlevé le mot de passe
> et modifié son nom de projet.... et surtout sauvegardé la modification
> en cliquant sur le bouton ou en appelant la commande. Un fichier .xla
> ne demande pas d'enregistrer les modifications à sa fermeture.
>
> B ) La méthode que je te proposais demandais seulement de fermer toutes les
> instances d'excel, aller dans l'explorateur Windows et par un clic droit sur le
> fichier appelé la fenêtre des propriétés de ce dernier, et dans l'onglet
> "personnaliser" définir la propriété "Name" d'un nom unique. C'est ce nom
> que tu auras à cocher dans la liste de référence le cas échéant.
>
> C ) Si tu as donné un nom à ton projet VBA et que tu as aussi défini la propriété
> nom de la fenêtre propriété, c'est ce dernier qui s'affichera dans la fenêtre des
> références.
>
>


Avatar
Isa
Je vous remercie une nouvelle fois pour votre intervention.

J'ai bien saisi ce que vous m'avez dit et je l'ai fait sauf que ça ne fait
pas ce que je souhaites :
Je dois exécuter cette macro à chaque fois sur un nouveau fichier et je ne
l'exécute qu'une seule fois. Je ne veux donc pas rajouter dans chacun de mes
fichiers un bout de code pour l'exécuter. Je pensais qu'il y avait un moyen
simple, genre je la mets dans les macros complémentaires et je fais par
exemple Ctrl + G et elle s'éxecute.
Est ce que cela existe ?
D'avance merci.

"michdenis" wrote:

A ) tu viens d'inscrire toutes les macros que tu désires
dans un tout nouveau fichier xls. Tu veux transformer
ce fichier en xla.

Avant de l'enregistrer, tu t'assures que tu as donné un
"nom" au projetVBA dans la fenêtre de l'éditeur de code
du classeur. Ce nom doit être unique. Il n'est pas
essentiel de mettre un mot de passe toute suite pour
verrouiller l'accessibilité au code. Tu peux attendre que
tout fonctionne comme tu le souhaites.

B ) Tu enregistre ton classeur et dans la fenêtre
Enregistrer sous, tu sélectionnes dans la liste déroulante
Type de fichier = "xla", et tu donnes un nom à ton classeur

Lorsque tu enregistres le fichier comme XLA, La principale
modification qu'Excel fait, c'est qu'il modifie la propriété
"IsAddin" à True -> ceci à pour effet de masquer toutes
les feuilles du classeur. Tu peux voir cette propriété à partir
de la fenêtre VBE. Pour ce faire, tu sélectionnes l'objet
ThisWorkbook du Classeur et dans la fenêtre des propriétés
tu recherches la propriété "IsAddin". D'ailleurs, tu peux le
faire manuellement sur n'importe quel classeur et observe
ce qui se passe à l'interface des feuilles de calcul lorsque tu
mets la propriété "IsAddin" = True
Cette parenthèse faite, tu finis l'enregistrement du classeur.
Tu peux choisir le répertoire que tu désires... mais si ce classeur
est destiné à un usager particulier, pourquoi ne pas l'enregistrer
dans le répertoire "macro complémentaire" de son profil usager.

C ) Après l'enregistrement, tu fermes le fichier xla et ouvre le fichier
dont tu veux lui attribuer une référence.
Tu ouvres l'éditeur de code pour ce fichier
Tu t'assures que c'est bien ce projetvba qui est actif
Barre des menus / outils / références / Tu ne verras pas le
nom que tu as mis pour ton fichier xla. Pour ce faire, tu
utilises le bouton "Parcourir de la fenêtre des références" et
tu remontes dans l'arborescence des fichiers jusqu'à ton fichier
complémentaire, il s'agit tout simplement de l'ajouter à la liste
et à le cocher avant de fermer la fenêtre des références

Maintenant si tu enregistre ton fichier, il conservera ton fichier en
macro complémentaire. À chaque fois que tu ouvriras ton fichier,
le fichier de la macro complémentaire s'ouvrira. Cependant, à moins
que tu aies prévu une procédure spécial au moment de la fermeture
de ton fichier, celui de la macro complémentaire demeurera ouvert
jusqu'à la fermeture d'excel. Si tu désires le fermer, il s'agit simplement
de passer la commande : Workbooks("NomDeMonClasseur.xla").Close

Voilà ! C'était ma dernière intervention sur ce fil. je crois avoir fait
le tour de la question.




"Isa" a écrit dans le message de groupe de discussion :

Reprenons du début car je dois louper un truc.

J'ai supprimé mon fichier .xla des macros supplémentaires.
Je suis sous Office 2000.
Je démarre donc avec un fichier .xla qui est sur mon bureau.
Je renomme le projet sur lequel il est basé donc on passe de "VBAproject" à
"Macro_mise_en_page_fichier".

Ensuite j'ouvre mon fameux fichier Excel sur lequel je veux exécuter cette
macro.
J'ouvre le VBA, je vais dans Références et j'ajoute ce fichier .xla, je
réponds OK puis j'enregistre.
Là, la mise en page se fait. Si je ferme et que je rouvre le fichier Excel,
la mise en page n'est plus faite et dans les références, il n'y a plus celle
nommée Macro_mise_en_page_fichier.

De plus, ce que je voudrais c'est que l'utilisateur, suivant le fichier
qu'il a, applique cette macro ou non, je ne veux pas que cette macro soit
appliquée à chaque fichier Excel. Par exemple, je veux qu'il appuie sur un
raccourci clavier pour l'exécuter ou un truc du genre.

Merci pour votre patience mais on va y arriver ;-)))

Isa.

"michdenis" wrote:

> | Donc j'ai essayé d'ajouter la macro dans les références
> ce n'est pas la macro mais le fichier xla qui la contient qu'il faut passer en
> référence.
>
> | (Je précise que je l'ai enlevé des macros complémentaires).
>
> Quand tu places un fichier xla dans le répertoire ou Microsoft
> regroupe la liste de ses fichiers xla. Ton fichier xla va s'ajouter
> à la liste des macros complémentaires (non cochées) de la
> fenêtre des macros complémentaires. Excel les affiche sans
> avoir besoin de ton intervention. Quand tu coches une macro
> complémentaire dans cette fenêtre, elle te donne accès aux
> fonctions qu'elle contient mais ces dernières sont disponibles
> seulement dans l'interface de la feuille de calcul. Pour pouvoir
> les utiliser en VBA, si on a pas ajouter le fichier en référence, il
> faut utiliser la syntaxe dont je t'ai donné les détails dans mon
> message précédent. En passant le fichier en référence, on peut
> alors appelé directement la macro par son nom comme si la
> macro faisait parti de ton classeur. Habituellement lorsque tu
> coches une macro complémentaire de la fenêtre du même
> nom, son nom (s'il a été bien défini) s'ajoute "automatiquement"
> dans la liste des références (pas cocher). S'il n'apparaît pas,
> dans la fenêtre des références utiliser le bouton parcourir et remonter dans
> l'arborescence des fichiers jusqu'au fichier xla que tu veux ajouter comme référence. Il
> s'ajoutera à la liste. Ce ne sera pas son nom de fichier xla mais le nom que tu as donné
> à
> ton projetvba ou à la propriété NOM du fichier. Tu le coches avant de fermer la fenêtre.
>
>
>
>
> "Isa" a écrit dans le message de groupe de discussion :
>
> Désolée mais toujours pas réussi, j'ai l'impression de ne pas être douée...
>
> Donc j'ai essayé d'ajouter la macro dans les références, elle s'ajoute mais
> si je revient après sur les références, elle n'y est pas... (Je précise que
> je l'ai enlevé des macros complémentaires).
> Si j'arrive à passer cette étape de référencement, comment je fais ensuite
> pour l'exécuter ?
> D'avance merci pour votre réponse.
>
> Isa.
>
> "michdenis" wrote:
>
> >
> > | J'ai essayé votre méthode B mais je n'arrive pas à changer de nom : mon
> > | fichier .xla a un nom bien significatif mais quand je l'ajoute dans les
> > | références il se nomme "VBA project" et cela me dit que le nom existe déjà...
> > | Pouvez-vous me dire ce que j'ai loupé ?
> > | Merci beaucoup.
> >
> > Pour pouvoir afficher une macro complémentaire comme référence
> > dans la fenêtre de l'éditeur de code, ceci peut se faire de 2 façons :
> >
> > A ) Lorsque l'on construit le projetVBA menant à la macro complémentaire
> > on peut (doit) modifier la propriété Name et lui attribuer un nom unique
> > c'est d'ailleurs ce nom qui va s'afficher dans la liste dans la fenêtre des
> > références.
> > Évidemment, pour ce faire, il faut que ce fichier soit fermé et qu'il ne soit
> > pas déjà référencer dans la liste des macros complémentaires dans la
> > fenêtre dédiée à ceux-ci. Si oui, il faut fermer toutes les instances d'excel,
> > ouvrir seul le fichier xla visé par un double-clique dans l'explorateur et
> > ouvrir la fenêtre de l'éditeur de code, enlevé le mot de passe
> > et modifié son nom de projet.... et surtout sauvegardé la modification
> > en cliquant sur le bouton ou en appelant la commande. Un fichier .xla
> > ne demande pas d'enregistrer les modifications à sa fermeture.
> >
> > B ) La méthode que je te proposais demandais seulement de fermer toutes les
> > instances d'excel, aller dans l'explorateur Windows et par un clic droit sur le
> > fichier appelé la fenêtre des propriétés de ce dernier, et dans l'onglet
> > "personnaliser" définir la propriété "Name" d'un nom unique. C'est ce nom
> > que tu auras à cocher dans la liste de référence le cas échéant.
> >
> > C ) Si tu as donné un nom à ton projet VBA et que tu as aussi défini la propriété
> > nom de la fenêtre propriété, c'est ce dernier qui s'affichera dans la fenêtre des
> > références.
> >
> >


1 2