Rechercher un mot dans une colone de titres

Résolu/Fermé
CLAVERELI Messages postés 52 Date d'inscription lundi 8 octobre 2012 Statut Membre Dernière intervention 24 mai 2014 - 17 janv. 2013 à 08:11
 CLAVERELI - 20 janv. 2013 à 08:15
Bonjour,

Dans une colonne de plusieurs centaines de titres je cherche à créer une liste de toutes les lignes dont le titre contient un mot particulier comme par exemple
RECHERCHE : ROI
RESULTAT : LES TROIS ROIS et LE ROI EST MORT sont des valeurs correctes. Les TROIS ANNES est une valeur acceptable.
Ceci fait, en cliquant sur l'un des résultats proposés je souhaite afficher dans un userform toutes les informations qui se trouvent sur la même ligne comme par exemple:

En A1: LE ROI EST MORT
En B1 : 1989
En C1: PAS FINI
En D1: EN COURS REFONTE SCRIPT


11 réponses

CLAVERELI Messages postés 52 Date d'inscription lundi 8 octobre 2012 Statut Membre Dernière intervention 24 mai 2014
17 janv. 2013 à 08:14
Veuillez bien m'excuser pour la formule de politesse manquante. Fausse manoeuvre!!!
En l'occurence merci à quiconque voudra bien s'interesser a mon double sujet.
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
17 janv. 2013 à 10:13
Bonjour CLAVERELI,

like "*ROI*" .. à creuser
0
Merci pour ta réponse Héliotte.
Ne pense tu pas que celà est un peu facile?
Je crois que ma question est mal posée et je vais devoir joindre un extrait de mon fichier pour mieux me faire comprendre.
A bientôt donc........et encore merci.
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
17 janv. 2013 à 15:13
Ajouter ces objets:
- Userform "Userform1"
- Label "Label1"
- TextBox "TextBox1"
- CommandButton "CommandButton1"
- ComboBox "ComboBox1"

Code:
Option Explicit

Private Sub CommandButton1_Click()
    If (TextBox1.Text = "") Then Exit Sub
    '
    Dim DL As Long, PL As Long, Col As Long, i As Long, j As Long
    Dim Trouve As Boolean, Chaine(2) As String
    '
    PL = 1
    Col = 1
    DL = Columns(Col).Find("*", , , , xlByColumns, xlPrevious).Row
    If (DL < 1) Then Exit Sub
    '
    Trouve = False
    Chaine(0) = LCase(TextBox1.Text) & " *"
    Chaine(1) = "* " & LCase(TextBox1.Text)
    Chaine(2) = "* " & LCase(TextBox1.Text) & " *"
'    MsgBox Chaine
    Me.ComboBox1.Clear
    For i = PL To DL
        For j = 0 To 2
            If (LCase(Cells(i, Col).Value) Like Chaine(j) = True) Then
                Me.ComboBox1.AddItem Cells(i, Col).Value
                Trouve = True
            End If
        Next j
    Next i
    If (Trouve = False) Then
        MsgBox "Le mot """ & TextBox1.Text & """ n'a pas été trouvé !" & vbCrLf & _
               "Veuillez réessayer avec un autre mot.", _
               vbExclamation, _
               "Recherche infructueuse !"
        TextBox1.SetFocus
        TextBox1.SelStart = 0
'        TextBox1.SelLength = Len(TextBox1.Text)
'        TextBox1.SelText = Len(TextBox1.Text)
        TextBox1.SelLength = Len(TextBox1.Text)
    End If
End Sub

Private Sub UserForm_Activate()
    Call InitializeListe
End Sub

Private Sub InitializeListe()
    Dim DL As Long, PL As Long, Col As Long, i As Long
    '
    PL = 1
    Col = 1
    DL = Columns(Col).Find("*", , , , xlByColumns, xlPrevious).Row
    If (DL < 1) Then Exit Sub
    '
    For i = PL To DL
        Me.ComboBox1.AddItem Cells(i, Col).Value
    Next i
End Sub
0
Bonjour Heliotte et merci pour ta nouvelle proposition qui me parait intéressante et que je vais tester dès que possible.
Comme promis, j'aurais bien voulu joindre à cette réponse un extrait de mon programme mais je ne vois pas d'option "pièce jointe" sur cette page. Peux tu m'aider?
Merci pour tout et @+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
18 janv. 2013 à 09:21
Bonjour CLAVERELI,

Impossible de joindre une pièce.
Par contre, tu peux déposer le document sur un site de stockage, tel que www.cjoint.com , récupérer le lien que tu nous transmet avec ton prochain message.

Attention, modifier/supprimer les données sensibles dans les documents !!!
0
Re bonjour HELIOTTE.
Comme conseillé j'ai utilisé cjoint.com
voici le lien obtenu en éspérant qu'il fonctionne

http://cjoint.com/?0AslboJaAQ9

Si tu veux des commentaires sur "mon" travail, à ta disposition.
Saches toutefois que cet extrait ne laisse apparaître que le partie inhérente au problème posé. Tous autres usf, boutons etc non indispensables ici ont été supprimés dans le seul souci d'alléger le poids du fichier. Il n'y a aucune donnée confidentiel dans la base.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
18 janv. 2013 à 11:42
Bonjour, bonjour Heliotte,
Une autre façon de faire ?
Filtre partiel.xls
A+
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
18 janv. 2013 à 12:53
Hummm, je n'avais pas vu que tu avais poster ton classeur mais je viens de regardé.
Je ne vois nulle part les textes que tu décrit dans ta question, s'agit de ROI etc. alors que ton classeur concerne des recettes ?
Sur quoi tu veux filtrer ?
A+
0
Bonjour lermitte222.
Ta remarque est exacte. Mais ce n'était qu'un exemple pour situer le problème.
Ceci dit, si tu ouvre mon classeur qui est expurger du superflus hors la question posée tu vas comprendre ce que je veux faire:
1) ouverture du classeur sur le MENU.
2) Bouton "CONSULTER UNE RECETTE" pour ouvrir le "MENU RECHERCHE"
3) Clic sur la recette désirée dans la liste (pas par N° car cela ne fonctionne pas encore)
4) Affichage du résultat de la recherche où TOUTES LES ZONES doivent apparaître REMPLIES AVEC LES INFORMATIONS qui proviennent de la ligne recherchée de la feuille NOUVELLE.
Pardon pour la confusion.
Merci pour ton interret
A+
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 18/01/2013 à 13:52
Obliger d'employer un UF ?
Propositon..
1°) cliquer sur la colonne titre, en l' occurrence A1
2°) InputBox pour le mot à chercher
3°) Toute les lignes qui ne corresponde pas sont cachée
4°) Re-cliquer sur le titre ré-affiche tout
Mais c'est toujours possible d'avoir ça sur un UF mais je trouve que ce serrait moins lisible.
Note : Les approximations (ton exemple) sont impossible avec Excel
Tu dis.
A+


Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
18 janv. 2013 à 15:04
Bonjour Lermite, bonjour CLAVERELI,

C'est comme cela que je l'avais compris:
Afficher un résultat après une recherche .. mais dans un UserForm.
0
Merci à tous pour votre aide. J'avance!
Bonne journée.
0