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").ValueJ'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 SubPetit 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").ValueJe 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