Hello la team,
J'espere que vous allez bien!
Objectif de la macro : 2 types de fichiers, un fichier source contenant les données et plusieurs fichiers receveurs de données.
L'idée est de distribuer 5 lignes de donnée dans chaque fichier correspondant ( fichierSource -> ticker1, et ainsi de suite ).
Les fichiers tickers contiennent 4 des 5 lignes des données( donc il y a seulement, une ligne en plus qui doit se rajouter à chaque fois, une contrainte)
Mon msg'erreur la méthode range de l'objet worksheet a échoué, il doit y avoir une erreur la spécification des feuilles d'arrivé et de départs mais j'ai plus le recul nécessaire la
Pouvez vous regarder ça ?
Vous trouverez ci joint le code et des fichiers tests, si vous avez d'autres remarques n'hésitez pas, merci bien !!!!! :)
Sub testing()
Dim FilePath As String, Ticker As String
Dim wbTicker As Workbook, wbSourceFile As Workbook
Dim wsTicker As Worksheet, wsSourceFile As Worksheet
Dim wsData As Worksheet
Dim i As Integer
Dim plageDateDepart As Range
i = 1
Set wbSourceFile = Workbooks("fichierSourceTest.xlsm")
Set wsData = wbSourceFile.Sheets("data")
Set wsTickers = wbSourceFile.Sheets("Tickers")
While wsTickers.Range("A" & i) <> ""
Ticker = wsTickers.Range("A" & i).Value
FilePath = "C:" & Ticker & ".xlsx"
Set wbTicker = Workbooks.Open(FilePath)
Set wsTicker = wbTicker.Sheets("Feuil1")
Set plageTickerDepart = wsData.Range("A:A")
Set tickerNameDepart = plageTickerDepart.Find(Ticker, SearchOrder:=xlByRows)
Set plageDateDepart = tickerNameDepart.Resize(5, 7).Offset(-1, 1)
Set dateRefDepart = tickerNameDepart.Resize(1, 1).Offset(, 1)
RefDateD = dateRefDepart.Value
Set plageDateArrive = wsTicker.Range("A:A")
Set dateRefArrive = plageDateArrive.Find(RefDateD, SearchOrder:=xlByRows)
Set dateRefArriveAdr = dateRefArrive.Resize(1, 1)
numRowsA = dateRefArriveAdr.Row
With wsTicker
plageDateDepart.Copy .Range(.Range("A" & numRows), .Range("G" & numRows + 4))
End With
wbTicker.Close SaveChanges:=True
i = i + 1
Wend
End Sub
Lucy