Bonjour à tous,

J'ai un tableau (3.000 lignes) dont le contenu varie à chaque fois que le l'ouvre.
Je dois corriger les erreurs sur la colonne L (numéro 12), en m'aidant des colonnes G (numéro 7) et K (numéro 11).

S'il y a le mot "Hors" ou "Baleine" dans la colonne G ET le mot "toto", "tata" ou "tonton" dans la colonne k, alors je dois écrire "OK" dans la colonne "L".

Les mots "Hors", "Baleine", "toto", "tata", "tonton" peuvent être suivis ou précédés de caractères aléatoires.

Je cherche donc à faire fonctionner cette boucle :

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
74
75
76
77
 Sub Corrections()
 With Application
        .Cursor = xlWait
        .ScreenUpdating = False
        .DisplayStatusBar = False
        .Calculation = xlCalculationManual
        .EnableEvents = False
    End With
 
    Sheets("feuil1").Select
 
    Dim Ws As Worksheet
 
    Dim NomTable As String
 
    NomTable = "Table1"
 
    Set Ws = Worksheets("feuil1")
 
        With Ws
            .ListObjects.Add(xlSrcRange, .Range("$A$1").CurrentRegion, , xlYes).Name = NomTable
            .ListObjects(NomTable).TableStyle = "TableStyleLight9"
        End With
 
    nblignes = Range("Table1").Rows.Count + 1
 
            'Détermine LCher comme le nombre de la ligne en cours de traitement
            For LCher = 2 To nblignes
 
                a = CStr(Cells(LCher, 7))
                c = CStr(Cells(LCher, 11))
                d = CStr(Cells(LCher, 12))
 
                If a Like "*Hors*" And c Like "toto*" Then
                d = "OK"
                End If
                If a Like "*Hors*"  And c Like "*TOTO*" Then
                d = "OK"
                End If
                If a Like "*Hors*" And c Like "tata*" Then
                d = "OK"
                End If
                If a Like "*Hors*" And c Like "*TATA*" Then
                d = "OK"
                End If
                If a Like "*Hors*" And c Like "tonton*" Then
                d = "OK"
                End If
                If a Like "*Hors*" And c Like "*TONTON*" Then
                d = "OK"
                End If
                If a Like "*baleine*" and c Like "*toto*" Then
                d = "OK"
                If a Like "*baleine*" and c Like "*TOTO*" Then
                d = "OK"
                If a Like "*baleine*" and c Like "*tata*" Then
                d = "OK"
                If a Like "*baleine*" and c Like "*TATA*" Then
                d = "OK"
                If a Like "*baleine*" and c Like "*tonton*" Then
                d = "OK"
                If a Like "*baleine*" and c Like "*TONTON*" Then
                d = "OK"
            Next LCher
 
            Worksheets("Titu+Contr").ListObjects(NomTable).Unlist
 
    With Application
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
        .DisplayStatusBar = True
        .CutCopyMode = False
        .ScreenUpdating = True
        .Cursor = xlDefault
    End With
 
 End Sub
.

Je n'ai pas de code d'erreur d'exécution de la macro mais celle ci ne corrige pas les erreurs que je souhaite corriger.
Merci d'avance