Copier coller une range d'une feuille à une autre

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

Bonsoir,

un essai : plageDateDepart.Copy Destination:=.Range(.Cells(numRows,1), .Cells(numRows + 4,7))

@ bientôt

LouReeD

Hello LouReeD,

Merci du retour, j'ai essayé mais ta solution mais cela a donné un code d'erreur ( erreur de l'application ) ce qui est une avancé en soit

Je vais essayer de réécrire le code pour tenter, si tu as d'autres propositions je reste preneuse :)

Lucy

Le code est à mettre sur une seule ligne...

Je dis ça car sur mon tel elle est sur deux...

Sinon je ne voit pas où se trouve l'erreur... Et je n'ai pas accès à Excel.

@ bientôt

LouReeD

Yep j'ai remplacé ta ligne la ou j'avais utilisé la range pour l'ensemble d'arrivé

et c'est bien sortis en une seule ligne ;)

je pense que c'est un problème avec la plage de départ, je vais ressayer autrement

Merci en tous cas

Lucy

Rechercher des sujets similaires à "copier coller range feuille"