Copier des données d'un classeur vers un autre sans l'ouvrir

Bonjour à tous.

Je cherche sans success, depuis plusieurs jours comment simplifier une action répétitive de copier coller de tableau excel à partir d'un Fichier A vers un Fichier B.

Mon action consiste à renseigner des valeurs dans 4 tableaux du fichier B à partir de 4 tableaux présent dans un onglet du Fichier A (je vais avoir 750 Fichiers A à charger).

Mon idée consisterai à lancer un programme vba de copie des tableaux d'un fichier A dès que je ferai simplement glisser dans un une fenetre list view présente sur mon fichier B.

Auriez vous une piste pour m'aider à avancer?

Merci à vous de m'avoir lu.

Bonjour Brand,

Si tu ne dépose pas de fichier je ne peux pas te proposer un code adapter à ta problématique.

Mais j'ai déjà effectuer ce genre d'opération sur mes fichier.

A grandement adapter :

Une première idée de comment parcourir tout les fichier d'un dossier

Sub consolider()

Dim chemin As String
Dim MesFichiers As String

chemin = "Lien du premier fichier"

MesFichiers = Dir("Chemin premier fichier") 'Chemin premier fichier A ex(Dir("W:\6. Supply Chain\5 - Approvisionnement\9- Dossier perso\Test Synthese surface exercice\" & codeNavire & "\" & typeCabine & "\" & MesDossiers & "\*.xlsm"))

Do While MesFichiers <> "" 'Pour tout les Fichier
MesFichiers = Dir 'Prochain fichier
compteur = compteur + 1 'on compte le nombre de fichier
Loop

compteur = compteur - 1 'on incrémente de -1 car le tableau démarre à 0 donc pour 10 planning on à tableau = 9 car 10 lignes
ReDim tableau(compteur, 0) 'on redimensionne le tableau pour pouvoir stocker un chemin de fichier par ligne
'ReInitialisation des compteurs
compteur = 0

Do While MesFichiers <> "" 'Pour chaque Fichier A
tableau(i, 0) = MesFichiers 'on écrit le chemin de tout les fichiers dans le tableau
MesFichiers = Dir 'Fichier suivant
i = i + 1 'on inccrémente le compteur i de 1
Loop

While i > 0 'Pour chaque Fichier A
    Range("Plage ou on colle").Select
    Selection.Consolidate Sources:=Array( _
        "'Chemin + plage à consolider Fichier A", _ 'On utilise la variable i pour parcourir le tableau est ainsi ouvrir tout les fichier A 
        "'Chemin + plage à consolider Fichier B"), _ 
        Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=True

    'Exemple de chemin + plage 'Exemple('W:\6. Supply Chain\5 - Approvisionnement\9- Dossier perso\LFR\Test Synthese surface exercice\" & codeNavire & "\" & typeCabine & "\" & MesDossiers & "\[" & tableau(n, 0) & "]Surface total'!R8C5:R8C105"))
    'Je consolide toujours sur la même ligne mais il est possible d'utiliser des variable pour changer la plage ou on copie les valeurs 
        i = i - 1 'Permet de boucler pour le nombre exacte de fichier
        n = n + 1 'Permet de parcourir le tableau() contenant les chemins de fichier
Wend

L'avantage de la fonction consolider c'est qu'en modifiant ton fichier A (Source), ton fichier B va changer en conséquence (un lien vas être créer entre les 2)

Tu peux aussi faire la somme de la cellule A1 des 750 fichier A dans la cellule A1 du Fichier B si tu le souhaite

Si tu ne comprend rien à ce que j'ai fait regarde du coté de la fonction consolider et ou une boucle pour parcourir (pas ouvrir) tout les fichier d'un dossier et faire tes copier coller.

Je te souhaite bon chance dans ton projet !

Rechercher des sujets similaires à "copier donnees classeur ouvrir"