Rapport de message :*
 

Copier coller colonnes d'un fichier à un autre

Titre du sujet : Copier coller colonnes d'un fichier à un autre
par Razmo le 23/12/2022 10:55:48

Bonjour tout le monde !

 

J'ai une macro qui permet de copier coller des colonnes d'un fichier situé dans un classeur à un autre fichier situer dans un autre classeur, ensuite il exécute le reste du code de la macro (la suite de la macro n'est pas importante car tout fonctionne).

 

J'ai un problème au niveau des copier coller.. je souhaite copier coller les colonnes : Supplier label (colonne D), Date Trouble Code (DTC) (colonne E), State of the activation of the strategy (colonne k) et enfin Detection class (colonne W) du fichier Matrix qui se situe dans le classeur MatrixDiag, et je souhaite coller tout ça vers le fichier Diff dans les colonnes A, C, D et E (qui ont les mêmes noms de colonnes que l'autre fichier) qui se situe dans le classeur DiffClasseur.

 

Le souci c'est que la macro me demande quel fichier je souhaite ouvrir, ensuite je l'ouvre et hop il plante en disant qu'un objet est manquant des qu'il arrive au niveau des copier coller des colonnes (ci-dessous la partie de code ou je me concentre).

''''''''''''''''''''''''''''''''''''''''''''''''
'Main procedure to check Diag Matrix vs XML file
''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub DiagMatrixCheck()

Dim MATRIX_WB As Workbook
Dim MATRIX_WS As Worksheet
Dim DIFF_WS As Worksheet
Dim DIFF_WB As Workbook
Dim MATRIX_LABEL_H, MATRIX_DETECT_H, MATRIX_STATE_H, MATRIX_DTC_H As Range
Dim MATRIX_LABEL, MATRIX_DETECT, MATRIX_STATE, MATRIX_DTC, D7 As Range
Dim DIFF_DETECT_H, DIFF_DETECT, PREV_DIAG, DIFF_LABEL_H, DIFF_DTC_H, DIFF_STATE_H As Range
Dim XML_FILE, XML_LABEL, XML_DETECT, PCODE, MATRIX_FILE As String
Dim XDOC As DOMDocument60
Dim SHORT_NAME, LONG_NAME, V_NAME, INSTANCE As Object
Dim i As Integer
Dim DebugText As String

On Error GoTo ErrorHandler
Application.ScreenUpdating = False

'Chemin = ThisWorkbook.Path

'Open Excel Diag Matrix file
MATRIX_FILE = Application.GetOpenFilename(FileFilter:="Excel File (*.xls*), *.xls*", Title:="Open Excel File")
Set MATRIX_WB = Workbooks.Open(Filename:=MATRIX_FILE, ReadOnly:=False)
'Set MATRIX_WB = Application.Workbooks.Open(Chemin & "\MatrixDiag.xlsm")
Set MATRIX_WS = MATRIX_WB.Sheets("Matrix")

Set DIFF_WB = ThisWorkbook
Set DIFF_WS = DIFF_WB.Sheets("Diff")

'Set the header for every used column of the matrix
Set MATRIX_LABEL_H = MATRIX_WS.Range("A6").EntireRow.Find("Supplier Label")
Set MATRIX_DETECT_H = MATRIX_WS.Range("A6").EntireRow.Find("Detection Class")
Set MATRIX_STATE_H = MATRIX_WS.Range("A6").EntireRow.Find("State of the activation of the strategy")
Set MATRIX_DTC_H = MATRIX_WS.Range("A6").EntireRow.Find("Data Trouble Code (DTC)")

'Define variables for Diff tab
Set DIFF_DETECT_H = DIFF_WS.Range("A2").EntireRow.Find("Detection Class")
Set DIFF_LABEL_H = DIFF_WS.Range("A2").EntireRow.Find("Supplier Label")
Set DIFF_DTC_H = DIFF_WS.Range("A2").EntireRow.Find("DTC code")
Set DIFF_STATE_H = DIFF_WS.Range("A2").EntireRow.Find("Activation state")

'Copy and paste column Matrix to Diff
Workbooks("MATRIX_WB").Sheets("MATRIX_WS").MATRIX_LABEL_H.Copy
Workbooks("DIFF_WB").Sheets("DIFF_WS").DIFF_LABEL_H.Paste

Workbooks("MATRIX_WB").Sheets("MATRIX_WS").MATRIX_DETECT_H.Copy
Workbooks("DIFF_WB").Sheets("DIFF_WS").DIFF_DETECT_H.Paste

Workbooks("MATRIX_WB").Sheets("MATRIX_WS").MATRIX_STATE_H.Copy
Workbooks("DIFF_WB").Sheets("DIFF_WS").DIFF_STATE_H.Paste

Workbooks("MATRIX_WB").Sheets("MATRIX_WS").MATRIX_DTC_H.Copy
Workbooks("DIFF_WB").Sheets("DIFF_WS").DIFF_DTC_H.Paste

La partie qui suit le code ci-dessus est l'ouverture du fichier xml etc (pas important pour mon prob).

 

Je vous laisse les fichiers ci-dessous, concernant la macro elle demande d'ouvrir un premier classeur qui est MatrixDiag et ensuite d'ouvrir le fichier xml.

 

Merci par avance !