Bonjour,

J'ai réalisé une macro qui à partir de l'import d'un fichier va comparer feuille par feuille des formules par rapport à un autre et en fonction du résultat j'affiche Ok ou NOK.
Le problème est que lorsque dans les formules il y a des espaces ou une "," à la place d'un ";". La valeur passe a NOK alors qu'en réalité la formule est correct.
J'ai entendu parle de la fonction Trim est ce que cela peut marcher pour mon cas je vous joins mon code ci dessous. Merci pour votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function comparCh(ch1, ch2)
Dim lg1%, lg2%, i%
Application.Volatile True
If ch1 = ch2 Then
comparCh = "identique"
Else
lg1 = Len(ch1)
lg2 = Len(ch2)
i = 1
While Mid(ch1, i, 1) = Mid(ch2, i, 1)
i = i + 1
Wend
comparCh = i - 1
End If
End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Sub CheckParameter()
    Dim StrFormula As String
    Dim StrCell As String
    Dim StrSheet As String
    Dim Test As String
    Dim StrFichier As String
    Dim StrFichierWithPath As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim StrNameOfVerif As String
 
    ' Get the name of the Verification File
    Set wb = ActiveWorkbook
    StrNameOfVerif = wb.Name
 
    StrFichierWithPath = Application.GetOpenFilename("Fichier RTI, *.xls", , "Open RTI File")
 
    If StrFichierWithPath = "Faux" Then
        MsgBox "Select file"
    Else
 
 
            Set wb = Workbooks.Open(StrFichierWithPath)
            Set ws = wb.Worksheets(1)
            StrFichier = ActiveWorkbook.Name
 
            'To accelerate the operation the screen is not updated.
            Application.ScreenUpdating = False
 
            '' All Sheet are displayed to allow the verification
            Sheets("anticipation_Train1_D").Visible = True
            Sheets("anticipation_Train2_D").Visible = True
            Sheets("anticipation_Train3_D").Visible = True
            Sheets("anticipation_Train4_D").Visible = True
            Sheets("anticipation_Train5_D").Visible = True
 
            StrCell = "Init"
            i = 2
 
            Windows(StrNameOfVerif).Activate
            StrFormula = Range("D" & i).Value
            StrCell = Range("C" & i).Value
            StrSheet = Range("B" & i).Value
 
            Do While StrCell <> ""
 
                Windows(StrFichier).Activate
 
                Sheets(StrSheet).Select
                ActiveSheet.Range(StrCell).Select
                Test = ActiveSheet.Range(StrCell).Formula
 
                Windows(StrNameOfVerif).Activate
 
                If Test = StrFormula Then
                    ActiveSheet.Range("E" & i) = "OK"
                Else
                    ActiveSheet.Range("E" & i) = "KO"
                End If
                ActiveSheet.Range("F" & i) = "'" & Test
 
                i = i + 1
                Windows(StrNameOfVerif).Activate
                StrFormula = Range("D" & i).Value
                StrCell = Range("C" & i).Value
                StrSheet = Range("B" & i).Value
            Loop
            Application.ScreenUpdating = False
 
            wb.Close
    End If
 
End Sub