OVH Cloud OVH Cloud

lancer macro dans autres fichiers fermes

12 réponses
Avatar
gilles
bonjour =E0 tous
depuis un fichier je voudrais activer des macros plac=E9es=20
dans plusieurs fichiers ferm=E9s
est-ce possible?
sinon peut-on le faire apr=E8s ouv de ces fichiers?
j'ai cru lire une r=E9ponse la-dessus, mais ou?
merci aux dieux qui daigneront m'=E9clairer la dessus
=E0+
gilles

2 réponses

1 2
Avatar
isabelle
bonjour Le LeSteph,

la cote ' est au cas ou il y aurait un espace dans le nom du fichier.

isabelle


Sans les ' cela marche aussi
A+
LeSteph
-----Message d'origine-----
Bonjour aux 2 nouveaux dieux du VBA
....et merci, car il y a un progrès certain, puisque VBA
ne

me jette plus
Les 2 propositions fonctionnent nickel
Et STEPH peut être content:
son code fonctionne(avec les petites modifs suggérées) et
il ne va plus m'avoir à ses basques!
Seul truc à ajouter en plus:
la ligne pour sauvegarder avant close
je vous joins le code finalisé:

Sub Appelm_microbidon_TOTO()
Application.ScreenUpdating = False
Workbooks.Open "D:TOTO.xls"
Application.Run ("'TOTO.xls'!copiebidon") 'ici laptest
nom

d'une macro
Workbooks("TOTO.xls").Close False
End Sub

C'est interessant car depuis _ ou 10 fichiers j'importe
des données du fichier appelant, avec le code ci-dessous
Sub test()
GetValuesFromAClosedWorkbook "D:virginQSE", "fiche info
affairemacro boucle.xls", "Fiche", "B8:I60"
End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, _
fName As String, sName, cellRange As String)
'Ron De Bruin, mpep
'le paramètre 'cellRange' doit désigner
'*une* plage de cellules *contigües*
With ActiveSheet.Range(cellRange)
..Formula = "='" & fPath & "[" & fName & "]" & sName
& "'!" & cellRange
..Value = .Value
End With
End Sub
Merci encore à STEPH, ALAIN, et AMONIMOUS qui gagne à
être

connu
à+
gilles
-----Message d'origine-----
Bonjour

Essaye comme ça :
Application.Run ("'ZAZ_essai recuperer donnee
secours.xls'!copiebidon")


Alain CROS


"gilles" a écrit
dans le message de news: 4b2e01c490e0$bd4c3a20

$
Résultat:
le fichier appelé est bien ouvert, mais j'ai toujours le
message:
erreur 1004
imposible de trouver la macro ZAZ_essai recuperer donnee
secours.xls!copiebidon
la ligne qui bug est
Application.Run ("ZAZ_essai recuperer donnee secours.xls!
copiebidon")
est-ce ma syntaxe qui est concernée?


.

.







Avatar
LeSteph
Merci Isabelle,
D'accord mais avec le nom à rallonge cela ne passait pas non plus
alors j'ai essayé un nom de fichier simple
comme je le préconisais déjà à Gilles dans un de mes premiers posts
dans mon premier message et là no problemo avec ou sans cotes ,
mais en fait pour plus de clarté tu as raison car j'avais mis la seconde
cote
à l'issue de la chaîne complète .
Néanmoins des noms suffisament explicites mais pas trop longs,
sans blancs ou signes ou ponctuation permettent d'éviter ces inconvénients
et les trucs qui fâchent certaines versions.
Sinon j'ai déjà rajouté un Le devant Steph pour pas confondre avec Steph
donc ne me fais pas non plus s'il te plait un nom à rallonge.

' lol '

;-)
("'H:Stephane dit LeSteph et même parfois!LeSteph Anonymous'")

"isabelle" a écrit dans le message de
news:
bonjour Le LeSteph,

la cote ' est au cas ou il y aurait un espace dans le nom du fichier.

isabelle


Sans les ' cela marche aussi
A+
LeSteph
-----Message d'origine-----
Bonjour aux 2 nouveaux dieux du VBA
....et merci, car il y a un progrès certain, puisque VBA
ne

me jette plus
Les 2 propositions fonctionnent nickel
Et STEPH peut être content:
son code fonctionne(avec les petites modifs suggérées) et
il ne va plus m'avoir à ses basques!
Seul truc à ajouter en plus:
la ligne pour sauvegarder avant close
je vous joins le code finalisé:

Sub Appelm_microbidon_TOTO()
Application.ScreenUpdating = False
Workbooks.Open "D:TOTO.xls"
Application.Run ("'TOTO.xls'!copiebidon") 'ici laptest
nom

d'une macro
Workbooks("TOTO.xls").Close False
End Sub

C'est interessant car depuis _ ou 10 fichiers j'importe
des données du fichier appelant, avec le code ci-dessous
Sub test()
GetValuesFromAClosedWorkbook "D:virginQSE", "fiche info
affairemacro boucle.xls", "Fiche", "B8:I60"
End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, _
fName As String, sName, cellRange As String)
'Ron De Bruin, mpep
'le paramètre 'cellRange' doit désigner
'*une* plage de cellules *contigües*
With ActiveSheet.Range(cellRange)
..Formula = "='" & fPath & "[" & fName & "]" & sName
& "'!" & cellRange
..Value = .Value
End With
End Sub
Merci encore à STEPH, ALAIN, et AMONIMOUS qui gagne à
être

connu
à+
gilles
-----Message d'origine-----
Bonjour

Essaye comme ça :
Application.Run ("'ZAZ_essai recuperer donnee
secours.xls'!copiebidon")


Alain CROS


"gilles" a écrit
dans le message de news: 4b2e01c490e0$bd4c3a20

$
Résultat:
le fichier appelé est bien ouvert, mais j'ai toujours le
message:
erreur 1004
imposible de trouver la macro ZAZ_essai recuperer donnee
secours.xls!copiebidon
la ligne qui bug est
Application.Run ("ZAZ_essai recuperer donnee secours.xls!
copiebidon")
est-ce ma syntaxe qui est concernée?


.

.









1 2