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

macro externe

6 réponses
Avatar
FabriceR
Bonjour a tous,

J'aimerais depuis un classeur actif, executer une macro d'un autre classeur
pour cela je commence comme ca

Application.Run "\\Serveurdisk\recherche\Recherche\Nom Dossier \01
Process\Classeur7.xls!test"
Workbooks("Classeur7.xls").Close

Le probleme c'est que j'ai un message d'erreur apparement dû aux espaces
dans le chemin. (j'ai fait le test sur un chemin sans espace et ca marche)
J'ai donc essayé ca

Application.Run """\\Serveurdisk\recherche\Recherche\Nom Dossier \01
Process\Classeur7.xls""!test"
Workbooks("Classeur7.xls").Close

avec les doubles "" mais ca ne marche pas non plus.
Quelqu'un saurait il me dire ce que je ne fait pas bien svp ??

question subsidiaire : et changer le chemin ecrit en dur pour le mettre en
dynamique, c'est compliqué ?

Merci d'avance

6 réponses

Avatar
michdenis
Si tu as des espaces, tu ajoutes une apostrophe

MaMacro = "'" & Lechemin & LeFichier.xls & "'!NomDeLaMacro"
Application.Run C
Ceci est bon si ta macro est dans un module standard.
Si ta macro est dans un module Feuille, tu dois l'inclure
dans ton code
MaMacro = "'" & Lechemin & LeFichier.xls & "'!Feuil1.NomDeLaMacro"
Application.Run C

"FabriceR" a écrit dans le message de groupe de discussion
:
Bonjour a tous,

J'aimerais depuis un classeur actif, executer une macro d'un autre classeur
pour cela je commence comme ca

Application.Run "ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls!test"
Workbooks("Classeur7.xls").Close

Le probleme c'est que j'ai un message d'erreur apparement dû aux espaces
dans le chemin. (j'ai fait le test sur un chemin sans espace et ca marche)
J'ai donc essayé ca

Application.Run """ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls""!test"
Workbooks("Classeur7.xls").Close

avec les doubles "" mais ca ne marche pas non plus.
Quelqu'un saurait il me dire ce que je ne fait pas bien svp ??

question subsidiaire : et changer le chemin ecrit en dur pour le mettre en
dynamique, c'est compliqué ?

Merci d'avance
Avatar
michdenis
évidemment vous aurez compris ...

Application.Run MaMacro

;-)



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

Si tu as des espaces, tu ajoutes une apostrophe

MaMacro = "'" & Lechemin & LeFichier.xls & "'!NomDeLaMacro"
Application.Run C
Ceci est bon si ta macro est dans un module standard.
Si ta macro est dans un module Feuille, tu dois l'inclure
dans ton code
MaMacro = "'" & Lechemin & LeFichier.xls & "'!Feuil1.NomDeLaMacro"
Application.Run C

"FabriceR" a écrit dans le message de groupe de discussion
:
Bonjour a tous,

J'aimerais depuis un classeur actif, executer une macro d'un autre classeur
pour cela je commence comme ca

Application.Run "ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls!test"
Workbooks("Classeur7.xls").Close

Le probleme c'est que j'ai un message d'erreur apparement dû aux espaces
dans le chemin. (j'ai fait le test sur un chemin sans espace et ca marche)
J'ai donc essayé ca

Application.Run """ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls""!test"
Workbooks("Classeur7.xls").Close

avec les doubles "" mais ca ne marche pas non plus.
Quelqu'un saurait il me dire ce que je ne fait pas bien svp ??

question subsidiaire : et changer le chemin ecrit en dur pour le mettre en
dynamique, c'est compliqué ?

Merci d'avance
Avatar
FabriceR
Ca ne marche pas
j'ai écrit comme ca
Application.Run """&ServeurdiskrechercheRecherchenom Dossier1
Process&Classeur7.xls&""!test"

et ca ne marche pas mieux, je me suis trompé non ??


"michdenis" a écrit dans le message de news:

évidemment vous aurez compris ...

Application.Run MaMacro

;-)



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

Si tu as des espaces, tu ajoutes une apostrophe

MaMacro = "'" & Lechemin & LeFichier.xls & "'!NomDeLaMacro"
Application.Run C
Ceci est bon si ta macro est dans un module standard.
Si ta macro est dans un module Feuille, tu dois l'inclure
dans ton code
MaMacro = "'" & Lechemin & LeFichier.xls & "'!Feuil1.NomDeLaMacro"
Application.Run C

"FabriceR" a écrit dans le message de
groupe de discussion
:
Bonjour a tous,

J'aimerais depuis un classeur actif, executer une macro d'un autre
classeur
pour cela je commence comme ca

Application.Run "ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls!test"
Workbooks("Classeur7.xls").Close

Le probleme c'est que j'ai un message d'erreur apparement dû aux espaces
dans le chemin. (j'ai fait le test sur un chemin sans espace et ca marche)
J'ai donc essayé ca

Application.Run """ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls""!test"
Workbooks("Classeur7.xls").Close

avec les doubles "" mais ca ne marche pas non plus.
Quelqu'un saurait il me dire ce que je ne fait pas bien svp ??

question subsidiaire : et changer le chemin ecrit en dur pour le mettre en
dynamique, c'est compliqué ?

Merci d'avance



Avatar
Mgr T. Banni
bonjour
michel a dit d'ajouter une apostrophe
tu dois donc avoir un guillemet, une apostrophe, un guillemet ("'" soit 5
barres alors que , si je lis bien, toi tu as 6 barres)
me trompe-je comme tu t'es trompjé ou bien...?
Mgr T.B.

"FabriceR" a écrit dans le message de news:

Ca ne marche pas
j'ai écrit comme ca
Application.Run """&ServeurdiskrechercheRecherchenom Dossier1
Process&Classeur7.xls&""!test"

et ca ne marche pas mieux, je me suis trompé non ??


"michdenis" a écrit dans le message de news:

évidemment vous aurez compris ...

Application.Run MaMacro

;-)



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

Si tu as des espaces, tu ajoutes une apostrophe

MaMacro = "'" & Lechemin & LeFichier.xls & "'!NomDeLaMacro"
Application.Run C
Ceci est bon si ta macro est dans un module standard.
Si ta macro est dans un module Feuille, tu dois l'inclure
dans ton code
MaMacro = "'" & Lechemin & LeFichier.xls & "'!Feuil1.NomDeLaMacro"
Application.Run C

"FabriceR" a écrit dans le message de
groupe de discussion
:
Bonjour a tous,

J'aimerais depuis un classeur actif, executer une macro d'un autre
classeur
pour cela je commence comme ca

Application.Run "ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls!test"
Workbooks("Classeur7.xls").Close

Le probleme c'est que j'ai un message d'erreur apparement dû aux espaces
dans le chemin. (j'ai fait le test sur un chemin sans espace et ca
marche)
J'ai donc essayé ca

Application.Run """ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls""!test"
Workbooks("Classeur7.xls").Close

avec les doubles "" mais ca ne marche pas non plus.
Quelqu'un saurait il me dire ce que je ne fait pas bien svp ??

question subsidiaire : et changer le chemin ecrit en dur pour le mettre
en
dynamique, c'est compliqué ?

Merci d'avance







Avatar
michdenis
Exécuter une macro d'un autre classeur:

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 suivante, 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"



"FabriceR" a écrit dans le message de groupe de discussion
:
Ca ne marche pas
j'ai écrit comme ca
Application.Run """&ServeurdiskrechercheRecherchenom Dossier1
Process&Classeur7.xls&""!test"

et ca ne marche pas mieux, je me suis trompé non ??


"michdenis" a écrit dans le message de news:

évidemment vous aurez compris ...

Application.Run MaMacro

;-)



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

Si tu as des espaces, tu ajoutes une apostrophe

MaMacro = "'" & Lechemin & LeFichier.xls & "'!NomDeLaMacro"
Application.Run C
Ceci est bon si ta macro est dans un module standard.
Si ta macro est dans un module Feuille, tu dois l'inclure
dans ton code
MaMacro = "'" & Lechemin & LeFichier.xls & "'!Feuil1.NomDeLaMacro"
Application.Run C

"FabriceR" a écrit dans le message de
groupe de discussion
:
Bonjour a tous,

J'aimerais depuis un classeur actif, executer une macro d'un autre
classeur
pour cela je commence comme ca

Application.Run "ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls!test"
Workbooks("Classeur7.xls").Close

Le probleme c'est que j'ai un message d'erreur apparement dû aux espaces
dans le chemin. (j'ai fait le test sur un chemin sans espace et ca marche)
J'ai donc essayé ca

Application.Run """ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls""!test"
Workbooks("Classeur7.xls").Close

avec les doubles "" mais ca ne marche pas non plus.
Quelqu'un saurait il me dire ce que je ne fait pas bien svp ??

question subsidiaire : et changer le chemin ecrit en dur pour le mettre en
dynamique, c'est compliqué ?

Merci d'avance



Avatar
FabriceR
Ok merci bcp, j'en ai encore bavé malgré tout mais j'ai réussi à comprendre.

Encore merci



"michdenis" a écrit dans le message de news:

Exécuter une macro d'un autre classeur:

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 suivante, 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"



"FabriceR" a écrit dans le message de
groupe de discussion
:
Ca ne marche pas
j'ai écrit comme ca
Application.Run """&ServeurdiskrechercheRecherchenom Dossier1
Process&Classeur7.xls&""!test"

et ca ne marche pas mieux, je me suis trompé non ??


"michdenis" a écrit dans le message de news:

évidemment vous aurez compris ...

Application.Run MaMacro

;-)



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

Si tu as des espaces, tu ajoutes une apostrophe

MaMacro = "'" & Lechemin & LeFichier.xls & "'!NomDeLaMacro"
Application.Run C
Ceci est bon si ta macro est dans un module standard.
Si ta macro est dans un module Feuille, tu dois l'inclure
dans ton code
MaMacro = "'" & Lechemin & LeFichier.xls & "'!Feuil1.NomDeLaMacro"
Application.Run C

"FabriceR" a écrit dans le message de
groupe de discussion
:
Bonjour a tous,

J'aimerais depuis un classeur actif, executer une macro d'un autre
classeur
pour cela je commence comme ca

Application.Run "ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls!test"
Workbooks("Classeur7.xls").Close

Le probleme c'est que j'ai un message d'erreur apparement dû aux espaces
dans le chemin. (j'ai fait le test sur un chemin sans espace et ca
marche)
J'ai donc essayé ca

Application.Run """ServeurdiskrechercheRechercheNom Dossier 1
ProcessClasseur7.xls""!test"
Workbooks("Classeur7.xls").Close

avec les doubles "" mais ca ne marche pas non plus.
Quelqu'un saurait il me dire ce que je ne fait pas bien svp ??

question subsidiaire : et changer le chemin ecrit en dur pour le mettre
en
dynamique, c'est compliqué ?

Merci d'avance