fonction RECHERCHE avec VBA

  • Initiateur de la discussion Initiateur de la discussion Mathieu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Mathieu

Guest
Bonjour à tous 🙂
J'ai un petit souci ... 🙁 Je m'explique
D'un coté, j'ai un fichier xls avec une liste de composants avec des quantités (ayant été extrait d'un schéma de principe) caractérisé par un CODE ARTICLE
De l'autre, j'ai un classeur xls avec tous les composants existant dans mon entreprise.
Moi, il faut que je fasse le lien pour mettre les quantités des composants extraits dans l'autre classeur. Je pense que la solution serait de comparer les codes articles 🙂
Cette fonction est possible avec excel avec RECHERCHEV mais je ne trouve pas une fonction qui me ferait la meme chose avec Visual Basic for Application(VBA)
Merci pour votre aide ... 🙂
 
Bonjour Mathieu et les amis du forum
A priori il me semble que le méthode Find devrait résoudre ton pb.
Je n'ai pas très bien capté ta manip aussi selon le cas tu peux coller la méthode find dans une boucle.Un petit bout de fichier pour exemple me permettrait peut-être de t'aider un peu plus.

Bien amicalement
jacques de ryes
 
Bonjour jacques et tout le forum,



Comme tu le voulais je t’envoie ces deux fichiers pour t’expliquer plus en détails mon pb :
Extraction.xls
Exemple.xls

Dans le fichier extraction.xls, tu as un CODE_ARTICLE et un nombre correspondant à une quantité
Dans le fichier exemple.xls, il y a deux feuilles :
« FeuilleC », avec un bouton de commande. Dès qu’on l’actionne, une fenêtre apparaît où l’on va chercher le fichier « extraction.xls » sur le disque dur. Ensuite on appui sur « FIN DE SAISIE » et c’est a ce moment là que ça cloche…
« FeuilleV », avec une liste de CODE_ARTICLE et une colonne avec des quantités que je doit compléter.(Ces quantités sont dans le fichier « extractions.xls »

Le but total est : *DES L’APPUI SUR LE BOUTON « FIN DE SAISIE ET VALIDATION » IL FAUT QUE LES QUANTITES DE LA FEUILLE « SORTIE » DU FICHIER « EXTRACTION.XLS » COMPLETE LA FEUILLE « FEUILLEV » DU FICHIER « EXEMPLE .XLS »
*ET SI UN CODE_ARTICLE DU FICHIER « EXEMPLE » N’EST PAS PRESENT DANS LE FICHIER « EXTRACTION.XLS » ALORS IL NE FAUT RIEN AFFICHER

C’est un peu lourd mais je pense que c’est clair
Merci d’avance …J
 

Pièces jointes

Bonjour jacques et tout le forum,

Comme tu le voulais je t’envoie ces deux fichiers pour t’expliquer plus en détails mon pb :
Extraction.xls
Exemple.xls

Dans le fichier extraction.xls, tu as un CODE_ARTICLE et un nombre correspondant à une quantité
Dans le fichier exemple.xls, il y a deux feuilles :
« FeuilleC », avec un bouton de commande. Dès qu’on l’actionne, une fenêtre apparaît où l’on va chercher le fichier « extraction.xls » sur le disque dur. Ensuite on appui sur « FIN DE SAISIE » et c’est a ce moment là que ça cloche…
« FeuilleV », avec une liste de CODE_ARTICLE et une colonne avec des quantités que je doit compléter.(Ces quantités sont dans le fichier « extractions.xls »

Le but total est : *DES L’APPUI SUR LE BOUTON « FIN DE SAISIE ET VALIDATION » IL FAUT QUE LES QUANTITES DE LA FEUILLE « SORTIE » DU FICHIER « EXTRACTION.XLS » COMPLETE LA FEUILLE « FEUILLEV » DU FICHIER « EXEMPLE .XLS »
*ET SI UN CODE_ARTICLE DU FICHIER « EXEMPLE » N’EST PAS PRESENT DANS LE FICHIER « EXTRACTION.XLS » ALORS IL NE FAUT RIEN AFFICHER

C’est un peu lourd mais je pense que c’est clair
Merci d’avance …J
 
Bonjour Wally et tout le forum 🙂

J'ai essayé avec la méthode que tu m'as donné mais l'aide de VBA ne m'indique rien et comme je ne connaît pas les instructions qu'il faut mettre je suis bloqué... 🙁((

Merci d'avance

Mathieu
 
Bonjour Mathieu et le forum,

Dans la fonction VBA VLookup, il faut indiquer les mêmes paramètres que dans RECHERCHEV, soit :

MaValeur = Application.WorksheetFunction.VLookup(valeur_cherchée;table_matrice;no_index_col;valeur_proche)

Prenons un exemple et admettons que la cellule D1 de la feuille "Feuil1" contienne la formule suivante :

=RECHERCHEV(1;A1:B10;2;VRAI)

L'équivalent VBA correspond à :

Worksheets("Feuil1").Range("D1") = Application.WorksheetFunction.VLookup(1, Worksheets("Feuil1").Range("A1:B10"), 2, True)


@+

wally
 
Bonjour wally et le forum,

Merci pour l'explication mais il me reste encore un petit souci

J'aimerais cibler une cellule appartenent à une feuille et cette feuille appartient à un classeur (rien d'anormale !!!)

Je dis ca parce que je doit comparer deux cellules appartenant à deux fichiers xls différents...

Il m'est donc obliger de les cibler

si tu ne voit pas trop ce que je recherche j'ai joint test.zip et les explications sont dans les messsages précédents envoyés à jacques
 
Re wally et le forum,

dans la formule que tu m'a donné ...

Worksheets("Feuil1").Range("D1") = Application.WorksheetFunction.VLookup(1, WORKSHEETS("Feuil1").Range("A1:B10"), 2, True)

En fait à la place de WORKSHEETS("Feuil1").Range("A1:B10") j'aimerais que ce soit un chemin d'accès de n'importe quel fichier car ce n'est jamais le même fichier que je travaille et en plus avec une sélection de cellules telles que Range("B2:C30") qui sera toujours la même !!!
 
Re wally,

C bon ca marche ... mais cette boucle ne marche pas !!!

For x = 11 To 62

Workbooks("essai1.xls").Worksheets(8).Cells(x, 4).Value = Application.WorksheetFunction.VLookup(Workbooks("essai1.xls").Worksheets(8).Cells(x, 1).Value, Workbooks("extraction3.xls").Worksheets(1).Range("B2:C30"), 2, False)

Next x

En fait ligne par ligne ca marche mais une boucle FOR...NEXT est bien plus pratique mais il doit y avoir une erreur sur ma ligne

Merci d'avance 🙂
 
Bonjour Wally, le forum
A la recherche d'une solution à un de mes problèmes je suis tombé sur ce fil et la fonction recherche en VBA m'est nécessaire. En suivant les indications de Wally j'ai créé le code suivant :

Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

Dim annonce
Dim FOURN

FOURN = TextBox2
annonce = Application.WorksheetFunction.VLookup(FOURN, Worksheets("paramètres").Range("A9:B1000"), 2, False)
TextBox3 = annonce
End Sub


et un message d'erreur apparaît. Il semblerait que la variable FOURN ne soit pas appréciée comme valeur cherchée.


Quelqu'un aurait-il une idée de ce qui se passe?

Merci à tous ceux qui s'interesseraient à mon pb.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
2 K
Retour