Variable utilisée dans une fiormule - Question de curiosité
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:
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:
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.