Envoyé par
sat478
Bonjour, je possède un fichier excel dit principal. A partir de ce fichier principal je souhaite lancer un ou plusieurs fichiers excels secondaires et lancer automatiquement une sub qui se trouve dans ce fichier secondaire.
Mais mon code me fournit l'erreur d'exécution 1004 : erreur définie par l'application ou par l'objet.
Quelle est la bonne méthode pour faire ce que je souhaite ? Est ce réalisable ?
D'avance merci
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Sub Traitement()
'Je suis dans mon fichier principal
Dim I As Integer
Dim NomFichier
If ActiveSheet.Range("B2").Value = "" Then
MsgBox ("Aucun fichier de lieux de mesure n'a été sélectionné")
Else
derniereligne = ActiveSheet.Range("B65365").End(xlUp).Row
'Pour chacunes des localisations de fichiers :
For I = 2 To derniereligne
NomFichier = ActiveSheet.Cells(I, 2).Value
Lancement = Chr(34) & NomFichier & "!" & "Module5.ProcédureGénérale" & Chr(34)
Application.Run (Lancement)
Next I
End If
End Sub |
Je précise que ActiveSheet.Cells(I, 2).Value contient l'adresse du fichier sur le disque sous la forme : E:\Toto\Dévelop\ExcelFile\Test1.xls
Bonjour,
Question : Est-ce que tes fichiers sont déjà ouverts ? si non il faut d'abord les ouvrir pour pouvoir utiliser les macros contenues dans celui-ci.
Question : Est-ce que la routine que tu veux exécuter est bien définie en tant que Public ? si non, tu ne pourras pas l'atteindre.
Correction : Dans le cas d'une ouverture centralisée des fichiers Excel (=tous dans la même application Excel) le code de lancement de l'application est incorrect ...
Dans l'exemple que tu nous donnes, cela revient à avoir la ligne de commande suivante :
Application.Run "E:\Toto\Dévelop\ExcelFile\Test1.xls!Module5.ProcédureGénérale"
mais le code devrait être :
Application.Run "Test1.xls!ProcédureGénérale"
+
Théo
Partager