Recherche V dans un menu déroulant

diego3110

XLDnaute Junior
Bonjour le forum,

Je ne savais pas trop comment être explicite dans mon titre....

J'ai une liste de phrase dans une feuille qui me sert comme menu deroulant dans une autre.


Voici mon pb, je voudrais que l'utilisateur puisse taper un mot et que la liste deroulante me proposent uniquement les phrases de la liste qui contienne ce mot? (cela resseemble un peu à un moteur de recherche sur ma colonne de phrase).

Est ce que vous croyez que cel est possible?

Merci d'avance et bonne journée
 

hoerwind

XLDnaute Barbatruc
Re : Recherche V dans un menu déroulant

Bonjour,

Cela devrait être possible, mais il faudrait que :
- tu précises si tu préfères une solution par formules ou par macro
- tu joignes un fichier exemple reprenant les données et le résultat à obtenir.

Édition : salut Bruno, pas vu !
 

diego3110

XLDnaute Junior
Re : Recherche V dans un menu déroulant

Bonjour Bruno, hoerwind,

Je mets en fichier joint mon exemple. Pour l'instant ce que j'ai reussi à faire : l'utilisateur ecrit un debut de mot et la liste deroulante propose l'ensemble des phrases commencant par ce mot.

Pour la solution pas de preference entre formule et macro.

Merci
 

Pièces jointes

  • test.xls
    29.5 KB · Affichages: 150
  • test.xls
    29.5 KB · Affichages: 152
  • test.xls
    29.5 KB · Affichages: 149

hoerwind

XLDnaute Barbatruc
Re : Recherche V dans un menu déroulant

re,

Je crains que cela soit fort difficile par formule, si ce n'est en passant par des colonnes intermédiares.
Peut-être par macro, mais là ce n'est pas ma tasse de thé.

Si tu ne reçois pas de réponse au cours des heures suivantes, je te proposerai la solution à laquelle je pense.
Patience donc.
 
C

Compte Supprimé 979

Guest
Re : Recherche V dans un menu déroulant

Re,
Salut hoerwind ;)

Je confirme ce que dis hoerwind, c'est impossible à réaliser sans VBA
Sachant qu'un terme (exemple : organisation) peut se trouver sur plusieurs lignes, mais ne pas se suivre.

A moins que notre chère Monique (reine du matriciel) nous contredise :eek:

A+
 
C

Compte Supprimé 979

Guest
Re : Recherche V dans un menu déroulant

Re,

Ci-joint ton fichier avec du code qui à chaque changement du terme dans la cellule
1) effectue un filtre élaboré sur la feuille 'liste'
2) modifie la donnée de validation en conséquence

On peut faire ça aussi avec une Combobox

Nota : l'utilisation actuelle n'est peut-être pas pratique à toi de nous dire

A+
 

Pièces jointes

  • Diego3110_Test.xls
    49 KB · Affichages: 136

Monique

Nous a quitté
Repose en paix
Re : Recherche V dans un menu déroulant

Bonjour,

Avec une liste de mots-clefs ?
(Il faut déjà faire la liste)
1ère liste de validation : les mots-clefs ou on tape quelques lettres
On obtient la liste des missions contenant le mot choisi
2ème liste de validation : on choisit selon le résultat donné par le 1er choix
(pas très direct)
 

Pièces jointes

  • MotClefDiego3110.xls
    38 KB · Affichages: 108

diego3110

XLDnaute Junior
Re : Recherche V dans un menu déroulant

re,

Je vous remercie pour votre aide. Je vais étudier cela d'ici à demain et je reviens vers vous pour vous dire quelle solution peut être la mieux adapter à mon projet.

En tout les cas, je vous remercie pour votre réactivité et gentillesse.

A+
 

diego3110

XLDnaute Junior
Re : Recherche V dans un menu déroulant

Bonjour à tous,

J'ai opté pour la solution de Bruno. celle de Monique est nickel mais comme ma liste de mission va s'aggrandir dans le temps, je n'ai pas encore l'ensemble des mots clefs qui pourraient être nécessaire.

J'ai tenté d'integrer la macro dans mon projet mais y'a un bug. Est ce que je dois également integrer le bout de programme qui se trouve dans le module 1 ?
Je n'ai pas reussi à trouver ce qu'etait "=choixmissions"...pourrais tu m'apporter un éclairage?

Sinon c'est exactement ce que j'avais imaginé...mais que je n'étais pas capable de réaliser seul. Merci

a+ et bonne journée
 

diego3110

XLDnaute Junior
Re : Recherche V dans un menu déroulant

re,

Désole pour le message précedent. j'ai reussi à faire marcher la macro !!

Par contre, il me rest un petit souci. J'aimerais rajouté une condition car si l'on ecrit un mot (donc la case n'est pas vide) et que celui ci ne se trouve pas dans la liste des missions cela bug.

Croyez vous qu'il est possible que la macro ne bug pas en demandant de laisser la possibilité à l'utilisateur d'ecrire ce qu'il veut ? merci
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Recherche V dans un menu déroulant

Salut diego3110,

Pour que le code ne bug pas il faut ajouter un peu de code
Voci le code entier avec la modification à partir de "On Error"
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim DLig As Long
  ' Vérifier que l'on fait bien un changement dans la colonne B
  If Intersect(Range("B:B"), Target) Is Nothing Then Exit Sub
  '
  If Target.Value <> "" Then
    With Sheets("Liste")
      DLig = .Range("A" & Rows.Count).End(xlUp).Row
      .Range("B2").Value = "*" & Target.Value & "*"
      .Range("A1:A" & DLig).AdvancedFilter Action:=xlFilterCopy, _
                                           CriteriaRange:=.Range("B1:B2"), CopyToRange:=.Range("C1"), _
                                           Unique:=False
      DLig = .Range("C" & Rows.Count).End(xlUp).Row
    End With
    On Error Resume Next
    With Target.Validation
      .Delete
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
           Operator:=xlBetween, Formula1:="=ChoixMissions"
      If Err.Number <> 0 Then
        MsgBox "Ce terme n'a pas été trouvé dans la liste !" & vbCr _
        & "Choix sur la liste globale", vbInformation, "OUPS ...."
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
           xlBetween, Formula1:="=ListeMissions"
      End If
      .ShowError = False
    End With
    On Error GoTo 0
  Else
    With Target.Validation
      .Delete
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
           xlBetween, Formula1:="=ListeMissions"
      .ShowError = False
    End With
  End If
  Target.Select
End Sub

A+
 

Discussions similaires

Réponses
13
Affichages
655
Réponses
5
Affichages
440
Réponses
1
Affichages
411

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino