Bonjour,

Je vous sollicite afin que vous m'aidez à comprendre pourquoi une de mes variables utilisées dans une formule prend une valeur différente que celle qu'elle a initialement.
C'est très farfelu mais je ne sais comment tourner correctement ma demande... Je m'explique (du moins je vais essayer).

Je recherche l'emplacement d'une colonne particulière dans une feuille afin de l'utiliser par la suite dans une RECHERCHEV.

Voilà le code tapé :

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
Sub Test()
 
Dim MyColumn As Byte
 
'Identification de la colonne comportant les libellés de l'export issu de la Ligne 1000
 
    MyColumn = Sheets("Export Sage").Cells.Find("Libellé d'écriture", LookIn:=xlValues).Column
 
'Contrôle des catégories de paye
 
    With Sheets("Cat")
 
    .Range("B1").EntireColumn.Delete
 
    LR1 = .Cells(.Rows.Count, 1).End(xlUp).Row
 
        With .Range("B2:B" & LR1)
 
            .Formula = "=+IF(ISERROR(VLOOKUP(RC[-1],'Export Sage'!C[" & MyColumn & "],1,0)),""X"","""")"
            .Value = .Value
 
        End With
 
    End With
 
End Sub
Ma colonne se trouvant en E, la variable prend la valeur 5, mais dans la RECHERCHEV, elle passe à 7.
La valeur prend toujours la valeur + 2 dans la formule (j'ai fait plusieurs tests)

Je contourne le problème en faisant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 MyColumn = Sheets("Export Sage").Cells.Find("Libellé d'écriture", LookIn:=xlValues).Offset(0, -2).Column
Mais je ne m'explique pas pourquoi le code initial ne fonctionne pas.

Je vous remercie grandement d'avance pour votre réponse, et m'excuse si cette question sûrement triviale pour nombre d'entre vous vous excède.