Forums XLPages

Tous les messages (Razmo)

« 1 2
Re: Enlever les notes d'une cellule et valeur ordre croissant
#11
Débutant XLPages

Inscription: 23/12/2022
De Paris

Messages: 16

Système d'exploitation:
pc
Version Excel utilisée:
365fr
Posté le : 25-01-2023 09h44

Bonjour l'ami !

 

Merci d'avoir pris le temps de m'expliquer et de me répondre, ça fonctionne comme je le souhaitais thanks ^^

 

Cordialement,

 

Razmo:)

Hors Ligne
Rapport   Haut 

Enlever les notes d'une cellule et valeur ordre croissant
#12
Débutant XLPages

Inscription: 23/12/2022
De Paris

Messages: 16

Système d'exploitation:
pc
Version Excel utilisée:
365fr
Posté le : 24-01-2023 16h04

Bonjour tout le monde !

 

J'ai deux problèmes que j'essaye de résoudre.

Ma macro permet de copier des colonnes d'un fichier vers un autre fichier et elle permet de faire autre chose mais qui sont pas important pour mon prob.

 

1) Lorsque je copie colle mes colonnes, au lieu de copier et coller seulement les valeurs de la cellule, ça me copie aussi la note de la cellule :

Voila lorsque je colle ma colonne dans l'autre fichier y'a aussi les notes qui sont colles et je ne veux pas... j'essaye d'utiliser le PasteSpecial Paste:=xlPasteValues mais je sais pas si c'est la bonne méthode (le code sera mit à la fin).

 

2) Pour mon 2eme prob (qui est simple à résoudre normalement mais je bloque), lorsque je copie et colle cette colonne en particulier : 

Je souhaite que les valeurs soient dans l'ordre croissant, j'ai essayé d'utiliser Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo mais ça ne fonctionne pas.

 

Je laisse le code ci-dessous : 

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 As Range, MATRIX_DETECT_H As Range, MATRIX_STATE_H As Range, MATRIX_DTC_H As Range
Dim MATRIX_LABEL As Range, MATRIX_DETECT As Range, MATRIX_STATE As Range, MATRIX_DTC As Range
Dim DIFF_DETECT_H As Range, DIFF_DETECT As Range, PREV_DIAG As Range, DIFF_LABEL_H As Range, DIFF_DTC_H As Range, DIFF_STATE_H As Range
Dim XML_FILE As String, XML_LABEL As String, XML_DETECT As String, PCODE As String, 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

Dim MATRIX_LABEL_H_Datas As Range, MATRIX_DETECT_H_Datas As Range, MATRIX_STATE_H_Datas As Range, MATRIX_DTC_H_Datas As Range
Dim nbLignDatas&


On Error GoTo ErrorHandler
'Application.ScreenUpdating = False
'Chemin = ThisWorkbook.Path

Sheets("Diff").UsedRange.Offset(2, 0).ClearContents

'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
With MATRIX_WS
    Set MATRIX_LABEL_H = .Range("A6").EntireRow.Find("Supplier Label")
    Set MATRIX_DETECT_H = .Range("A6").EntireRow.Find("Detection Class")
    Set MATRIX_STATE_H = .Range("A6").EntireRow.Find("State of the activation of the strategy")
    Set MATRIX_DTC_H = .Range("A6").EntireRow.Find("Data Trouble Code (DTC)")
    
    'set Datas range for these columns
    nbLignDatas = .Cells(.Rows.Count, MATRIX_LABEL_H.Column).End(xlUp).Row - 6          'car entête en ligne 6
    Set MATRIX_LABEL_H_Datas = MATRIX_LABEL_H.Resize(nbLignDatas, 1).Offset(1, 0)
    nbLignDatas = .Cells(.Rows.Count, MATRIX_DETECT_H.Column).End(xlUp).Row - 6         'car entête en ligne 6
    Set MATRIX_DETECT_H_Datas = MATRIX_DETECT_H.Resize(nbLignDatas, 1).Offset(1, 0)
    nbLignDatas = .Cells(.Rows.Count, MATRIX_STATE_H.Column).End(xlUp).Row - 6          'car entête en ligne 6
    Set MATRIX_STATE_H_Datas = MATRIX_STATE_H.Resize(nbLignDatas, 1).Offset(1, 0)
    nbLignDatas = .Cells(.Rows.Count, MATRIX_DTC_H.Column).End(xlUp).Row - 6            'car entête en ligne 6
    Set MATRIX_DTC_H_Datas = MATRIX_DTC_H.Resize(nbLignDatas, 1).Offset(1, 0)
End With

'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
MATRIX_LABEL_H_Datas.Copy Destination:=DIFF_LABEL_H.Offset(1, 0)
MATRIX_DETECT_H_Datas.Copy Destination:=DIFF_DETECT_H.Offset(1, 0)
MATRIX_STATE_H_Datas.Copy Destination:=DIFF_STATE_H.Offset(1, 0)
MATRIX_DTC_H_Datas.Copy Destination:=DIFF_DTC_H.Offset(1, 0)

DIFF_DETECT_H.Resize(nbLignDatas, 1).Offset(1, 1).Value = "Missing item in XML"

Merci par avance ! 

Hors Ligne
Rapport   Haut 

Re: Effacer le contenu de la feuille Excel
#13
Débutant XLPages

Inscription: 23/12/2022
De Paris

Messages: 16

Système d'exploitation:
pc
Version Excel utilisée:
365fr
Posté le : 06-01-2023 10h04

Bonjour à toi ^^,

 

Merci pour ta réponse, en soit ça me permet de tout effacer pour que je re teste derrière si jamais je souhaite changer quelque chose et donc me permettre à ne pas le faire manuellement :)

 

 

 

Hors Ligne
Rapport   Haut 

Effacer le contenu de la feuille Excel
#14
Débutant XLPages

Inscription: 23/12/2022
De Paris

Messages: 16

Système d'exploitation:
pc
Version Excel utilisée:
365fr
Posté le : 05-01-2023 14h13

Bonjour à tous,

 

J'ai une macro qui permet de copier coller des colonnes d'un fichier situer dans un classeur vers un autre fichier situé dans un autre classeur. Ensuite elle execute du code pour boucler dans un fichier XML etc.

Le souci dans tout ça c'est que lorsque mes colonnes sont copier et coller et que toutes la macro a fini l'execution et que si je souhaite re faire un test pour n'importe quelle raison, je suis obligé d'effacer toutes les données de mon fichier DiffClasseur l'onglet Diff à la main.

 

Je souhaite donc si possible effacer le contenu de la feuille à la fin de la macro si on veut réexecuter.

(Donc effacer toutes les valeurs à partir de la ligne 3 de mon onglet Diff).

 

Je vous laisse les fichiers en piece jointe, merci par avance !

 

Pièce jointe:
zip test_vba.zip   [ Taille: 295.05 Ko - Téléchargements: 81 ]
Hors Ligne
Rapport   Haut 

Re: Copier coller colonnes d'un fichier à un autre
#15
Débutant XLPages

Inscription: 23/12/2022
De Paris

Messages: 16

Système d'exploitation:
pc
Version Excel utilisée:
365fr
Posté le : 23-12-2022 16h05

Bonjour myDearFriend,

 

Ca marche comme je le souhaitais je te remercie pour ça !

 

Concernant la variable D7 je l'ai mis mais j'avais oublié de l'enlever car elle me servait à rien c'etait pour tester quelque chose. 

De plus pour les déclarations de variables je pensais que c'etait correct de définir de cette maniere car on m'avait toujours dit de faire comme ça surprise, merci de m'avoir corriger !

 

Pour le reste, ton explication etait très comprehensible je te remercie pour ça, juste je comprends pas très bien la partie With/end With que t'as mis.

Hors Ligne
Rapport   Haut 

Copier coller colonnes d'un fichier à un autre
#16
Débutant XLPages

Inscription: 23/12/2022
De Paris

Messages: 16

Système d'exploitation:
pc
Version Excel utilisée:
365fr
Posté le : 23-12-2022 10h55

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 !

Pièce jointe:
zip test_vba.zip   [ Taille: 294.85 Ko - Téléchargements: 84 ]
Edité par Razmo le 23/12/2022 16:10:03
Hors Ligne
Rapport   Haut 

« 1 2