Re: Supprimer les espaces d'une cellule |
Titre du sujet : Re: Supprimer les espaces d'une cellule par Razmo le 27/01/2023 19:12:39 [quote] Razmo a écrit : Bonsoir MyDearFriend et le forum,
Oui tout a bien été déclaré au depart.
Lorsque je met en commentaire cette partie de code (qui permet d'enlever les espaces) : Set MaPlage = DIFF_WS.UsedRange.Columns(DIFF_DTC_H.column) For Each MaCellule In MaPlage.Cells 'supprimer les espaces MaCellule.Value = Trim(MaCellule.Value) Next MaCellule Le programme fonctionne bien (malgré que les espaces soient toujours présent). En faisant un debogage "pas à pas détaillé" j'ai remarqué que le programme s'arrete juste apres cette ligne (ligne de code en jaune):
J'ai défini un errorHandler pour m'aider à trouver mon erreur : ErrorHandler: MsgBox Err.Number & vbLf & Err.Description & vbLf & "Current ShortName = " & SHORT_NAME.Text Je me demande si ce n'est pas la boucle qui est défini au mauvais endroit.
Code source : Public Sub DiagMatrixCheck() Dim MATRIX_WB As Workbook Dim MATRIX_WS As Worksheet Dim DIFF_WS As Worksheet Dim DIFF_WB As Workbook Dim MaCellule As Range, MaPlage As Range 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 Sheets("Diff").UsedRange.Offset(2, 0).ClearContents 'Delete all comments 'Cells.ClearComments '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_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 'because header online 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 'because header online 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 'because header online 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 'because header online 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 'Copy that cell values without comments MATRIX_LABEL_H_Datas.Copy DIFF_LABEL_H.Offset(1, 0).PasteSpecial Paste:=xlPasteValues MATRIX_DETECT_H_Datas.Copy DIFF_DETECT_H.Offset(1, 0).PasteSpecial Paste:=xlPasteValues MATRIX_STATE_H_Datas.Copy DIFF_STATE_H.Offset(1, 0).PasteSpecial Paste:=xlPasteValues MATRIX_DTC_H_Datas.Copy DIFF_DTC_H.Offset(1, 0).PasteSpecial Paste:=xlPasteValues Set MaPlage = DIFF_WS.UsedRange.Columns(DIFF_DTC_H.column) For Each MaCellule In MaPlage.Cells 'supprimer les espaces MaCellule.Value = Trim(MaCellule.Value) Next MaCellule DIFF_DETECT_H.Resize(nbLignDatas, 1).Offset(1, 1).Value = "Missing item in XML"
|
Forums