Vlookup sur deux classeur

Résolu/Fermé
Vinceb9 - Modifié par Vinceb9 le 29/02/2012 à 10:43
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 29 févr. 2012 à 15:16
Bonjour,

Je cherche désespérément à faire un Vlookup sur un classeur source .

J'ai créé un Userform avec une textbox de recherche et une textbox de resultat. En gros la situation c'est que je travail dans le sol béton et il y a 2000 formules béton à peu prés donc je voulais que l'on mette le code de la formule et que la formule soit afficher .
Probleme : les formule se trouve sur un autre classeur et meme en mettant le chemin ca marche pas et sa m'enerve !!! J'ai fait tout les forum en essayant plein de chose mais pas moyen ....

Help me please !!!

3 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
29 févr. 2012 à 11:16
Bonjour,

Essayez ceci :
Attention, les cellules a1 et B1 de votre feuille active doivent être vides, sinon changer A1 et B1 dans le code ci-dessous

Dim temp As String, repertoire As String, nomfichier As String, nomfeuil As String
'le textbox recherche est : TextBox1, le résultat : TextBox2
repertoire = "C:\blabla\travail\beton\
nomfichier = "beton"
nomfeuil = "FeuilBdDBeton"
[A1] = TextBox1.Value
temp = "=vlookup(A1,'" & repertoire & "\[" & nomfichier & ".xls]" & nomfeuil & "'!$A$2:$B$1000,2,false)"
[B1].Formula = temp
If Not IsError([B1]) Then
    TextBox2 = [B1].Value
Else
    MsgBox "Référence non trouvée"
End If
Range("A1:B1").Clear
0
Ca ne marche pas ! le message d'erreur se met tout le temps ! mais est-ce-que sa vient de ce que j'ai mis pour l'inserer :

"Private sub textbox1_afterupdate()"
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
29 févr. 2012 à 11:57
vérifie que tout est bien saisi.
Notamment, j'ai oublié un " dans la variable repertoire :
repertoire = "C:\blabla\travail\beton\"


Donc vérifie les noms de répertoire, fichier (qu'il n'y ai pas deux fois ".xls" par exemple), nomfeuil, la plage contenant les données (dans l'exemple : $A$2:$B$1000), le nombre de colonnes de décalage du VLookup (2 dans l'exemple) etc.

Pour faire cela, teste en supprimant la ligne : Range("A1:B1").Clear comme cela tu verras la formule s'afficher en B1 et tu pourras apporter les modifications nécessaires au code.

Je ne penses pas que cela vienne de "Private sub textbox1_afterupdate()". Mais pour être sur, soit :
- tu ajoutes un bouton et copie-colle le code dans l'événement click de ce bouton
- essaye avec la procédure événementielle "Private sub textbox1_Exit(cancel as J'saisplusquoi)"
0
J'ai essayer de faire ce que tu m'a dit. J'avais plusieur erreur mais il y en a une que j'arrive pas à changer et je ne sais pas pourquoi :

dans ma cellule j'ai :
"=RECHERCHEV(A1;'C:\Users\Vincent\Documents\Excel\\[BDD Formules Bétons.xls]BDD'!$A$2:$B$2000;2;FAUX)"

j'ai deux \\ mais je n'arrive meme pas à l'enlever manuellement ...
0
Rectification ca fonctionne il suffisait que j'ouvre le ficher source une fois pour qu'il fonctionne fermé ensuite !!

Merci beaucoup je t'avou que tu es un chef !
a+
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
29 févr. 2012 à 15:16
Si tu as deux \\ il faut modifier la variable repertoire :
Remplacer :
repertoire = "C:\blabla\travail\beton\"
par
repertoire = "C:\blabla\travail\beton"

Heureux que cela fonctionne.
A+
0