Golling
Messages postés2Date d'inscriptionjeudi 26 mai 2011StatutMembreDernière intervention27 mai 2011
-
26 mai 2011 à 11:39
Golling
Messages postés2Date d'inscriptionjeudi 26 mai 2011StatutMembreDernière intervention27 mai 2011
-
27 mai 2011 à 08:24
Bonjour à tous,
Tout d'abord veuillez m'excuser si je ne suis pas dans la bonne partie du forum. Mon manque d'expériences ne me permet pas actuellement de discerner ces parties.
J'ai créé un tableau comportant trois colonnes :
- Produit : Référence les produits
- Composition : Référence les composants nécessaires pour ce produit
- Quantité : Pourcentage du composant en question nécessaire
Vous l'aurez sûrement remarqué mais si plus d'un composant entre dans une fabrication, le nom du produit sera représenté plusieurs fois dans la colonne du même nom.
J'ai créé un formule comportant une ComboBox et 10 TextBox.
J'aimerai que lorsque je sélectionne le nom d'un produit dans la ComboBox, les composants s'inscrivent dans les TextBox prévues à cet effet :
TextBox1 = Composant 1
TextBox2 = Composant 2
...
L'ennui c'est que j'ai absolument aucune idée de comment faire une Vlookup avec des conditions multiples en VBA. Une normale oui, mais là...
J'ai écumé à peu près tous les forums depuis hier en vain...
J'expose donc mon problème en espérant avoir une aide concluante.
givemecookies
Messages postés32Date d'inscriptionmardi 27 octobre 2009StatutMembreDernière intervention 4 août 2011 27 mai 2011 à 00:43
hey,
Au lieu d'une VlookUp, essayes avec un .find sur le produit et ensuite un .findnext et .offset(0,1) et .offset(0,2) pour trouver les valeurs à mettre dans tes textbox.
Golling
Messages postés2Date d'inscriptionjeudi 26 mai 2011StatutMembreDernière intervention27 mai 2011 27 mai 2011 à 08:24
Merci beaucoup,
J'ai fait quelque chose dans ce genre-là :
Private Sub Combobox1_Change()
L = Range("A:A").Find(ComboBox1, LookAt:=xWhole).Row
C = Range("A:A").Find(ComboBox1, LookAt:=xWhole).Column
'Relevé du N° de colonne et de ligne du produit en ComboBox1.
For x = 1 To 5
Controls("TextBox" & x) = ""
Next
'Nettoyage des TextBox après chaque changement de ComboBox
For x = 1 To WorksheetFunction.CountIf(Sheets("Nomenclature").Range("A1:A20"), ComboBox1.Text)
Controls("TextBox" & x) = Cells(L + x - 1, C + 2)
Next
'Remplissage des TextBox après chaque changement de ComboBox
End Sub
Je les sens un peu instables ces lignes de code cependant, surtout celle avec CountIf. Je suis preneur d'éventuelles améliorations.