Recherche multiple

Bonsoir,

Mon application Excel fonctionne correctement, mais j'aimerai modifier mon module de recherche.

J'affecte une pièce mécanique à un ou plusieurs véhicules, dans le premier cas pas de soucis je peux chercher toutes les pièces sur ce véhicule. Mais si une pièce est affectée à plusieurs véhicules, seul le premier et pris en compte par mon textbox de recherche.

Je suppose qu'il doit y avoir une solution qui me permettrai d'affecter une pièce sur plusieurs véhicules sans avoir à la saisir plusieurs fois.

Je joins mon appli, merci par avance de votre aide.

salutations, Val.

Ps : désolé je viens de voir que mon fichier ne passe pas (trop lourd peut être), voici un lien sur lequel mon fichier apparaît.

https://forum.excel-pratique.com/excel/copier-une-formule-dans-une-ligne-inseree-et-format-textbox-t32282.html

Bonjour,

En fait mon souci est le suivant :

Trouver une solution pour rechercher un mot parmis d'autres dans une cellule via un textbox??

Cordialement.

Bonjour tlm,

Personne n'a d'idée pour éclairer ma lanterne??

Bonjour

Si tu n'as pas de réponse, bien que plus de 50 personnes aient consulté ton sujet, c'est certainement qu'il y a un problème de compréhension pour ceux qui regardent ton message?

Le lien renvoie sur un sujet dans lequel figurent plusieurs fichiers et comme on ne trouve pas de véhicule dans le premier, on se doit de pousser plus avant et on télécharge les autres. On commence donc par perdre un temps considérable.

ensuite, faute d'un exemple concrêt correspondant au fichier en question, on passe à autre chose...

Cordialement

Bonjour,

J'avoue que mon explication n'est pas très clair .

Je souhaiterai solliciter votre aide car je bloque sur un point important de mon projet.

J'ai un module de recherche où je peux chercher un article en choisissant soit une référence, soit une désignation, soit une description, soit un fournisseur ou un code de véhicule ou engin.

C'est ce dernier qui me pose problème.

En effet si j'affecte un article à plusieurs véhicules (ex: C0845/C0847), seul le premier code (C0845) sera pris en compte pour la recherche et pas l'autre.

Est-il possible (je me doute que oui ) de remédier à ce désagrément??

Je vous joint un fichier simplifié (que le module de recherche).

Cordialement.

Val.

40recherche-code.xlsm (121.55 Ko)

Bonjour

Je fais remonter ton sujet.

Désolé, je ne vois pas comment faire

Cordialement

Bonjour,

Il est vrai qu'avec ton classeur sans aucune piste et tes explications assez sybiline c'est pas évident.

Peut être avec un filtre automatique ?

A+

EDIT :

En effet si j'affecte un article à plusieurs véhicules (ex: C0845/C0847), seul le premier code (C0845) sera pris en compte pour la recherche et pas l'autre.

Et c'est quoi les véhicules ?

Et c'est quoi les articles ?

Bonsoir,

Les véhicules sont tous codés (ex : C0845, C0847, B0822,...).

Concernant les articles, par exemple ligne 5 j'ai un filtre à gazoil avec pour référence 1906.C4, il est attribué aux véhicules suivant : C0818, C0835, C0838, C0839.

Je souhaiterai que dans mon Userform en tapant filtre (dans le champ "Désignation") et C0838 (dans le champ "Code ou engin"), la ligne correspondant s'affiche.

Pour le moment ça fonctionne que si je prends le premier code véhicule (C0818).

Voilà, j'espère que mes explications sont un peu plus clair maintenant

Cordialement.

Val.

Je viens de me rendre compte que mon bouton pour appeler mon Userform ne fonctionne qu'avec Excel 2007 et pas avec Excel 2003, désolé.

Vous pouvez le faire apparaître en utilisant le raccourci "ALT+F11" et en cliquant sur Useform2, puis "F5" (pour ceux qui ne savent pas la démarche )

La fonction Find recherche le contenu EXACT de la demande

est-ce que C0818/C0835/C0838/C0839

est égal à C0839 ??

Dans une BD tu ne peu mettre qu'un seul article par item sinon ça ira jamais.

A+

Bonsoir,

Les 4 véhicules ne sont pas identiques., certains articles sont commun et pas d'autres (ex :le filtre à carburant est le même tandis que le filtre à air est différents).

La fonction Find, peut rechercher un mot dans une cellule?

Ou bien recherche le premier mot de la cellule??

Val

bonjour

je me suis interessé a ton truc car les recherches multiples ;c'est dans mes cordes ......

ce que je ne comprend pas du tout ; c'est comment tu procedes ; donc tu commences par taper un code ou un nom au pif???

j'aurais d'avantage vu un systeme de listes en cascade

1 ) je choisis 1produit dans une liste de produit (filtres......) >>>ca me donne les produits et sur quoi ça monte .........

cordialement

Bonsoir Tulipe_4,

Dans mon USF de recherche, je laisse le choix à l'utilisateur de chercher un article soit par la référence (si il l'a), soit par la désignation, la description, le fournisseur et par le code d'un véhicule.

C'est ce dernier qui sera le plus utilisé par les chauffeurs des véhicules, la référence, le fournisseur plus par le magasinier.

Cordialement.

Y a moyen de faire avec tes données bien que l'idéal serait d'avoir un seul article par donnée

Private Sub TextBox5_Change()
Dim Plage As Range, cell As Range
Dim Recherche As String, Adresse As String
Dim Ligne As Integer, n As Integer
Dim TB, g As Integer, i As Integer
Dim c As Range
    ListBox1.Clear
    Recherche = TextBox5.Value
    'Range("e1").Select
    Ligne = Sheets("Database").Range("e" & "65536").End(xlUp).Row
    Set Plage = Sheets("Database").Range("e" & "1:" & "e" & Ligne)
    With Plage
        Set c = .Find(Recherche, , xlValues)
        If Not c Is Nothing Then
            Adresse = c.Address
            Do
                TB = Split(UCase(c), "/")
                For g = 0 To UBound(TB)
                    If UCase(Recherche) = TB(g) Then
                        ListBox1.AddItem c.Offset(0, 0), n
                        For i = 0 To 5: ListBox1.List(n, i) = c.Offset(0, i - 4): Next
                       ' ListBox1.List(n, 0) = c.Offset(0, -4)
                       ' ListBox1.List(n, 1) = c.Offset(0, -3)
                       ' ListBox1.List(n, 2) = c.Offset(0, -2)
                       ' ListBox1.List(n, 3) = c.Offset(0, -1)
                       ' ListBox1.List(n, 4) = c.Offset(0, 0)
                       ' ListBox1.List(n, 6) = c.Offset(0, 1)
                        n = n + 1
                    End If
                Next g
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adresse
        End If
    End With
End Sub

A+

Bonjour Lermite,

Merci pour ta solution qui me convient parfaitement.

Cordialement.

Val.

Rechercher des sujets similaires à "recherche multiple"