Je cherche à récupérer les données de fichiers tous construits pareils, dont les noms sont village1 , village2, village3 etc... Je souhaiterai mettre par la suite ces données dans le fichier où je suis en train d'écrire la macro.
Je tiens un début, qui marche:
Re : Fonction ExecuteExcel4Macro pour récupérer des données dans fichiers fermés
Bonsoir lizanne828,
Chez moi, ça fonctionne avec la syntaxe dont tu dis qu'elle est mauvaise (à condition de faire précéder et suivre chaque '&' d'une espace)
Je dois aussi ajouter l'extension (mais si tu dis que chez toi ça fonctionne sans, c'est lié aux options d'affichage de l'Explorateur, sans doute)
[Edit:] en attendant ton retour et pour être complet, le même résultat peut-être obtenu via la consolidation de données (peut-être un peu fastidieux si tu as de nombreux fichiers)
On peut également créer cette première formule:
- la recopier vers le bas jusqu'à obtenir le n° du dernier village
- sélectionner la plage, la copier et faire un collage spécial > Valeurs
- sur le résultat, Données > Convertir > Type délimité > Terminer ... chez moi, les formules se calculent à ce moment!
Re : Fonction ExecuteExcel4Macro pour récupérer des données dans fichiers fermés
En effet, en fait ça marche, si je mets le bon nombre de fichiers dans ma boucle, par exemple j'ai 4 fichiers:
Sub boucle_fichiers()
Dim i As Integer
For i = 1 To 4
Sheets("Feuil1").Range(Cells(2, i), Cells(2, i)).Value = ExecuteExcel4Macro("'F:\Essais de macros fichiers\[village" & i & "]feuil1'!R3C5")
Next i
End Sub
Mais ma syntaxe effectivement est bonne, je ne me faisais pas du tout confiance
Par contre, aucun message d'erreur seulement si je sais jusqu'à quelle valeur peut prendre i. Y aurait-il du coup un moyen de définir i en lui disant For i=1 To x, avec x étant le nombre de fichiers "village" de mon dossier? (quel code définirait ce nombre?)
Re : Fonction ExecuteExcel4Macro pour récupérer des données dans fichiers fermés
Re,
Je ne sais pas si ce n'est pas inutilement compliqué
Les lignes suivantes permettent de compter les fichiers en un emplacement précis (cet emplacement a changé entre tes 2 messages??), dont le nom commence par "village":
VB:
Sub test()
chemin = "F:\Essais de macros fichiers\"
f = Dir(chemin & "village*")
Do While f <> ""
cpt = cpt + 1
f = Dir
Loop
End Sub
Re : Fonction ExecuteExcel4Macro pour récupérer des données dans fichiers fermés
Re²,
Sur base de ce qui précède, il me semble que ceci serait déjà plus simple:
VB:
Sub test()
chemin = "F:\Essais de macros fichiers\"
f = Dir(chemin & "village*")
lig = 2
Do While f <> ""
ActiveSheet.Cells(lig, 15).Formula = "='" & chemin & "[" & f & "]Feuil1'!H20"
lig = lig + 1
f = Dir
Loop
End Sub
Mais, comme disait l'autre: "c'est vous qui voyez!"