VBA excel création d'un catalogue

martinol19 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je souhaite créer un catalogue pour le magasin de mon entreprise.
L'idée de base est simple : je rentre un numéro article dans une case, j'appuis sur un bouton rechercher et il s'affiche en dessous la ligne avec le n° article, nom fournisseur, la réf fournisseur, la désignation, l'emplacement et le prix.

J'ai donc créé ma BDD avec 1 fournisseur par onglet, avec pour chaque fournisseur les différentes info (n° article, nom fournisseur, etc...).
J'ai créé mon interface sur un autre onglet avec mon bouton "rechercher" , il manque juste le bout de programme qui recherche les infos correspondant au numéro article et qui renseigne les lignes sur mon interface...

NB : Un article peut être chez plusieurs fournisseurs, donc création de plusieurs lignes dans mon interface.

Merci pour votre aide :)
A voir également:

3 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Peut se faire sans VBA (formule RECHERCHV) ou avec (avez-vous quelque(s) connaissances sur le sujet) , a vous de choisir.

A+
0
martinol19 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour f894009,

J'ai effectivement pensé à utiliser la fonction recherchev mais je ne peux pas faire (ou je ne sais pas faire) :
- Une recherche sur plusieurs onglets
- Si un article est chez plusieurs fournisseurs, il faut faire apparaitre tous les résultats dans mon interface, soit plusieurs lignes. Or la fonction est seulement pour faire apparaitre le résultat sur une case non?

Concernant VBA, je connais les principes de bases : enregistrement d'une macro, je sais lire les codes basiques et j'arrive à "bricoler" à partir d'un code existant.
J'ai d'ailleur commencé un programme qui correspond à la fonction recherchev, il me manque la boucle pour chercher dans tous les onglets et incrémenter les réponses dans mon interface.

mon code pour faire la recherche et afficher le texte dans les lignes de mon interface :

With Workbooks("catalogue achat maintenance.xls").Sheets("interface")
.Range("C15").Value = WorksheetFunction.VLookup(.Range("D7:E7").Value, _
Workbooks("catalogue achat maintenance.xls").Sheets("Fourn1").Range("C7:H5000"), 1, False)
End With

With Workbooks("catalogue achat maintenance.xls").Sheets("interface")
.Range("D15").Value = WorksheetFunction.VLookup(.Range("D7:E7").Value, _
Workbooks("catalogue achat maintenance.xls").Sheets("Fourn1").Range("C7:H5000"), 2, False)
End With
With Workbooks("catalogue achat maintenance.xls").Sheets("interface")
.Range("E15").Value = WorksheetFunction.VLookup(.Range("D7:E7").Value, _
Workbooks("catalogue achat maintenance.xls").Sheets("Fourn1").Range("C7:H5000"), 3, False)
End With
With Workbooks("catalogue achat maintenance.xls").Sheets("interface")
.Range("F15").Value = WorksheetFunction.VLookup(.Range("D7:E7").Value, _
Workbooks("catalogue achat maintenance.xls").Sheets("Fourn1").Range("C7:H5000"), 4, False)
End With
With Workbooks("catalogue achat maintenance.xls").Sheets("interface")
.Range("G15").Value = WorksheetFunction.VLookup(.Range("D7:E7").Value, _
Workbooks("catalogue achat maintenance.xls").Sheets("Fourn1").Range("C7:H5000"), 5, False)
End With
With Workbooks("catalogue achat maintenance.xls").Sheets("interface")
.Range("H15").Value = WorksheetFunction.VLookup(.Range("D7:E7").Value, _
Workbooks("catalogue achat maintenance.xls").Sheets("Fourn1").Range("C7:5000"), 6, False)
End With
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

- Une recherche sur plusieurs onglets pas de probleme

- Si un article est chez plusieurs fournisseurs, il faut faire apparaitre tous les résultats dans mon interface, soit plusieurs lignes. Or la fonction est seulement pour faire apparaitre le résultat sur une case non? Oui, mais vous mettez autant de "case" rechercheV que d'onglets.

dans votre code pourquoi WorksheetFunction.VLookup(.Range("D7:E7").Value, alors que vous avez ecrit au depart je rentre un numéro article dans une case,


Un exemple de code VBA de michel_m CCM: https://www.cjoint.com/c/CDjmt0MObG9

A+
0