Enlever les notes d'une cellule et valeur ordre croissant
#1
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: Enlever les notes d'une cellule et valeur ordre croissant
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 24-01-2023 19h14

Bonjour Razmo, le Forum,

 

Tout d'abord, afin que les visiteurs intéressés puissent comprendre, le présent sujet est la suite de cette précédente DISCUSSION.

 

  • Concernant le problème de Commentaires de cellule inopportuns

Tu as plusieurs solutions pour régler cette situation et j'en vois deux particulièrement :
 

- La première serait d'échanger ta ligne de code :

MATRIX_DTC_H_Datas.Copy Destination:=DIFF_DTC_H.Offset(1, 0)

Par les 2 suivantes :

MATRIX_DTC_H_Datas.Copy
DIFF_DTC_H.Offset(1, 0).PasteSpecial Paste:=xlPasteValues

Ça permet de ne recopier QUE les valeurs de cellules.

 

 

- La deuxième serait de laisser ton code tel quel, et supprimer les commentaires après collage 

en ajoutant simplement la ligne suivante :

DIFF_DTC_H.EntireColumn.ClearComments

 

  • Concernant le problème de Tri de tes lignes (entières) en fonction de la colonne 1 

Tu y étais presque !

​Tu devrais pouvoir insérer ceci, en fin de procédure :

With DIFF_WS.UsedRange.Offset(2, 0)
    .Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End With

J'espère que ça pourra t'aider.

Bien cordialement,

Edité par myDearFriend! le 24/01/2023 19:30:19

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Enlever les notes d'une cellule et valeur ordre croissant
#3
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 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes