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
Partager