Récupérer dynamiquement des données d'autres fichiers Excel fermé
MaxOslo
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai deux fichiers, le premier (Fichier1) fait office de base de données et détient des informations qui serviront à alimenter le second (Fichier2).
Le "Fichier1" est stocké dans un dossier nommé "Test". Dans le dossier "Test", il y a pas mal de fichiers excel de type (Fichier1) et servent tous à renseigner ce "Fichier2". Il y a un seul "Fichier2" et beaucoup de "Fichier1". Pour repérer les données d'un fichier voulu, les "Fichier1" commencent tous par une série de 9 chiffres qui leur sont propres.
Ainsi, j'aimerais coder en VBA un programme me permettant de :
1- Récupérer la série de chiffres qui vient d'être ajoutée dans la colonne B du Fichier2
2- En fonction de celle-ci, aller ouvrir le dossier Test
3- Trouver dans ce dossier un excel dont le nom commence par la série de chiffres relevée auparavant
4- Récupérer certaines des valeurs (admettons colonne B, C, D du Fichier1 pour les inclure en C, D, E du Fichier2)
5- Refermer le Fichier de type 1 ouvert
J'espère que mon texte est assez clair.
J'ai hâte de vous lire, merci d'avance.
Max
J'ai deux fichiers, le premier (Fichier1) fait office de base de données et détient des informations qui serviront à alimenter le second (Fichier2).
Le "Fichier1" est stocké dans un dossier nommé "Test". Dans le dossier "Test", il y a pas mal de fichiers excel de type (Fichier1) et servent tous à renseigner ce "Fichier2". Il y a un seul "Fichier2" et beaucoup de "Fichier1". Pour repérer les données d'un fichier voulu, les "Fichier1" commencent tous par une série de 9 chiffres qui leur sont propres.
Ainsi, j'aimerais coder en VBA un programme me permettant de :
1- Récupérer la série de chiffres qui vient d'être ajoutée dans la colonne B du Fichier2
2- En fonction de celle-ci, aller ouvrir le dossier Test
3- Trouver dans ce dossier un excel dont le nom commence par la série de chiffres relevée auparavant
4- Récupérer certaines des valeurs (admettons colonne B, C, D du Fichier1 pour les inclure en C, D, E du Fichier2)
5- Refermer le Fichier de type 1 ouvert
J'espère que mon texte est assez clair.
J'ai hâte de vous lire, merci d'avance.
Max
A voir également:
- Récupérer dynamiquement des données d'autres fichiers Excel fermé
- Trier des données excel - Guide
- Liste déroulante excel - Guide
- Recuperer message whatsapp supprimé - Guide
- Renommer des fichiers en masse - Guide
- Word et excel gratuit - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
si je voulais coder cela en VBA, je chercherais un exemple, et je l'adapterais.
n'as-tu trouvé aucun exemple?
si je voulais coder cela en VBA, je chercherais un exemple, et je l'adapterais.
n'as-tu trouvé aucun exemple?
la personne cherchait des infos d'un autre fichier en fonction d'une région choisi dans son fichier principal
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
quand tu écris "les "Fichier1" commencent tous par une série de 9 chiffres qui leur sont propres", veux-tu dire que chaque fichier1 commence par une série unique de 9 chiffres, qui lui est propre?
donc que tu ne cherches, chaque fois, qu'un seul fichier?
donc que tu ne cherches, chaque fois, qu'un seul fichier?
'Déclaration des variables
Dim MyPath As String, monFichier As String, reg As String
'Chemin du fichier
MyPath = "C:\Ton chemin\"
'Récupère la région
reg = Sheets(1).Range("A1")
monFichier = Dir(MyPath & "\*.xlsx", vbNormal)
'Boucle pour trouver le fichier exact
Do While monFichier <> ""
If InStr(monFichier, reg) > 0 Then
Fichier_reg = MyPath & "\" & monFichier
End If
monFichier = Dir
Loop
"cela ne semble pas fonctionner": message d'erreur, ... ?
je me demande si il n'y a pas un \ en trop, je ne sais pas si cela gène.
examine la valeur de cherchons
si tu connais la série à trouver, inutile de faire une boucle: