XL 2016 [résolu] Fusionner 2 fichiers excel en duplicant une partie seulement des informations

Allde

XLDnaute Nouveau
Bonjour à tous,

J’écris sur ce forum parce que je suis un petit peu perdue et bloquée sur ma macro.
En effet, je souhaite faire une macro qui me permette de joindre des informations dans un seul et même fichier excel tout en les copiant un certain nombre de fois.

J'ai en ma possession 2 fichiers avec des distances.pour l'un je dois seulement copier coller la plage de données et pour la deuxième je dois copier chaque ligne le même nombre de fois qu'il y a de ligne dans la prmière plage de données.

Le ficher « Distance 1 » contient des informations que je souhaite simplement copier tel quel un certain nombre de fois dans un nouveau fichier excel. J’ai réussi à trouver une macro adéquate. Il doit y avoir une méthode plus simple mais celle-ci semble fonctionner. (J’utilise une simple boucle for)

Cependant concernant le copier-coller des données concernant le fichier « distance 2 » je rencontre un problème. En effet, je souhaite copier chaque ligne (les unes après les autres) dans le nouveau fichier excel mais en les collant un certain nombre de fois.
Le résultat voulu se trouve dans le document excel résultat voulu.

J’ai créé une macro qui malheureusement ne fonctionne pas..

Macro rédigée

Sub Data_after_ferry()
For Each Range In Workbooks("Distance 2"). Range("A3:E15")

Windows("07 - PL-Swinouscie to PL - Distances ZIP2.xlsx").Activate
Rows.Select
Selection.Copy
Windows("résultat voulu").Activate
Range("F3").Select
Sheets("Norway -> Poland").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Range("F3").Select
Selection.End(xlDown).Select
Range("F102:J102").Select
Range(Selection, Selection.End(xlUp)).Select
Range("F3:J102").Select
ActiveSheet.Paste

Next cellule
End Sub



J’ai du mal à savoir s’il vaut mieux utiliser une macro for each … next ou bien une macro loop.
Je continue de travailler dessus mais si quelqu'un pouvait potenttiellement m'aider ce serait vraiment bien. Juste pour information je travail sur un fichier excel allemand, mais je ne pense pas que ca influe sur le vocabulaire macro

J’espère avoir été suffisamment claire afin que vous puissiez m'aider,

Dans tous les cas je vous remercie par avance pour votre aide.

Bonne fin de journée
 

Pièces jointes

  • résultat voulu.xlsx
    11.7 KB · Affichages: 23
  • distance 1.xlsx
    9 KB · Affichages: 26
  • Distance 2.xlsx
    9.2 KB · Affichages: 22

Hieu

XLDnaute Impliqué
Salut,

J'suis reparti de zéro :
VB:
Sub mlk()
Application.ScreenUpdating = False
Set wf = WorksheetFunction
init = ThisWorkbook.Name
fic1 = Range("n5")
fic2 = Range("n6")
chemin = ThisWorkbook.Path & "\"
Workbooks.Open (chemin & fic1)
der_1 = wf.CountA(Range("a:a"))
nb_1 = wf.CountA(Range("a:a")) - 2

Range("a3:e" & der_1).Copy


Workbooks.Open (chemin & fic2)
nb_2 = wf.CountA(Range("a:a")) - 2

Workbooks(init).Activate
For i = 0 To nb_2 - 1
Range("a3").Offset(i * nb_1, 0).PasteSpecial
Next i

For i = 1 To nb_2
Workbooks(fic2).Activate
Range("a2:e2").Offset(i, 0).Copy
Workbooks(init).Activate
For j = 1 To nb_1
    Range("f3").Offset(k, 0).PasteSpecial
    k = k + 1
Next j
Next i

Workbooks(fic1).Close False
Workbooks(fic2).Close False
End Sub

J'ai fait l'hypothèse que les fichiers d'entrées étaient au meme endroit.
 

Pièces jointes

  • resultat_voulu_v0.xlsm
    28.8 KB · Affichages: 29

Discussions similaires

Statistiques des forums

Discussions
315 103
Messages
2 116 249
Membres
112 695
dernier inscrit
ben44115