Recherche verticale en VBA

PJ7

XLDnaute Nouveau
Bonjour,

J'ai le code VBA (recherche verticale) ci-dessous qui marche dans un même classeur (avec la feuille "Origine" d'où je récupère les données et la feuille "Résultat" où je mets le résultat de la recherche. J'ai modifié mon programme en plaçant la source de recherche (feuille "Origine") des données dans un autre classeur ("Référentiel"). Le résultat se trouve toujours dans la feuille "Résultat" du classeur "Destination". Je souhaite faire la recherche en VBA en prenant en compte ce changement. Je précise qu'avant la recherche le classeur source "Référentiel" et le classeur "Destination" seront tous les 2 ouverts au moment de la recherche. Je pense qu'il suffit de rajouter la référence au classeur ("Référentiel") dans ce code. Merci de me préciser la synthaxe.


Code:
Range("B2") = Application.WorksheetFunction.VLookup(Range("A2").Value, Worksheets("Origine").Range("A2:B6"), 2, False)
Code:


Je précise que je travaille sous Excel97.

Par avance merci,

PJ7
 

JCGL

XLDnaute Barbatruc
Re : Recherche verticale en VBA

Bonjour à tous,


Il me semble que cela fonctionnera si tu précises la feuille pour le Range("B2").

Code:
Feuil2.Range("B2") = Application.WorksheetFunction.VLookup(Range("A2").Value, Worksheets("Origine").Range("A2:B6"), 2, False)


A + à tous
 

PJ7

XLDnaute Nouveau
Re : Recherche verticale en VBA

Bonsoir et merci d'avoir regardé mon problème. En fait, la cellule "B2" se trouve dans la feuille "Résultat" du classeur "Destination". La plage "A2:B6" où je recherche la valeur se situe dans la feuille "Origine" du classeur "Référentiel". Merci de m'indiquer la syntaxe appropriée.

Par avance merci,

PJ7
 

PJ7

XLDnaute Nouveau
Re : Recherche verticale en VBA

Bonjour,

Je joins 2 fichiers pour illustrer mon problème. Je souhaite récupérer avec "VLookup", pour chaque compte, l'axe en feuille "Résultat" du classeur "Destination" en recherchant dans le classeur "Référentiel" (feuille "Origine"). Je précise que la feuille "Résultat" comprend une partie des comptes de la feuille "Origine". Je souligne que l'axe peut ne pas exister pour certains comptes.

En espérant être suffisamment précis.

Par avance merci,

PJ7
 

Pièces jointes

  • Référentiel.xls
    35.5 KB · Affichages: 42
  • Destination.xls
    35 KB · Affichages: 59
  • Destination.xls
    35 KB · Affichages: 57
  • Destination.xls
    35 KB · Affichages: 95

JCGL

XLDnaute Barbatruc
Re : Recherche verticale en VBA

Bonjour à tous,

Les deux fichiers ouverts. En C3 et vers le bas de Destination.xls et en feuille Résultat :
Code:
=SI(ESTNA(RECHERCHEV($A3;[Référentiel.xls]Origine!$A:$B;2;0));"";RECHERCHEV($A3;[Référentiel.xls]Origine!$A:$B;2;0))

Dans un module du fichier Destination.xls :

Code:
Feuil1.Range("B3:B50") =   "=IF(ISNA(VLOOKUP(RC1,[Référentiel.xls]Origine!C1:C2,2,0)),"""",VLOOKUP(RC1,[Référentiel.xls]Origine!C1:C2,2,0))"


A + à tous
 
Dernière édition:

PJ7

XLDnaute Nouveau
Re : Recherche verticale en VBA

Merci beaucoup pour cette réponse rapide et adaptée. Je souhaiterais bien comprendre le code VBA ("ISNA", "RC1" et """" surtout). Serait-il possible de préciser ? Par ailleurs, quelle modification faudrait-il apporter dans le code VBA pour avoir une cellule vide et non un "0" quand il n'y a pas d'axe pour un compte ?

Merci beaucoup

PJ7
 

JCGL

XLDnaute Barbatruc
Re : Recherche verticale en VBA

Bonjour à tous,

Je t'ai mis la correspondance en fonction XL dans le message# 6.
RC1: pour même ligne et colonne 1 donc colonne A
"""" en VBA, il faut doubler les " : pour indiquer "" cela doit être """"


Applique un format personnalisé sur la colonne : Standard;;

Pour mémoire dans un format personnalisé, le premier argument concerne les positifs, le deuxième les négatifs et le troisième le 0
Donc avec le format préconisé tu n'auras que les positifs... Sans les négatifs et sans les 0
A + à tous
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
174
Réponses
6
Affichages
375
Réponses
2
Affichages
228
Réponses
12
Affichages
564

Statistiques des forums

Discussions
312 770
Messages
2 091 941
Membres
105 117
dernier inscrit
rizo