Bonjour,

Voila, j'ai un souci et suis certain que vous allez réussir à m'aider.

Je suis entrain de créer une macro plutôt lourde pour faciliter la saisi des commandes en y incluant facturation et reporting.
Je travaille dessus depuis presque 2 mois et je commence a en voir le bout.

Cependant je sèche sur une fonction qu'habituellement je maitrise :

Depuis un onglet intitulé "FACTURATION_ASC", je récupère les champs renseignés par l'utilisateur pour les enregistrer dans un autre onglet intitulé "LISTING_FACT_ASC"

(J'ai une bonne trentaine de variable donc j'ai simplifié le code ci-dessous pour pas qu'il soit trop long dans ce post)
Dans le code ci-dessous, je cherche a déterminer "CODENOP" à partir de la variable "ASC1" par une recherche verticale.
La donnée que je recherche se trouvant dans l'onglet "LISTING_ASC"


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
Sub SAVE_FACT_ASC_Clic()

' DEFINITION DES VARIABLES LOCALES
Dim ASC1 As String
Dim CODENOP As String
Dim CONTROL As Integer

'MISE EN VALEURS DES VARIABLES LOCALES
ASC1 = Range("B21").Value

' VERIFICATION DES CHAMPS DU FORMULAIRE
If ASC1 = "" Then
CONTROL = CONTROL + 1
End If

' CONCLUSION DU CONTROL
If CONTROL > 0 Then
MsgBox ("Tous les champs obligatoires n'ont pas été remplis, veuillez vérifier")
Exit Sub
End If

'DETERMINATION DU CODE NOP
Sheets("LISTING_ASC").Visible = True
Sheets("LISTING_ASC").Select
CODENOP = WorksheetFunction.VLookup(ASC1, Sheets("LISTING_ASC").Range("$A$2:$DK$200"), 115, False)

' Puis la suite du code pour enregistrer "ASC" et "CODENOP" dans l'onglet "LISTING_FACT_ASC"
Tous le code marche impeccablement bien sauf en ajoutant cette fonction VLookup.

Lorsque j’exécute cette macro en mode pas à pas détaillé (F8), la variable "ASC1" est bien renseignée.

Mais j'obtiens invariablement la même erreur: "Impossible de lire la propriété VLookup de la classe WorksheetFunction."

Or si j'effectue une recherchev directement sur la classeur et avec les même paramètre (ie: =RECHERCHEV(FACTURATION_ASC!B21;LISTING_ASC!$A$2:$DK$27;115;FAUX)) bah j'obtiens bien le résultat que je recherche soit "M64731".

Je ne comprends pas pourquoi j'ai cette erreur.

Si vous aviez une idée....

Merci d'avance.