Transférer donnée d'un classeur A vers B à partir d'un classeur C

Bonjour,

Petite explication de ce que je veux faire

Je travaille sur mon classeur C et lorsque je souhaite le fermer. J'ouvre 2 classeurs xls et je souhaiterais copier du classeur DM0018* ( MyFile ) pour aller coller sur le classeur "STOCK".

Le problème survient à cette ligne, Erreur d'exécution : 9 - L'indice est en dehors des dimensions du tableau

Workbooks("STOCK").Sheets(1).Range("D25").Value = Workbooks(MyFile).Sheets(1).Range("A38").Value

J'ai essayé plusieurs styles de code, rien n'y fait je n'arrive pas à exécuter un copier/coller de mon classeur MyFile vers STOCK

J'ai l'impression que ce n'est pas possible de copier/coller entre 2 classeurs si l'un des 2 n'est pas l'exécuteur de cette action...

C'est pour cela que je viens vous solliciter, est-ce quelqu'un comprend d'ou vient l'erreur ? XD

Merci pour vos réponses

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim MyFile As String
MyFile = Dir("/Users/Vallet/Documents/Travail/LabDUHOT/00_GESTION/00_DATA/02_DATA_CSP/01_EN_COURS/DM0018*")
If MyFile <> "" Then
Workbooks.Open FileName:="/Users/Vallet/Documents/Travail/LabDUHOT/00_GESTION/00_DATA/02_DATA_CSP/01_EN_COURS/" & MyFile & ""
Else
MsgBox "Fichier introuvable"
Exit Sub
End If

Workbooks.Open FileName:="/Users/Vallet/Documents/Travail/LabDUHOT/00_GESTION/STOCK.xlsx"

Dim a As Range

Workbooks(MyFile).Activate
Set a = Sheets(1).Cells.Find("     Total Article 00PWT100FR", lookat:=xlWhole)

If Not a Is Nothing Then MsgBox a.Address(0, 0)

Workbooks("STOCK").Sheets(1).Range("D25").Value = Workbooks(MyFile).Sheets(1).Range("A38").Value

End Sub

Petit Update, n'arrivant pas à transférer du classeur A vers B directement, j'ai utilisé mon classeur C de passerelle pour me faciliter la tache. Je reste preneur si quelqu'un sait comment faire directement de A vers B :)

Il me reste un dernier détails pour finaliser ma macro, si on peut m'aider la dessus maintenant :D

Je me retrouve avec a.Address(0, 0) et b.Address(0, 0) qui sont trouvé par rapport à

        Set a = Sheets(1).Cells.Find("     Total Article 00PWT100FR", lookat:=xlWhole)
        Set b = Sheets(1).Cells.Find("     Total Article 00PWTDSPFR", lookat:=xlWhole)

Mais je ne sais pas comment les utiliser. Dans n'importe quels cas, ils me ressortiront une valeur de "A..."(le numéro de la ligne ou il a trouvé Total Article... ).

Pour que je puisse l'intégrer après dans ma ligne de code, je doit changer la variable de A à F ( exemple : A28 > F28 )

Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("W6").Value = Workbooks(MyFile).Sheets(1).Range("F38").Value

Je ne sais pas comment manipuler a.Address(0, 0) pour obtenir le résultat que je souhaite, si quelqu'un aurait quelques explications ?

Je vous remercie pour votre aide

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim fichiertexte1 As Variant
Dim MyFile As Variant
Dim FichierDeplace As Variant

Dim a As Range
Dim b As Range

    MyFile = Dir("/Users/Vallet/Documents/Travail/LabDUHOT/00_GESTION/00_DATA/02_DATA_CSP/01_EN_COURS/DM0018*")

    If MyFile <> "" Then

        Workbooks.Open FileName:="/Users/Vallet/Documents/Travail/LabDUHOT/00_GESTION/00_DATA/02_DATA_CSP/01_EN_COURS/" & MyFile & ""
        fichiertexte1 = "/Users/Vallet/Documents/Travail/LabDUHOT/00_GESTION/00_DATA/02_DATA_CSP/01_EN_COURS/" & MyFile & ""
        FichierDeplace = "/Users/Vallet/Documents/Travail/LabDUHOT/00_GESTION/00_DATA/02_DATA_CSP/00_ARCHIVE/04_DM0018/" & MyFile & ""

        Workbooks(MyFile).Activate
        Set a = Sheets(1).Cells.Find("     Total Article 00PWT100FR", lookat:=xlWhole)
        Set b = Sheets(1).Cells.Find("     Total Article 00PWTDSPFR", lookat:=xlWhole)

        If Not a Is Nothing Then

            Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("X6").Value = Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("W6").Value - Workbooks(MyFile).Sheets(1).Range("F38").Value
            Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("W6").Value = Workbooks(MyFile).Sheets(1).Range("F38").Value

            Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("X7").Value = Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("W7").Value - Workbooks(MyFile).Sheets(1).Range("F42").Value
            Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("W7").Value = Workbooks(MyFile).Sheets(1).Range("F42").Value

            Name fichiertexte1 As FichierDeplace
            ActiveWorkbook.Close

        Else

            MsgBox "Fichier érronée vérifier manuellement"
            Exit Sub

        End If

    Else

        MsgBox "Aucun Fichier DM0018 dispo"

    End If

    Workbooks.Open FileName:="/Users/Vallet/Documents/Travail/LabDUHOT/00_GESTION/STOCK.xlsx"

    Workbooks("STOCK.xlsx").Sheets(1).Range("B6:G18").Value = Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("N3:S15").Value
    Workbooks("STOCK.xlsx").Sheets(1).Range("B22:E26").Value = Workbooks("00_Gestion_Amazon.xlsm").Sheets(1).Range("U3:X7").Value

    Workbooks("STOCK.xlsx").Save
    ActiveWorkbook.SaveCopyAs "/Users/Vallet/OneDrive/STOCK.xlsx"
    ActiveWorkbook.Close

    Workbooks("00_Gestion_Amazon.xlsm").Save

End Sub
Rechercher des sujets similaires à "transferer donnee classeur partir"