Récupérer dynamiquement des données d'autres fichiers Excel fermé

Fermé
MaxOslo - 20 mai 2021 à 09:35
yg_be Messages postés 22841 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 juin 2024 - 20 mai 2021 à 10:50
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
A voir également:

4 réponses

yg_be Messages postés 22841 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 juin 2024 1 473
20 mai 2021 à 10:11
bonjour,
si je voulais coder cela en VBA, je chercherais un exemple, et je l'adapterais.
n'as-tu trouvé aucun exemple?
0
J'avais trouvé ça mais visiblement cela ne semble pas fonctionner..

'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
0
yg_be Messages postés 22841 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 juin 2024 1 473 > MaxOslo
20 mai 2021 à 10:35
merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

"cela ne semble pas fonctionner": message d'erreur, ... ?
0
MaxOslo > yg_be Messages postés 22841 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 juin 2024
20 mai 2021 à 10:43
non du tout, les variables prennent des valeurs mais pas celles voulus et la boucle est sautée
0
yg_be Messages postés 22841 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 juin 2024 1 473 > MaxOslo
20 mai 2021 à 10:50
à quel moment cela diverge?
je me demande si il n'y a pas un \ en trop, je ne sais pas si cela gène.
dim cherchons as string
cherchons=MyPath & "\*.xlsx"
monFichier = Dir(cherchons, vbNormal)

examine la valeur de cherchons

si tu connais la série à trouver, inutile de faire une boucle:
dim cherchons as string, serie as string
cherchons=MyPath & serie & "*.xlsx"
monFichier = Dir(cherchons, vbNormal)
0
la personne cherchait des infos d'un autre fichier en fonction d'une région choisi dans son fichier principal
0
yg_be Messages postés 22841 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 juin 2024 1 473
20 mai 2021 à 10:39
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?
0
tout à fait je vais chercher à plusieurs reprises (à chaque ajout dans le fichier principal) 1 seul fichier dans le dossier TEST
0