Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille" que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille" que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
ehCpnsmoFHA.576@TK2MSFTNGP15.phx.gbl...
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille" que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
uoCVe7moFHA.3696@TK2MSFTNGP10.phx.gbl...
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
ehCpnsmoFHA.576@TK2MSFTNGP15.phx.gbl...
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille" que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille" que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
ehCpnsmoFHA.576@TK2MSFTNGP15.phx.gbl...
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille" que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez ?
merci d'avance chers amis
Caroline
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
uoCVe7moFHA.3696@TK2MSFTNGP10.phx.gbl...
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
ehCpnsmoFHA.576@TK2MSFTNGP15.phx.gbl...
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Bonjour Caroline,
'-----CRÉATION DE LA MACRO COMPLÉMENTAIRE.......
Lorsque tu crées ton fichier qui va devenir
ta macro complémentaire,
A )
Dans VBE (visual basic editor) du classeur,
Rebaptise ton projetvba d'un nom qui soit
significatif au travail du classeur. Pour
cefaire, tu sélectionnes ton projetVba et
dans la fenêtre des propriétés, tu modifies
VBAProject pour "LeNomRetenu"
B ) Tu enregistres ton fichier comme macro
complémentaire (.xla)
C ) Tu fermes excel.
ENREGISTREMENT DE LA MACRO COMPLÉMENTAIRE...
Sous Windows Xp, lorsque tu sélectionnes comme
type de fichier, Macro complémentaire lors de
l'enregistrement de la macro complémentaire
cette dernière s'enregistre dans ce répertoire :
"C:Documents and SettingsDenisApplication Data
MicrosoftMacros complémentairesdenis.xla"
Si tu enregistres ta macro complémentaire dans ce
répertoire, la macro complémentaire va s'ajouter
tout seule à la liste des macros complémentaires
déjà présentes dans Outils / macro complémentaires.
Cependant pour qu'elle soit active dans ton classeur,
il te restera à la cocher.
Il t'est cependant loisible de choisir le répertoire
de ton choix pour accueuillir la macro complémentaire..
tu devras cependant à l'ouverture d'excel utiliser le
bouton parcourir de la fenêtre des macros complémentaires
pour retrouver et signifier à excel le chemin où tu l'as
enregistrée pour l'ajouter aux macros déjà existantes.
Pour que tes fonctions de ton fichier xla, soient aussi
disponible en VBA dans tes procédures, comme dernière étape,
tu ouvres VBE (visual basic editor), barres des menus / outils
/ références / et tu coches dans la liste, le
nom que tu as donné à ta macro complémentaire (pas le nom du
fichier mais le nom du projet VBA que tu as rebaptisé). Pour
cette dernière étape, elle soit être fait obligatoirement à
la main, il n'y a aucune façon prévue en VBA pour la cocher
dans la liste des références. Pour le développeur, c'est là
une différence majeur entre un Addin (xla) et une référence
(fichier de type dll, ocx ...)
Ainsi tu vas pouvoir appeler directement tous les macros et
les fonctions inscrites dans ce classeur comme s'ils appartenaient
au classeur actif. Cependant, Dans la fenêtre des macros que tu
peux ouvrir par la commande F8, elles ne sont pas visibles. Tu
dois les taper par leur nom.
Ouais ! Comment va pour retrouver le nom des fonctions ou
procédures, si tu les as oubliées :
Dans la fenêtre VBe, sélectionne ta macro complémentaires et
clique sur le bouton "explorateur d'objets", les procédures
de la macro xla vont être en caractère gras.
Voici une macro qui suit permet d'effectuer automatiquement
le chargement de la macro complémentaire et de la cocher
dans la fenêtre des macro complémentaires.( non pas dans la
fenêtre des références en vbe si tu dois l'utiliser.
'-------------------------------------------------
Private Sub Workbook_Open()
Dim Fichier As String
Fichier = "C:Documents and SettingsDenis" & _
"Application DataMicrosoftMacros complémentairesdenis.xla"
'Extraire seulement le nom du fichier de la chaîne de caractères
File = Right(Fichier, Len(Fichier) - InStrRev(Fichier, ""))
'Pour enlever l'extention du fichier
file = Left(file, Len(file) - 4)
'Cette ligne de code va ajouter la macro complémentaire
'à la liste des macros complémentaires du menu outils /
'macro complémentaires
Application.AddIns.Add Fichier
'cette ligne de code va cocher cette macro complémentaire
'dans la liste
Application.AddIns(File).Installed = True
End Sub
'-------------------------------------------------
P.S. Pour ce qui est de la gestion d'une barre d'outils,
tu pourras insérer le code dans ton fichier xla. La
création du code (exemple) existe déjà sur le site
de Frédéric Sigonneau.
Salutations!
"Caroline L." a écrit dans le message de news:
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Bonjour Caroline,
'-----CRÉATION DE LA MACRO COMPLÉMENTAIRE.......
Lorsque tu crées ton fichier qui va devenir
ta macro complémentaire,
A )
Dans VBE (visual basic editor) du classeur,
Rebaptise ton projetvba d'un nom qui soit
significatif au travail du classeur. Pour
cefaire, tu sélectionnes ton projetVba et
dans la fenêtre des propriétés, tu modifies
VBAProject pour "LeNomRetenu"
B ) Tu enregistres ton fichier comme macro
complémentaire (.xla)
C ) Tu fermes excel.
ENREGISTREMENT DE LA MACRO COMPLÉMENTAIRE...
Sous Windows Xp, lorsque tu sélectionnes comme
type de fichier, Macro complémentaire lors de
l'enregistrement de la macro complémentaire
cette dernière s'enregistre dans ce répertoire :
"C:Documents and SettingsDenisApplication Data
MicrosoftMacros complémentairesdenis.xla"
Si tu enregistres ta macro complémentaire dans ce
répertoire, la macro complémentaire va s'ajouter
tout seule à la liste des macros complémentaires
déjà présentes dans Outils / macro complémentaires.
Cependant pour qu'elle soit active dans ton classeur,
il te restera à la cocher.
Il t'est cependant loisible de choisir le répertoire
de ton choix pour accueuillir la macro complémentaire..
tu devras cependant à l'ouverture d'excel utiliser le
bouton parcourir de la fenêtre des macros complémentaires
pour retrouver et signifier à excel le chemin où tu l'as
enregistrée pour l'ajouter aux macros déjà existantes.
Pour que tes fonctions de ton fichier xla, soient aussi
disponible en VBA dans tes procédures, comme dernière étape,
tu ouvres VBE (visual basic editor), barres des menus / outils
/ références / et tu coches dans la liste, le
nom que tu as donné à ta macro complémentaire (pas le nom du
fichier mais le nom du projet VBA que tu as rebaptisé). Pour
cette dernière étape, elle soit être fait obligatoirement à
la main, il n'y a aucune façon prévue en VBA pour la cocher
dans la liste des références. Pour le développeur, c'est là
une différence majeur entre un Addin (xla) et une référence
(fichier de type dll, ocx ...)
Ainsi tu vas pouvoir appeler directement tous les macros et
les fonctions inscrites dans ce classeur comme s'ils appartenaient
au classeur actif. Cependant, Dans la fenêtre des macros que tu
peux ouvrir par la commande F8, elles ne sont pas visibles. Tu
dois les taper par leur nom.
Ouais ! Comment va pour retrouver le nom des fonctions ou
procédures, si tu les as oubliées :
Dans la fenêtre VBe, sélectionne ta macro complémentaires et
clique sur le bouton "explorateur d'objets", les procédures
de la macro xla vont être en caractère gras.
Voici une macro qui suit permet d'effectuer automatiquement
le chargement de la macro complémentaire et de la cocher
dans la fenêtre des macro complémentaires.( non pas dans la
fenêtre des références en vbe si tu dois l'utiliser.
'-------------------------------------------------
Private Sub Workbook_Open()
Dim Fichier As String
Fichier = "C:Documents and SettingsDenis" & _
"Application DataMicrosoftMacros complémentairesdenis.xla"
'Extraire seulement le nom du fichier de la chaîne de caractères
File = Right(Fichier, Len(Fichier) - InStrRev(Fichier, ""))
'Pour enlever l'extention du fichier
file = Left(file, Len(file) - 4)
'Cette ligne de code va ajouter la macro complémentaire
'à la liste des macros complémentaires du menu outils /
'macro complémentaires
Application.AddIns.Add Fichier
'cette ligne de code va cocher cette macro complémentaire
'dans la liste
Application.AddIns(File).Installed = True
End Sub
'-------------------------------------------------
P.S. Pour ce qui est de la gestion d'une barre d'outils,
tu pourras insérer le code dans ton fichier xla. La
création du code (exemple) existe déjà sur le site
de Frédéric Sigonneau.
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
eS3aRVnoFHA.3552@TK2MSFTNGP10.phx.gbl...
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
uoCVe7moFHA.3696@TK2MSFTNGP10.phx.gbl...
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
ehCpnsmoFHA.576@TK2MSFTNGP15.phx.gbl...
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Bonjour Caroline,
'-----CRÉATION DE LA MACRO COMPLÉMENTAIRE.......
Lorsque tu crées ton fichier qui va devenir
ta macro complémentaire,
A )
Dans VBE (visual basic editor) du classeur,
Rebaptise ton projetvba d'un nom qui soit
significatif au travail du classeur. Pour
cefaire, tu sélectionnes ton projetVba et
dans la fenêtre des propriétés, tu modifies
VBAProject pour "LeNomRetenu"
B ) Tu enregistres ton fichier comme macro
complémentaire (.xla)
C ) Tu fermes excel.
ENREGISTREMENT DE LA MACRO COMPLÉMENTAIRE...
Sous Windows Xp, lorsque tu sélectionnes comme
type de fichier, Macro complémentaire lors de
l'enregistrement de la macro complémentaire
cette dernière s'enregistre dans ce répertoire :
"C:Documents and SettingsDenisApplication Data
MicrosoftMacros complémentairesdenis.xla"
Si tu enregistres ta macro complémentaire dans ce
répertoire, la macro complémentaire va s'ajouter
tout seule à la liste des macros complémentaires
déjà présentes dans Outils / macro complémentaires.
Cependant pour qu'elle soit active dans ton classeur,
il te restera à la cocher.
Il t'est cependant loisible de choisir le répertoire
de ton choix pour accueuillir la macro complémentaire..
tu devras cependant à l'ouverture d'excel utiliser le
bouton parcourir de la fenêtre des macros complémentaires
pour retrouver et signifier à excel le chemin où tu l'as
enregistrée pour l'ajouter aux macros déjà existantes.
Pour que tes fonctions de ton fichier xla, soient aussi
disponible en VBA dans tes procédures, comme dernière étape,
tu ouvres VBE (visual basic editor), barres des menus / outils
/ références / et tu coches dans la liste, le
nom que tu as donné à ta macro complémentaire (pas le nom du
fichier mais le nom du projet VBA que tu as rebaptisé). Pour
cette dernière étape, elle soit être fait obligatoirement à
la main, il n'y a aucune façon prévue en VBA pour la cocher
dans la liste des références. Pour le développeur, c'est là
une différence majeur entre un Addin (xla) et une référence
(fichier de type dll, ocx ...)
Ainsi tu vas pouvoir appeler directement tous les macros et
les fonctions inscrites dans ce classeur comme s'ils appartenaient
au classeur actif. Cependant, Dans la fenêtre des macros que tu
peux ouvrir par la commande F8, elles ne sont pas visibles. Tu
dois les taper par leur nom.
Ouais ! Comment va pour retrouver le nom des fonctions ou
procédures, si tu les as oubliées :
Dans la fenêtre VBe, sélectionne ta macro complémentaires et
clique sur le bouton "explorateur d'objets", les procédures
de la macro xla vont être en caractère gras.
Voici une macro qui suit permet d'effectuer automatiquement
le chargement de la macro complémentaire et de la cocher
dans la fenêtre des macro complémentaires.( non pas dans la
fenêtre des références en vbe si tu dois l'utiliser.
'-------------------------------------------------
Private Sub Workbook_Open()
Dim Fichier As String
Fichier = "C:Documents and SettingsDenis" & _
"Application DataMicrosoftMacros complémentairesdenis.xla"
'Extraire seulement le nom du fichier de la chaîne de caractères
File = Right(Fichier, Len(Fichier) - InStrRev(Fichier, ""))
'Pour enlever l'extention du fichier
file = Left(file, Len(file) - 4)
'Cette ligne de code va ajouter la macro complémentaire
'à la liste des macros complémentaires du menu outils /
'macro complémentaires
Application.AddIns.Add Fichier
'cette ligne de code va cocher cette macro complémentaire
'dans la liste
Application.AddIns(File).Installed = True
End Sub
'-------------------------------------------------
P.S. Pour ce qui est de la gestion d'une barre d'outils,
tu pourras insérer le code dans ton fichier xla. La
création du code (exemple) existe déjà sur le site
de Frédéric Sigonneau.
Salutations!
"Caroline L." a écrit dans le message de news:
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils) et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers. Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Bonjour,
Si tu as VB6, ou que tu connais quelqu'un qui a VB6 ( ou un autre langage
compilé qui le permet), et qui est prêt à mettre la main à la pâte, tu
pourrais te (faire) faire un complément COM (COM add-in) pour Excel.
(En fait, un complément COM, c'est un composant ActiveX, fait et compilé
en
fonction d'une application particulière.)
P.S. Si tu v(p)eux poursuivre dans cette voie, il doit y avoir encore des
informations sur MSDN.
"Caroline L." a écrit dans le message de
news:Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliserpour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
je
neveux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils)
et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agitd'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créélors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
portel'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichierexcel avec des macros et une barre d'outils personnalisées (avec macros
à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure
assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
appliqueun fond rouge et police gras dans la cellule B5. Cette macro pourrait
être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeurefermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
quetu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
mêmesans ouvrir le fichier à partir duquel elle a été créée. Vous
comprenez
?
merci d'avance chers amis
Caroline
Bonjour,
Si tu as VB6, ou que tu connais quelqu'un qui a VB6 ( ou un autre langage
compilé qui le permet), et qui est prêt à mettre la main à la pâte, tu
pourrais te (faire) faire un complément COM (COM add-in) pour Excel.
(En fait, un complément COM, c'est un composant ActiveX, fait et compilé
en
fonction d'une application particulière.)
P.S. Si tu v(p)eux poursuivre dans cette voie, il doit y avoir encore des
informations sur MSDN.
"Caroline L." <caroland@videotron.ca> a écrit dans le message de
news:eS3aRVnoFHA.3552@TK2MSFTNGP10.phx.gbl...
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils)
et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros
à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure
assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait
être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
uoCVe7moFHA.3696@TK2MSFTNGP10.phx.gbl...
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
ehCpnsmoFHA.576@TK2MSFTNGP15.phx.gbl...
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous
comprenez
?
merci d'avance chers amis
Caroline
Bonjour,
Si tu as VB6, ou que tu connais quelqu'un qui a VB6 ( ou un autre langage
compilé qui le permet), et qui est prêt à mettre la main à la pâte, tu
pourrais te (faire) faire un complément COM (COM add-in) pour Excel.
(En fait, un complément COM, c'est un composant ActiveX, fait et compilé
en
fonction d'une application particulière.)
P.S. Si tu v(p)eux poursuivre dans cette voie, il doit y avoir encore des
informations sur MSDN.
"Caroline L." a écrit dans le message de
news:Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliserpour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
je
neveux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils)
et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agitd'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créélors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
portel'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichierexcel avec des macros et une barre d'outils personnalisées (avec macros
à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure
assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
appliqueun fond rouge et police gras dans la cellule B5. Cette macro pourrait
être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeurefermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
quetu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
mêmesans ouvrir le fichier à partir duquel elle a été créée. Vous
comprenez
?
merci d'avance chers amis
Caroline
Bonsoir Caroline,
MichDenis te l'a dit ce n'est pas possible!
En revanche tu peux placer une macro dans un fichier masqué ou dans ton
Perso.xls
personne ne verra de fichier s'ouvrir.
Mais ton perso n'étant pas le perso des autres , mieux vaudra sans doute
un
fichier.
Le fichier peut être placé dans xlstart ou xlouvrir selon la version
d'excel
Le principe :
tu ouvres un classeur
tu y crée une macro tu fermes vbe
tu l'enregistres dans xlstart sans le fermer.
Puis tu va dans le menu fenêtre: Masquer
Tu quittes
Excel te demande si tu veux enregistrer les modifications
tu dis oui.
Quand tu rouvres excel le fichier est ouvert mais ne se voit pas.
Pour le faire réapparaître
menu fenêtre afficher.
lSteph
"Caroline L." a écrit dans le message de news:Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils)
et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros
à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure
assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait
être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Bonsoir Caroline,
MichDenis te l'a dit ce n'est pas possible!
En revanche tu peux placer une macro dans un fichier masqué ou dans ton
Perso.xls
personne ne verra de fichier s'ouvrir.
Mais ton perso n'étant pas le perso des autres , mieux vaudra sans doute
un
fichier.
Le fichier peut être placé dans xlstart ou xlouvrir selon la version
d'excel
Le principe :
tu ouvres un classeur
tu y crée une macro tu fermes vbe
tu l'enregistres dans xlstart sans le fermer.
Puis tu va dans le menu fenêtre: Masquer
Tu quittes
Excel te demande si tu veux enregistrer les modifications
tu dis oui.
Quand tu rouvres excel le fichier est ouvert mais ne se voit pas.
Pour le faire réapparaître
menu fenêtre afficher.
lSteph
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
eS3aRVnoFHA.3552@TK2MSFTNGP10.phx.gbl...
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils)
et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros
à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure
assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait
être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
uoCVe7moFHA.3696@TK2MSFTNGP10.phx.gbl...
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de news:
ehCpnsmoFHA.576@TK2MSFTNGP15.phx.gbl...
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Bonsoir Caroline,
MichDenis te l'a dit ce n'est pas possible!
En revanche tu peux placer une macro dans un fichier masqué ou dans ton
Perso.xls
personne ne verra de fichier s'ouvrir.
Mais ton perso n'étant pas le perso des autres , mieux vaudra sans doute
un
fichier.
Le fichier peut être placé dans xlstart ou xlouvrir selon la version
d'excel
Le principe :
tu ouvres un classeur
tu y crée une macro tu fermes vbe
tu l'enregistres dans xlstart sans le fermer.
Puis tu va dans le menu fenêtre: Masquer
Tu quittes
Excel te demande si tu veux enregistrer les modifications
tu dis oui.
Quand tu rouvres excel le fichier est ouvert mais ne se voit pas.
Pour le faire réapparaître
menu fenêtre afficher.
lSteph
"Caroline L." a écrit dans le message de news:Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre d'outils)
et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec macros
à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure
assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier (et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait
être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de news:Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous comprenez
?
merci d'avance chers amis
Caroline
Merci pour l'idée mais non je ne connais personne qui a VB6
Bonsoir Clément,
Bonne soirée
Caroline
"ClémentMarcotte" a écrit dans le message
de
news: #Bonjour,
Si tu as VB6, ou que tu connais quelqu'un qui a VB6 ( ou un autre
langage
compilé qui le permet), et qui est prêt à mettre la main à la pâte, tu
pourrais te (faire) faire un complément COM (COM add-in) pour Excel.
(En fait, un complément COM, c'est un composant ActiveX, fait et compilé
enfonction d'une application particulière.)
P.S. Si tu v(p)eux poursuivre dans cette voie, il doit y avoir encore
des
informations sur MSDN.
"Caroline L." a écrit dans le message de
news:Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très
apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outilspersonnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliserpour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
jeneveux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre
d'outils)
etque la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjàessayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agitd'un projet VBA avec extension xla. J'ai supprimé le bouton que
j'avais
créélors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
portel'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichierexcel avec des macros et une barre d'outils personnalisées (avec
macros
àl'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrersous pour créer un nouveau fichier (il aura a faire cette procédure
assezsouvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier
(et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrirchaque fichier). J'avais attacher la barre d'outils au fichier mais
j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Parexemple, dans la barre d'outils, il pourrait y avoir une macro qui
appliqueun fond rouge et police gras dans la cellule B5. Cette macro pourrait
êtreappliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque
de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeurefermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans
un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au
lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet
"Feuille"
quetu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
nonde l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de
news:
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je
vais
affecter une macro mais je désire que cette macro puisse fonctionner
mêmesans ouvrir le fichier à partir duquel elle a été créée. Vous
comprenez?
merci d'avance chers amis
Caroline
Merci pour l'idée mais non je ne connais personne qui a VB6
Bonsoir Clément,
Bonne soirée
Caroline
"ClémentMarcotte" <clement.marcotte@sympatico.ca> a écrit dans le message
de
news: #wIiZYqoFHA.2956@TK2MSFTNGP10.phx.gbl...
Bonjour,
Si tu as VB6, ou que tu connais quelqu'un qui a VB6 ( ou un autre
langage
compilé qui le permet), et qui est prêt à mettre la main à la pâte, tu
pourrais te (faire) faire un complément COM (COM add-in) pour Excel.
(En fait, un complément COM, c'est un composant ActiveX, fait et compilé
en
fonction d'une application particulière.)
P.S. Si tu v(p)eux poursuivre dans cette voie, il doit y avoir encore
des
informations sur MSDN.
"Caroline L." <caroland@videotron.ca> a écrit dans le message de
news:eS3aRVnoFHA.3552@TK2MSFTNGP10.phx.gbl...
Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très
apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outils
personnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliser
pour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
je
ne
veux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre
d'outils)
et
que la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjà
essayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agit
d'un projet VBA avec extension xla. J'ai supprimé le bouton que
j'avais
créé
lors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
porte
l'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichier
excel avec des macros et une barre d'outils personnalisées (avec
macros
à
l'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrer
sous pour créer un nouveau fichier (il aura a faire cette procédure
assez
souvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,
les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier
(et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrir
chaque fichier). J'avais attacher la barre d'outils au fichier mais
j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Par
exemple, dans la barre d'outils, il pourrait y avoir une macro qui
applique
un fond rouge et police gras dans la cellule B5. Cette macro pourrait
être
appliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque
de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
uoCVe7moFHA.3696@TK2MSFTNGP10.phx.gbl...
Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeure
fermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.
************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans
un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au
lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet
"Feuille"
que
tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." <caroland@videotron.ca> a écrit dans le message de
news:
ehCpnsmoFHA.576@TK2MSFTNGP15.phx.gbl...
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je
vais
affecter une macro mais je désire que cette macro puisse fonctionner
même
sans ouvrir le fichier à partir duquel elle a été créée. Vous
comprenez
?
merci d'avance chers amis
Caroline
Merci pour l'idée mais non je ne connais personne qui a VB6
Bonsoir Clément,
Bonne soirée
Caroline
"ClémentMarcotte" a écrit dans le message
de
news: #Bonjour,
Si tu as VB6, ou que tu connais quelqu'un qui a VB6 ( ou un autre
langage
compilé qui le permet), et qui est prêt à mettre la main à la pâte, tu
pourrais te (faire) faire un complément COM (COM add-in) pour Excel.
(En fait, un complément COM, c'est un composant ActiveX, fait et compilé
enfonction d'une application particulière.)
P.S. Si tu v(p)eux poursuivre dans cette voie, il doit y avoir encore
des
informations sur MSDN.
"Caroline L." a écrit dans le message de
news:Bonjour michdenis,
un gros merci pour tes explications très précises, c'est très
apprécié.
Je vais préciser ma question (ou mon idée). J'ai créer une barre
d'outilspersonnalisée. J'y ai inséré des boutons avec macros. Je voudrais
l'utiliserpour plusieurs fichiers (ces fichiers ont la même mise en forme). Mais
jeneveux pas ouvrir ou faire ouvrir par macro le fichier.
J'ai déjà lu (ici sur le forum ou sur exelabo) que l'on peut avoir en
permanence un bouton macro (placé en haut, à côté d'une barre
d'outils)
etque la macro fonctionne dans tous nos fichiers excel. Je l'avais même
déjàessayé mais je ne me souviens plus comment le refaire. Je crois qu'il
s'agitd'un projet VBA avec extension xla. J'ai supprimé le bouton que
j'avais
créélors de mes tests mais j'ai toujours un projet VBA dans ALT-F11 et il
portel'extension xla.
Alors, vois-tu ce à quoi je pense ?
----------------------------------------------------------------------
Je peux aussi t'expliquer le pourquoi de ma question. J'ai créer un
fichierexcel avec des macros et une barre d'outils personnalisées (avec
macros
àl'intérieur). Lorsque ce fichier est ouvert, l'usager fait un
Enregistrersous pour créer un nouveau fichier (il aura a faire cette procédure
assezsouvent). Alors, tout est beau mais lorsqu'il ré-ouvre le premier
fichier,les macros ne fonctionnent pas, Excel demande d'ouvrir le 2e fichier
(et
cela, je veux éviter, d'autant plus qu'il y a un mot de passe pour
ouvrirchaque fichier). J'avais attacher la barre d'outils au fichier mais
j'ai
fait des tests sans attacher et c'est pareil.
Donc, je voudrais avoir la barre d'outils "indépendante" des fichiers.
Parexemple, dans la barre d'outils, il pourrait y avoir une macro qui
appliqueun fond rouge et police gras dans la cellule B5. Cette macro pourrait
êtreappliqué dans TOUS mes fichiers excel.
Doit-on enregistré la macro dans un fichier particulier ? Bibiothèque
de
modèles ou de macros ?
Merci encore
Caroline
"michdenis" a écrit dans le message de news:Bonjour Caroline,
Il est impossible d'exécuter une macro d'un classeur si ce dernier
demeurefermer.
Voici quelques commandes qui peuvent être utile à cet effet :
Exécuter une macro d'un autre classeur ... ces lignes de commande
ouvriront le classeur si il est fermé.************************
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans
un
module standard :Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro
C) Si la macro appelée est dans un module feuille du classeur au
lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet
"Feuille"
quetu retrouves dans la fenêtre VBE (visual basic editor).Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et
nonde l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
************************
Salutations!
"Caroline L." a écrit dans le message de
news:
Bonjour,
je cherche comment avoir des boutons dans la barre d'outils où je
vais
affecter une macro mais je désire que cette macro puisse fonctionner
mêmesans ouvrir le fichier à partir duquel elle a été créée. Vous
comprenez?
merci d'avance chers amis
Caroline