Recopier des données d'un fichier d'un autre répertoire

Bonjour,

Je souhaite recopier des données du Fichier2 qui est dans le répertoire D:\Excel\Mes-programmes dans le Fichier1 qui est sur mon bureau.

Voir ci-joint les 2 Fichiers, et le code qui ne fonctionne pas :

Workbooks("D:\Excel\Mes-programmes\Fichier2.xlsm").Worksheets(1).Cells(i, 1).Value

Pouvez-vous m'aider ?

Merci d'avance !

Dadams

11fichier1.xlsm (17.46 Ko)
10fichier2.xlsm (8.66 Ko)

Salut,

En admettant que tes deux fichiers soient placés dans le même dossier, tu peux utiliser ce code :

Sub essai()
Dim i As Double

Application.ScreenUpdating = False

Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "Fichier2.xlsm"

For i = 1 To 20

    ThisWorkbook.Worksheets("Feuil1").Cells(i, 1) = ActiveWorkbook.Worksheets("Feuil1").Cells(i, 1)

Next

ActiveWorkbook.Close

End Sub

En l’état, le Fichier2 peut être fermé ou ouvert au lancement de la macro, mais il sera toujours refermé à la fin.

Je n'ai pas compris pourquoi ton code ne fonctionne pas.

Je n'ai pas compris non plus pourquoi passer chaque ligne en revue plutôt que de copier toutes les données en un bloc, mais je présume qu'il s'agit plus d'un essai que d'autre chose.

Cordialement.

5fichier1-v1.xlsm (19.41 Ko)

Bonjour Yvouille,

Oui, il s'agit juste d'un petit essai pour illustre mon problème.

Mais justement les 2 fichiers ne peuvent pas être dans le même répertoire, c'est bien là le problème…

Et je voudrais éviter de le copier / coller dans le même répertoire, car dans l'application finale, ça fait beaucoup de fichier...

En tout cas merci quand même

Dadams

Mais justement les 2 fichiers ne peuvent pas être dans le même répertoire, c'est bien là le problème…

Alors il faut modifier cette ligne en conséquence :

Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "Fichier2.xlsm"

Probablement

Workbooks.Open Filename:="D:\Excel\Mes-programmes\Fichier2.xlsm"

Bon dimanche

Bonjour à tous,

Je veux reformuler ma question.

Je souhaite recopier des données du Fichier2 qui est dans le répertoire D:\Excel\Mes-programmes vers le Fichier1 qui est sur mon bureau. Ces 2 fichiers ne peuvent pas être dans le même répertoire

Et ces 2 fichiers sont déjà ouverts au lancement de la macro, cliquer sur le bouton "lancer la macro" du Fichier1.

Et ces fichiers restent ouverts après exécution de la macro.

Je pensais que le code simple ci-dessous fonctionnerais, mais ce n'est pas le cas :

Workbooks("Fichier1.xlsm").Worksheets(1).Cells(i, 1).Value = 
Workbooks("D:\Excel\Mes-programmes\Fichier2.xlsm").Worksheets(1).Cells(i, 1).Value

C'est l'expression de l'emplacement du Fichier2 qui pose problème et que je ne sais pas comment coder.

Cet exemple est juste pour pouvoir recopier 10 données d'un fichier situé dans un autre répertoire.

Ci-joint les fichiers.

2fichier1.xlsm (17.65 Ko)
4fichier2.xlsm (8.66 Ko)

En attente de votre aide.

Salutations,

Dadams

Salut,

MERCI à toi d'avoir posé la question

Pour connaitre l'adresse d'un fichier, tu peux effectuer un clic-droit dessus et choisir "Propriétés".

J'ai placé un ficher sur mon bureau et j'y ai chercher l'adresse de l'EMPLACEMENT selon l'image ci-dessous :

capture

Tu peux copier cette adresse et l'utiliser pour adapter ta macro (en remplacement de l'adresse que j'avais pensé te proposer). Le même code est utilisable que le fichier soit déjà ouvert ou non.

Mais sinon, ma macro répond exactement à ta demande

Pour empêcher que le fichier ne se referme, neutralise la ligne ActiveWorkbook.Close

Ca t'aide ? Sinon je veux bien encore tenter de t'aider.

Bonjour Yvouille,

Effectivement ça fonctionne.

Mais j'ai trouvé encore plus simple : quand les 2 fichiers sont ouverts, ce n'est pas la peine d'indiquer le chemin, Excel le trouve tout seul !

Voir le code ci-dessous qui fonctionne :

Workbooks("Fichier1.xlsm").Worksheets(1).Cells(i, 1).Value = Workbooks("Fichier2.xlsm").Worksheets(1).Cells(i, 1)

Encore Merci et à une prochaine !

Dadams

Rechercher des sujets similaires à "recopier donnees fichier repertoire"