Problème de lookup sur une colonne

guy974

XLDnaute Junior
Bonjour à tous,

En fichier joint, mon code bloque sur la fonction lookup en vba.

Le fichier est annoté pour les explications

Avez-vous un idée pour que ça fonctionne ?

Merci d'avance

Guy
 

Pièces jointes

  • testlookup.xls
    30 KB · Affichages: 62

job75

XLDnaute Barbatruc
Re : Problème de lookup sur une colonne

Bonsoir le fil,

Voici une macro :

Code:
Sub Intitulé()
Dim cel As Range, valeur As Variant
[B7:B65536].ClearContents
For Each cel In Range([A7], [A65536].End(xlUp))
valeur = Application.VLookup(cel, Sheets("table").[B:C], 2, 0)
If Not IsError(valeur) Then cel.Offset(, 1) = valeur
Next
End Sub

Et le fichier joint.

A+
 

Pièces jointes

  • testlookup(1).xls
    34 KB · Affichages: 56

AQSE

XLDnaute Nouveau
Re : Problème de lookup sur une colonne

et si jamais ma table est dans un autre classeur, comment puis je faire ?!

J'ai essayé de la façon suivante mais il me dit : "erreur 9 : l'indice n'appartient pas à la sélection"

Voici le bout de code :

Code:
 Sub Vlookup()

Dim cel As Range, valeur As Variant
[B7:B65536].ClearContents
For Each cel In Range([A7], [A65536].End(xlUp))
valeur = Application.Vlookup(cel, Workbooks("C:\Docqual\Doc\Répertoiredetravail\Table_test_Vlookup").Sheets("table").[B:C], 2, 0)
If Not IsError(valeur) Then cel.Offset(, 1) = valeur
Next

End Sub



Toute idée sera la bienvenue !
merci
 

job75

XLDnaute Barbatruc
Re : Problème de lookup sur une colonne

Bonjour AQSE, le fil, le forum,

Supposons que le tableau soit maintenant la plage A2:B13 de la Feuil1 du classeur Classeur1.xls, et que ce classeur soit ouvert.

Dans le classeur de la macro, définir (Insertion-Nom-Définir) le nom tablo par la formule :

=[Classeur1.xls]Feuil1!$A$2:$B$13

Ensuite dans la macro écrire cette ligne :

Code:
valeur = Application.VLookup(cel,[COLOR="Red"] [tablo][/COLOR], 2, 0)

La macro fonctionne seulement si Classeur1.xls est ouvert.

EDITION : on remarquera que si l'on entre dans la feuille de calcul la formule :

=RECHERCHEV(A8;tablo;2;0)

cette formule fonctionne même si Classeur1.xls est fermé, contrairement à ce qui se passe en VBA.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Problème de lookup sur une colonne

Re,

Pour tenir compte de mon édition du post précédent (fonctionnement de la formule dans la feuille de calcul), voici une macro qui fonctionne même si Classeur1.xls est fermé :

Code:
Sub Intitulé()
Dim cel As Range
[B7:B65536].ClearContents
For Each cel In Range([A7], [A65536].End(xlUp))
cel.Offset(, 1).FormulaR1C1 = "=VLOOKUP(RC[-1],tablo,2,0)"
cel.Offset(, 1).Value = IIf(IsError(cel.Offset(, 1)), "", cel.Offset(, 1))
Next
End Sub

Tout simplement on entre d'abord la formule dans la cellule pour forcer son calcul.

A+
 
Dernière édition:

Statistiques des forums

Discussions
312 500
Messages
2 089 005
Membres
104 003
dernier inscrit
adyady__