VBA excel création d'un catalogue

Fermé
martinol19 Messages postés 6 Date d'inscription mardi 11 octobre 2011 Statut Membre Dernière intervention 9 avril 2013 - 8 avril 2013 à 17:50
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 9 avril 2013 à 12:22
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
9 avril 2013 à 08:50
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 mardi 11 octobre 2011 Statut Membre Dernière intervention 9 avril 2013
9 avril 2013 à 12:01
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
9 avril 2013 à 12:22
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