Adapter le code pour rechercher plusieurs colonnes dans la f

bonjour a vous

j'ai trouvé un fichier de gestion de stock sur un forum dont je ne me rappelle plus lequel, j'ai essayer de l'adapter a mon cas mais sans succes, dans la feuille base il y a tous mes articles (imcomplet pour alléger) par familles de 12 colonnes et je ne sais comment faire pour que la 1ère combobox qui est alimentée a l'initialisation de l'usf puisse alimenter le 2 combobox en fonction du choix dans le combobox1

le combobox 3 réponds bien mais un textbox devrai suffire car je n'ai pas 2 articles avec le même code

je vous joints le fichier en question

merci par avance

Pascal

je t'ai fait le filtre "produits">"Référence" dans "Private Sub ComboBox1_Change()",je te laisse regarder le code.

le principe, un filtre avancé grace a la feuil2 (avec les cellule "a1:a2") avec le collage du résultat a coté, le comboRef qui se mets a jour avec la nouvelle liste crée(elle se compile avec la tienne d'ailleurs, je te laisse la supprimé).

j'espere avoir été clair

bonjour zarik

je te renvoie le fichier que tu a modifié car je ne comprends pas comment il fooncttionne

quand je choisi dans la combobox1 une catégorie pour la feuille stock a ses lignes d'articles qui sont cachées ce qui fait qu'en sélectionnant une autre catégorie ça bug car il n'y a pas assez de lignes écritent,

j'ai rajouter des codes d'articles pour essayer mais aucun mouvement, je le renvoie tel que après essai

Pascal

ça bug car il n'y a pas assez de lignes écritent

Exact, j'avais mal configuré le nettoyage du filtre du coup la base de données se reduisait(masqué) jusqu'a ne plus avoir de ligne...

Edit fichier fait avec les 3 combobox

bonsoir zarik

merci de ce dernier fichier qui n'efface plus ses lignes, mais peut importe le choix que je fais dans la combobox1 il n'y a que la plomberie qui est développée dans la combobox suivante

Pascal

le code que je possede pour des listes liées fonctionne comme ca:

Private Sub ComboBox1_Change() 'lors du changement de valeur dans combobox1
 Sheets("Feuil2").Range("A2") = ComboBox1.Text 'copie de combobox1 sur feuil2 a2

'nettoie zone de chute
Sheets("Feuil2").Activate 'active feuille 2
Lignemax = Cells(Rows.Count, 2).End(xlUp).Row 'compteur de ligne
'MsgBox Lignemax
'Range("B2").Activate
Range("B2:B" & Lignemax).Clear 'nettoie zone de chute des résultats

'filtre
Worksheets("Stock").Activate 'active stock
lignemax2 = Cells(Rows.Count, 1).End(xlUp).Row 'compteur de ligne
'MsgBox lignemax2
'Range("A1").CurrentRegion.Select
'filtre avancéde A1:E avec critere feuil2 a1a2
Range("A1:E" & lignemax2).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Sheets("Feuil2").Range("A1:A2"), Unique:=False
'copie resultat filtre sur feuil2 b2
Range("B2:B" & lignemax2).Copy Worksheets("Feuil2").Range("B2")
'Worksheets("Feuil2").Activate

'nettoie filtre
On Error Resume Next
    Sheets("Stock").ShowAllData 'remets feuille stock a la position initiale
    ComboRef.Clear 'nettoie combobox ref des anciennes valeurs (sinon compil des recherches)

'remplit combobox2 a partir de la feuil2 colonnesB2:B
Dim j As Long
j = 2
While Worksheets("Feuil2").Range("B" & j).Value <> ""
    UserForm1.ComboRef.AddItem Worksheets("Feuil2").Range("B" & j).Value
    j = j + 1
Wend

Sheets("Stock").Activate 'Retourne sur feuille stock
End Sub

je t'avouerais qu'il y a 2 - 3 trucs qui m'echappe egalement sur ton fichier....notament la Base de Données en ligne, j'ai l'impression qu'elle perturbe cette methode.

bonsoir zarik

je t'avouerais qu'il y a 2 - 3 trucs qui m'echappe egalement sur ton fichier....notament la Base de Données en ligne, j'ai l'impression qu'elle perturbe cette methode.

données en ligne veux dire quoi que mes données aillent de la ligne 2 a 310, ben c'est comme cela qu'elle est dans mon fichier de facturation

sur le fichier joint au début du post je n'avais fait que rajouter ma feuille d'article et rien d'autre

Pascal

données en ligne veux dire quoi

Que sur les memes lignes, j'ai a la colonne E en plomberie et en colonne Q en éléctricité, tout deux avec le titre de catégorie.

du coup la ligne "CriteriaRange:= Sheets("Feuil2").Range("A1:A2")" est (peut etre) perturbé vu qu'elle a le titre "catégorie" dans la "recherche". Et comme elles sont sur les meme lignes, le filtre se comporte mal.

j'suis pas sur d'etre clair...

Bonjour zarik

j'ai essayer en renommant les colonnes E . Q .et les suivantes par catégorie 1, catégorie 2 etc... jusque 8 et cela ne change rien,

je les ai renommé par leur nom respectifs pareil ,même problème

la combobox1 développe bien le nom des articles mais la combox référence ne développe que de la plomberie

merci de tes efforts

Pascal

même problème

Arf

colonnemax = Range("A1").SpecialCells(xlCellTypeLastCell).Column
'MsgBox colonnemax
For x = 1 To colonnemax
Range(Cells(1, x), Cells(lignemax2, x + 12)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Sheets("Feuil2").Range("A1:A2"), Unique:=False
Range(Cells(2, x + 1), Cells(lignemax2, x + 1)).Select
If Not IsEmpty(Application.Selection) Then
Range(Cells(2, x + 1), Cells(lignemax2, x + 1)).Copy Worksheets("Feuil2").Range("B2")
End If
x = x + 12
Next x

j'ai tenté un truc comme ca comme filtre, mais ca colle pas non plus...

merci de tes efforts

Navré qu'ils n'ont pas payés...

Meme avec un code comme celui la, je n'arrive a mettre en rouge qu'une ligne sur 2....

'filtre
For x = 1 To x + 11
    For y = 2 To LignemaxA
        If Cells(y, x + 4) = UserForm1.ComboBox1.Value Then
            Cells(y, x + 4).Font.ColorIndex = 3
        End If
    y = y + 1
    Next y
x = x + 11
Next x

Quelqu'un pourrait m'expliquer? il n'a aucune raison de sauter ces lignes.

Edit c'est bon j'ai trouvé mon erreur

du coup, j'pense avoir trouvé

bonsoir zarik

merci pour le dernier fichier mais cela n'a rien changer , c'est toujours la plomberie qui est affichée dans la combobox référence

et de plus pourquoi mets tu de la couleur?cela ne m’intéresse pas et ça mouline beaucoup au point de vider la comboboxréf au lieu montrer l'article en combobox désignation correspondant a la reférence

Pascal

ça mouline beaucoup au point de vider la comboboxréf au lieu montrer l'article en combobox désignation correspondant a la reférence

Exact...bah je vais pas te faire perdre plus de temps avec mes approximations, je passe la main et bonne chance pour l'adaptation

bonsoir zarik

je te remercie pour avoir tenté de résoudre mon souci 8)

bon courage pour la suite

Pascal

Bonsoir,

Je vais essayer de poursuivre...

Regarde le fichier joint, j'ai supprimé tous tes anciens codes, et rajouté quelques uns...

tout n'est pas fini, mais la phase "recherche" doit fonctionner, normalement...

Regarde, et tu dis quoi...

PS : 29, comme le Finistère?

bonjour cousinhub

29 nord a Plouescat

merci de ta version qui fonctionne bien comme il faut, mais comme tu le dit il reste des petites choses a finir

Pascal

Bonjour,

Oui, il reste des choses à faire, mais si tu reprends tes anciens codes, que je n'ai pas testés, et si tu n'avais pas d'erreur avec, ça devrait le faire, non?

si ça ne fonctionne pas, tu peux revenir, avec le fichier à jour.

Bon courage

PS, Brest, mais de Plouvorn, salut voisin...

bonjour Cousinhub

coucou de Plouescat mais de Plouvorn

Merci mais je n'ai pas trop le temps aujourd’hui, mais je vais essayer de reprendre le fichier tel qu'au début et greffer tes codes dès que possible car pas urgent

Bon week end

Pascal

bonjour cousinhub

j'ai tout remis comme il faut et cela fonctionne, la seule chose est que le combodésignation ayant été remplacé par un textbox, les lignes correspondantes me pose soucis

Pascal

Hi,

tu peux poster le fichier tel que tu l'as modifié?

Je vais voir ensuite.

@ te relire

Rechercher des sujets similaires à "adapter code rechercher colonnes"