VLookUp sur données texte

Bonjour à tous,

J'ai un problème qui en apparence est assez simple mais que je n'arrive pas à résoudre seul malheureusement.

J'ai créé une macro avec un simple VLookUp qui va coller les données d'un autre classeur correspondantes à une valeur clé qui est entrée dans le classeur actif.

Cependant, la colonne dans laquelle est ma valeur clé est en format Texte et du coup le VLookUp ne fonctionne pas lorsqu'une donnée numérique est entrée... J'ai essayé le CDbl(Cell.value) mais soit je l'utilise mal soit ça ne marche pas donc je suis un peu bloqué.

Je vous mets le code de ma déclaration des variables (codeGP étant la valeur clé)

Public Sub RechercherValeurvCodeGP(ByVal codeGP As String, NumColRangeData As String, RangeData As String, ByVal RangeResultat As Range, Fichier As String, Feuille As String)

Et ici le code du VLookUp inclus dans un Call ( Range("A10") correspond au codeGP, la valeur clé

Call RechercherValeurvCodeGP(Range("A10"), "2", "$B$2:$CN$1000", wstable.Range("B10"), "SI_CMCICAM_FCPE_JURIDIQUE.csv", "SI_CMCICAM_FCPE_JURIDIQUE")

Merci d'avance et bonne journée à vous

Bonjour :

ByVal codeGP As String

Tu demandes un codeGP sous forme de texte, CDbl convertie en valeur décimale.

Tente plutôt :

CStr(Range("A10"))

Ca ne marche malheureusement pas car le VLookUp ne marche pas avec une donnée texte j'ai l'impression

Teste sur ta feuille avec un RECHERCHEV, ça fonctionne sans problème sur du texte. Je pense qu'il faut que tu épluches ton code.

Utilise l’exécution pas à pas, place des espions sur tes variables pour observer leurs valeurs...

Autre question, pourquoi s'embêter à faire tout ça ? Si c'est une simple recherche, utilise la fonction classique plutôt que de faire une fonction perso qui ne marche pas ! VBA n'est pas non plus utile dans l'histoire...

J'ai essayé et le recherchev marche avec un CNUM sur le codegp mais effectivement il doit y avoir un bout de code qui bloque ça.

Je fais tout ça car je dois automatiser un énorme tableau grâce à cette macro que j'applique sur un paquet de cellules d'un coup et qui me fait gagner énormément de temps.

Je mets le code complet de mon VLookUp au cas où ça pourrait aider parce que moi je ne trouve vraiment pas...

Option Explicit Public Sub RechercherValeurvCodeGP(ByVal codeGP As String, NumColRangeData As String, RangeData As String, ByVal RangeResultat As Range, Fichier As String, Feuille As String) Application.ScreenUpdating = False Application.DisplayStatusBar = False Application.Calculation = xlManual Application.EnableEvents = False ActiveSheet.DisplayPageBreaks = False Dim Repertoire As String Repertoire = "\\ROPC" Workbooks.Open Filename:=Repertoire & "\" & Fichier, Origin:=xlWindows, local:=True Dim temp As String temp = "=vlookup(""" & codeGP & """,'" & Repertoire & "\[" & Fichier & "]" & Feuille & "'!" & RangeData & "," & NumColRangeData & ",false)" RangeResultat.Value = temp RangeResultat.Value = WorksheetFunction.Application.VLookup(codeGP, "'" & Repertoire & "\[" & Fichier & "]" & Feuille & "'!" & RangeData & "'", NumColRangeData) On Error Resume Next temp = Application.WorksheetFunction.VLookup(codeGP, Workbooks(Fichier).Sheets(Feuille).Range(RangeData), NumColRangeData, False) If IsError(temp) = False Then RangeResultat.Value = Application.WorksheetFunction.VLookup(codeGP, Workbooks(Fichier).Sheets(Feuille).Range(RangeData), NumColRangeData, False) Else RangeResultat.Value = "" End If Workbooks(Fichier).Close Application.ScreenUpdating = True Application.DisplayStatusBar = True Application.Calculation = xlAutomatic Application.EnableEvents = True ActiveSheet.DisplayPageBreaks = True End Sub

Rechercher des sujets similaires à "vlookup donnees texte"