Rechercher : dans
Par :

2 combobox liés dans une macro excel

Dernière réponse le 7 jan 2009 à 10:52:33 yannekent, le 22 déc 2008 à 17:32:24 
 Signaler ce message aux modérateurs

Bonjour,

Je viens de créer une macro afin de faire des factures , j'ai une base de plusieur tables sur une feuille excel qui renferme ref fournnisseur et nom de fournisseurs designation et autres .Combobox 1 je souhaiterais sélectionné le fournisseur et en combobox 2 je souhaiterais automatiquement que tous les references fournisseurs lié a ce fournisseur s'affiche dans ce combobox.je n'utilise pas de userform je developpe direct diretcement sur la feuille excel
je ne m'y connais pas en vba je veux juste un excemple qui me permetra de finaliser ma macro

Configuration: Windows XP
Firefox 3.0.5

Meilleures réponses pour « 2 combobox liés dans une macro excel » dans :

2

pilas31, le 23 déc 2008 à 19:21:30
  • +2

Bonjour,

J'ai créé un petit exemple avec une feuille MENU qui contient les deux combos, une feuille FOURNISSEUR qui contient la liste des fournisseurs et une feuille ARTICLE. La 1° combo est réinitialisé lorsque l'on modifie la liste des fournisseurs ou la liste des articles. (Avant la 1° utilisation il faut aller modifier la liste des fournisseurs)

Pour télécharger cet exemple aller dans Cijoint par le lien suivant :

http://www.cijoint.fr/cjlink.php?file=cj200812/cijCBPFYlB.xl­s

C'est un exemple à adapter Cordialement,
A défaut d’une bonne réponse, deux mauvaises ça ira ?

Répondre à pilas31

3

yannekent, le 29 déc 2008 à 15:26:10

Excusé j ai accusé un grand retard , j ai essaye de mettre en pratique la procédure utilisé mais sans succes trouver en bas les code verfié je ne me suis pas trompé ...............


a la feuille des base donnée

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets("feuille calcul client").ComboBox1.Clear
DER_FOUR = Sheets("base").Range("D65536").End(xlUp).Row
For IART = 2 To DER_FOUR
Sheets("feuille calcul client").ComboBox1.AddItem Sheets("base").Cells(IFOUR, 2)
Next IART
Sheets("feuille calcul client").ComboBox2.Clear
End Sub

a la feuille principale (2 combobox)

Private Sub ComboBox1_Change()
Dim REF_FOUR As String
Dim DER_ART As String
REF_FOUR = Sheets("base").Cells(ComboBox1.ListIndex + 2, 1)
ComboBox2.Clear
DER_ART = Sheets("base").Range("D65536").End(xlUp).Row
For IART = 2 To DER_ART
If Sheets("base").Cells(IART, 1) = REF_FOUR Then
ComboBox2.AddItem Sheets("base").Cells(IART, 4)

End If
Next IART

End Sub


erreur observé variale non definie pour IART et ossi le code sur la feuille excel ne marche pas merci d'avance faite kelke chose

Répondre à yannekent

4

pilas31, le 29 déc 2008 à 16:20:49

Bonjour,

A priori dans ce code il y a plusieurs choses qui me choquent :

D'abord dans le code :
Sheets("feuille calcul client").ComboBox1.AddItem Sheets("base").Cells(IFOUR, 2)
je pense que c'est plutôt:
Sheets("feuille calcul client").ComboBox1.AddItem Sheets("base").Cells(IART, 2)

Ensuite dans la déclaration :
Dim DER_ART As String
c'est plutôt :
Dim DER_ART As Integer

Voilà sans tester ce qui me semble pas correct.

A+ Cordialement,
A défaut d’une bonne réponse, deux mauvaises ça ira ?

Répondre à pilas31

5

yannekent, le 30 déc 2008 à 17:46:21

Il Y A toujours des erreurs , retrouvé la macro en fichier joint je pense vous pourriez mieux m'aider merci de votre compréhension je veux juste faire marché les 2 combobox je suis pas vraiment developpeur vb

http://www.cijoint.fr/cjlink.php?file=cj200812/cijvSqpOCY.xl­s

Répondre à yannekent

6

pilas31, le 31 déc 2008 à 19:37:42

Bonsoir,

Je viens de regarder rapidement. Le problème principal vient du nom de la feuille "base". Il y a un blanc à la fin du nom de la feuille. Donc dans les formules il ne reconnait pas la feuille. Il faut renommer la feuille en faisant attention de ne pas mettre de blanc à la fin du nom.

Dans la routine liée à la feuille "base", la variable DER_FOUR n'est pas déclarée c'est REF_FOUR qui est déclarée. Je pense que c'est une faute de frappe. Il faut mettre Dim DER_FOUR As Integer.

Voilà pour l'instant ce que j'ai relevé.

En attendant Bon réveillon à tous !!!

A+ Cordialement,
A défaut d’une bonne réponse, deux mauvaises ça ira ?

Répondre à pilas31

7

yannekent, le 2 jan 2009 à 18:47:11

Merci bcp je te souhaite bonne heureuse 2009 et tout mes voeux les meilleurs (santé , bonteur , et succes) ben voila c'etais exacte il yavait un espace dans ma table.Mais il ya toutours ne erreur dui est la suivante :

Private Sub ComboBox1_Change()
Dim DER_FOUR As Integer
Dim DER_ART As Integer
Dim IART As Integer

DER_FOUR = Sheets("base").Cells(ComboBox1.ListIndex + 2, 1) sur cette ligne
ComboBox2.Clear
DER_ART = Sheets("base").Range("D65536").End(xlUp).Row
For IART = 2 To DER_ART
If Sheets("base").Cells(IART, 1) = DER_FOUR Then
ComboBox2.AddItem Sheets("base").Cells(IART, 4)

End If
Next IART

End Sub

je cherche tjs en vain avec mes maigre connaissance vbe pour les formules matricielle sa devra etre un jeux enfant utilisez linkedcell property et recupere les autres valeur et les affecté au secourrrrrrrrrrrr je finalisé ces deux comboobox liés merci

Répondre à yannekent

8

pilas31, le 5 jan 2009 à 12:44:27

Bonjour,

Merci pour tes voeux, je t'adresse les miens également.

J'étais en vacances (et sans ordinateur) donc j'ai tardé à répondre.

J'ai fait le tour (je crois) des pb dans ton fichier et tu trouveras sur ci-joint une version avec les corrections. J'ai gardé l'esprit de ce qui avait déjà été fait :

http://www.cijoint.fr/cjlink.php?file=cj200901/cijYSz9DJv.xl­s

Attention, j'ai été obligé de modifier l'ordre des colonnes dans la feuille "base".

Dis-moi si tu rencontre de nouvelles difficultés.

A+ Cordialement,
A défaut d’une bonne réponse, deux mauvaises ça ira ?

Répondre à pilas31

9

yannekent, le 7 jan 2009 à 10:12:29

Pilas t'es un chef sa marche impeccable merci pour toi genial manc'est pas comment te remercie en tout au plaisir thanx

Répondre à yannekent

10

 pilas31, le 7 jan 2009 à 10:52:33

Avec plaisir Yannekent !

A+

Cordialement,
A défaut d’une bonne réponse, deux mauvaises ça ira ?

Répondre à pilas31