Recherche dans matrice avec nom partiel

Bonjour à tous, j'avais posté un problème il y a quelques semaines et je souhaite modifié mes résultats.

dans ma base de donnée j'ai parfois plusieurs clients qui porte le même nom

par exemple:

SARL turbo5

SA turbo5

ce sont deux clients différents et je souhaiterais que lorsque je tape turbo dans ma recherche client les deux s'affiches. pour l'instant seulement un seul est donnée en réponse, je souhaite aussi que cela soit possible si je souhaite rechercher par agent.

je tape fabrice et tout les clients de fabrice s'affiche.

je joint un fichier exemple qui fonctionne pour ce qui est de la recherche partiel mais pas pour le multi réponse.

j'espère que quelqu'un pourra me venir en aide.

bien cordialement

Bonjour

A vérifier

génial c'est ce que je recherchais. comment avez vous fait?

est il possible de ne pas afficher la totalité de la liste avant de faire une recherche?

en plus clair, tant que les cellules recherches entreprise ou agent, n'on pas été renseigné, aucune information n'est visible

Bonjour

A vérifier

Quelques commentaires dans le code

c'est super merci beaucoup!!! c'est exactement ce qu'il me faut. je risque d'avoir besoin de rajouter des colonnes à ma base comment dois je faire?

par exemple le nom du contact client en colonne E de l'onglet liste client.

merci beaucoup à nouveau vous m'enlevé une grosse épine du pied.

Bonjour

Il faut penser

Modifier la zone de saisie

Modifier la zone de réception

Modifier (déplacer) la zone des critères

Modifier le nombre de colonnes

Et en plus j'en oublie peut-être mais une macro est assez rigide donc modifier n'est pas toujours des plus facile

Il faut que tu regardes chaque ligne de la macro et que tu te poses la question : Le fait d'avoir modifié telle donnée est ce que cela influe cette instruction ?

Rajouter une colonne

En surligné tout ce qui va changer et ce qui peut changer

Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Integer

  If Target.Count > 1 Then Exit Sub
  If Not Application.Intersect(Target, Range("C4:F4")) Is Nothing Then
    Application.ScreenUpdating = False
    ' Vérif si des données saisies dans la ligne 4
    If Application.CountA(Range("C4:F4")) = 0 Then
      ' Aucune donnée
      If Range("C8") <> "" Then     ' Un résultat existe ?
        Range("C8:F" & Range("C" & Rows.Count).End(xlUp).Row).ClearContents
      End If
      Exit Sub
    End If

    ' Tout se passe dans cette page
    With Sheets("liste client")
      ' Au cas ou on est en mode filtre
      If .FilterMode = True Then .ShowAllData
      ' On copie la ligne de titre pour la zone de critères
      .Range("A1:D1").Copy .Range([surligner=#FFFF80]"H1")
      ' Pour chaque colonne de la zone de critères
      For I = 3 To 6
        ' On copie la recherche : les * remplacent tous les caractères
        .Cells(2, [surligner=#FFFF80]5 + I) = "*" & Cells(4, I) & "*"
      Next I
      ' On filtre avec la copie dans la page "résultat"
      .Range("A1:D" & .Range("A" & Rows.Count).End(xlUp).Row).AdvancedFilter action:=xlFilterCopy, CriteriaRange:=.Range("H1:K2"), CopyToRange:=Range("C7:F7")
      ' On efface le filtre
      .Range("H1:K2").ClearContents
    End With
  End If
End Sub

Si tu as des difficultés joins ton fichier avec les nouvelles colonnes

d'accord, j'ai essayer de modifier le code mais je dois en oublier un morceaux.

Bonjour

2 petits oublis

Les entêtes dans la zone de recopie doivent être les mêmes que les entêtes de la zone filtrée : Manque la colonne "Contact"

La zone de critères est agrandie de 1 colonne donc passe de H1:K2 à H1:L2 : A modifier dans la fonction filtre et dans l'effacement

merci beaucoup. ça marche super.

Rechercher des sujets similaires à "recherche matrice nom partiel"