XL 2013 Recherche les contacts dans une liste

laeti95

XLDnaute Occasionnel
Bonjour le forum,

J'ai une liste de plus de 1600 lignes qui a été faite par mon prédécesseur.

Liste pas bien faite à mon avis et dans cette liste figure des rues

Exemple . Rte de Florissant, Avenue Florissant 10-14, Route de Florissant 12 et 20 etc

Ma question :
j'aimerais taper dans une cellule par exemple flori et que cela me sorte les lignes en relation avec FLORISSANT en sachant que ma liste ce trouve dans un autre fichier, ou toute autre idée avec comme résultats que je puisse voir apparaître les lignes et contact contenant Florissant, ceci dans un autre onglet

Merci d'avance.

Laeti
 

Fichiers joints

djidji59430

XLDnaute Accro
Bonjour,

Tu peux utiliser la fonction recherche en sélectionnant l'option classeur, et tu auras tous les "floriss" du classeur


Crdlmt
 

Robert

XLDnaute Barbatruc
Bonjour le fil, bonjour le forum

Peut-être comme ça (à adapter) :

VB:
Sub Macro1()
Dim OB As Worksheet 'déclare la variable OB (Onglet Base)
Dim OA As Worksheet 'déclare la variable OA (Onglet Affichage)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set OB = Worksheets("Feuil1") 'définit l'onglet de la base OB (à adapter à ton cas)
Set OA = Worksheets("Feuil2") 'définit l'onglet d'affichage OA (à adapter à ton cas)
TV = OB.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
BE = InputBox("Taper le texte recherché.", "RECHERCHE") 'définit la boîte d'entrée BE
If BE = False Or BE = "" Then Exit Sub 'si bouton [Annuler] ou non renseignée + [OK], sort de la procédure
OA.Cells.ClearContents 'efface le contenu de toutes les cellules de l'onglet OA
OA.Range("A1").Resize(1, UBound(TV, 2)).Value = Application.Index(TV, 1) 'renvoie dans la cellule A1 redimensionnée la première ligne du tableau TV (facultatif)
For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau TV (en partant de la seconde)
    For J = 1 To UBound(TV, 2) 'boucle 2 : sur toutes les colonnes J du tableau TV
        If InStr(1, TV(I, J), BE, vbTextCompare) <> 0 Then 'condition : si le texte de BE est contenu dans la données ligne I colonne J de TV
            Set dest = OA.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST (première cellule vide de la colonne A de l'onglet OA)
            dest.Resize(1, UBound(TV, 2)).Value = Application.Index(TV, I) 'renvoie dans DEST redimensionnée la ligne I du tableau des valeurs TV
            Exit For 'sort de la boucle 2
        End If 'fin de la condition
    Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
OA.Activate 'active l'onglet d'affchage OA
End Sub
 

Fichiers joints

laeti95

XLDnaute Occasionnel
Bonjour Robert,

oui le résultat est ce que je recherche, mais pas en VBA car trop compliqué pour moi.

Bes oin avec des formules :-(
 

laeti95

XLDnaute Occasionnel
Bonjour Dj,

oui j'ai déja regader avec la fonction recherche v mais cela à comme résultat qu'une ligne alors qu'il doit avoir comme résultat plusieurs lignes....
 

BOISGONTIER

XLDnaute Barbatruc
Bonjour,

=SIERREUR(INDEX(Tableau1[Contact];PETITE.VALEUR(SI(ESTNUM(CHERCHE($A$2;Tableau1[Rue]));LIGNE(INDIRECT("1:"&LIGNES(Tableau1[Rue]))));LIGNES($1:1)));"")
Valider avec maj+ctrl+entrée

Boisgontier
 

Fichiers joints

Dernière édition:

laeti95

XLDnaute Occasionnel
Bonjour Boigontier, oui c'est le top avec formules c'est possible que j'y fasse dans mon dossier perso mais la recherche intuitive est encore mieux mais impossible à faire pour moi enfin difficile car je ne connais pas le vba.

Mais je vais partir sur votre formule pour l'adapter dans mon vrai tableau.....

Du travail en perspective.....MERCI déjà

Et quand j'aurai un peu plus de temps je regarde le vba comment faire 8 facile d'aller à vélo quand on sait mais quand on ne sait pas on ce casse la g......même chose en vba )

Laeti
 

laeti95

XLDnaute Occasionnel
Bonjour Djidji, je ne veux rien remplacer, je veux juste faire apparaitre les lignes qui répondent à un critère pas complet du genre flori et que cela m'affiche toutes les lignes contenant le mot avec au début flori gente florissant florissen etc et ceci sur une autre feuille que la feuille de ma base de données.
Laeti :-(
 

Robert

XLDnaute Barbatruc
Bonjour le fil, bonjour le forum,

Et quand j'aurai un peu plus de temps je regarde le vba comment faire 8 facile d'aller à vélo quand on sait mais quand on ne sait pas on ce casse la g......même chose en vba )
Laeti
J'ai longtemps fait du VBA avec des roulettes. Quelques bleus et bosses mais rien de bien méchant. Quand on a de bons professeurs (comme Jacques pour ne citer que lui et bien des membres de ce forum), on avance...
 

laeti95

XLDnaute Occasionnel
Bonjour Boisgontier,

J'ai repris l'onglet accueil pour mettre dans mon tableau, renommer mon tableau TABLEAU1
mais cela ne fonctionne pas,
Que dois-je faire encore et cela va t il fonctionner en sachant que j'ai des colonnes en plus ?

Merci d'avance pour vos lumières.

Laeti
 

laeti95

XLDnaute Occasionnel
Re Boisgontier,

Je parlais pour reporter ton tableau avec la recherche intuitive, car il est vraiment top et pour modifier osi !

Mais je vois que c'est assez complexe.

Mais je fais des essais toujours....mais pas concluant pour le moment :-(

Bonne soirée

Laeti
 

Discussions similaires


Haut Bas