Goldshakka
XLDnaute Nouveau
Bonjour à toutes et à tous,
Voilà 2 jours que je me tire les cheveux et cherche une solution à un problème qui semble tout bête en vain, je viens donc à vous après avoir longuement cherché sur différents sites et forums une explication. Vous êtes mon dernier espoir (bon ok j’en fais de trop la)
Voilà j’ai créé un UserForm dans lequel se situe 2 combobox. La première énumère des familles de produits (combobox1) et le second les sous-produits (combobox2) en fonction de ce qui a été choisi dans le combobox1.
Cela semble tout bête sauf que ma liste de produit est très longue… et donc lorsque je choisis une famille de produit dans mon combobox1 cela doit également déclencher un filtre de ma liste de produit, cette liste est ensuite copier sur une autre feuille et ma combobo2 viens y chercher sa source.
J’ai réalisé chaque étapes individuellement et tout marche, mais dès que j’essaie d’introduire ma macro de filtrage dans mon combobox1_change() ca plante ! voici le code que j’utilise :
Private Sub ComboBox1_Change()
Dim cat As Integer
‘la famille de produit conditionnera le critère du filtre
Worksheets("dbmat").Cells(4, 1) = ComboBox1.Value
cat = Worksheets("dbmat").Cells(4, 1).Value
‘Filtre selon le critere
Worksheets("dbmat").Select
ActiveSheet.Range("$A$38:$A$2000").AutoFilter Field:=1, Criteria1:=cat
‘Copie des donnees filtres dans sur une autre feuille
Worksheets("dbmat").Select
ActiveSheet.Range("A39500").Select
Selection.Copy
Sheets("matexport").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("dbmat").Select
End Sub
La chose folle c’est que lorsque je lance la macro tout se déroule comme prévu, mes produits sont filtres en fonction de la valeur de combobox1 et tout se copie dans la feuille désirée mais un message d’erreur apparait et débugge s’affiche en soulignant la ligne indiquée en jaune.
aussi si j'efface du combobox1 le fitrage/copage/collage et le met dans un bouton dans ce cas ca marche mais ca oblige a cliauer sur un bouton au lieu d avoir le fitrage automatiquement.
Qu’ai-je fait de mal oh cruel VBA !!!
J’espère avoir été assez clair et accepterais volontiers quelques conseils de votre part.
Dans l’attente de vous lire !!!
Ci-joint le fichier excel
Voilà 2 jours que je me tire les cheveux et cherche une solution à un problème qui semble tout bête en vain, je viens donc à vous après avoir longuement cherché sur différents sites et forums une explication. Vous êtes mon dernier espoir (bon ok j’en fais de trop la)
Voilà j’ai créé un UserForm dans lequel se situe 2 combobox. La première énumère des familles de produits (combobox1) et le second les sous-produits (combobox2) en fonction de ce qui a été choisi dans le combobox1.
Cela semble tout bête sauf que ma liste de produit est très longue… et donc lorsque je choisis une famille de produit dans mon combobox1 cela doit également déclencher un filtre de ma liste de produit, cette liste est ensuite copier sur une autre feuille et ma combobo2 viens y chercher sa source.
J’ai réalisé chaque étapes individuellement et tout marche, mais dès que j’essaie d’introduire ma macro de filtrage dans mon combobox1_change() ca plante ! voici le code que j’utilise :
Private Sub ComboBox1_Change()
Dim cat As Integer
‘la famille de produit conditionnera le critère du filtre
Worksheets("dbmat").Cells(4, 1) = ComboBox1.Value
cat = Worksheets("dbmat").Cells(4, 1).Value
‘Filtre selon le critere
Worksheets("dbmat").Select
ActiveSheet.Range("$A$38:$A$2000").AutoFilter Field:=1, Criteria1:=cat
‘Copie des donnees filtres dans sur une autre feuille
Worksheets("dbmat").Select
ActiveSheet.Range("A39500").Select
Selection.Copy
Sheets("matexport").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("dbmat").Select
End Sub
La chose folle c’est que lorsque je lance la macro tout se déroule comme prévu, mes produits sont filtres en fonction de la valeur de combobox1 et tout se copie dans la feuille désirée mais un message d’erreur apparait et débugge s’affiche en soulignant la ligne indiquée en jaune.
aussi si j'efface du combobox1 le fitrage/copage/collage et le met dans un bouton dans ce cas ca marche mais ca oblige a cliauer sur un bouton au lieu d avoir le fitrage automatiquement.
Qu’ai-je fait de mal oh cruel VBA !!!
J’espère avoir été assez clair et accepterais volontiers quelques conseils de votre part.
Dans l’attente de vous lire !!!
Ci-joint le fichier excel