Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recherche dans une liste au fur et à mesure que je tape

degards

XLDnaute Occasionnel
Bonjour à vous !!!

Existe-t-il une fonction dans Excel qui me permettrais de compléter une cellule, où j'écris, selon une liste. Je m'explique un peu. Je suis sur le point de créer un feuille de travail pour mon emploi. Sur cette feuille nous devons compléter l'adresse de l'endroit où nous avons effectué le service. J'aimerais que dans cette cellule, lorsque je commence à taper le nom de la rue des suggestions apparaissent d'après toute la liste des rues de mon secteur.

Par exemple dans la cellule en question je commence à taper "Des", pour l'adresse " rue Dessaulles". J'aimerais que Excel me propose les nom de rue, avenue ou boulevard avec les lettres "des" dans le nom. Finalement je pourrais cliquer sur le nom exact que je désire voir inscrit.

Merci de votre aide à l'avance
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Recherche dans une liste au fur et à mesure que je tape

Bonjour,

Exemple de recherche intuitive au fur et à mesure de la frappe des caractères.

Code:
Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([A2:A16], Target) Is Nothing And Target.Count = 1 Then
    a = Application.Transpose(Sheets("bd").Range("liste"))
    Me.ComboBox1.List = a
    Me.ComboBox1.Height = Target.Height + 3
    Me.ComboBox1.Width = Target.Width
    Me.ComboBox1.Top = Target.Top
    Me.ComboBox1.Left = Target.Left
    Me.ComboBox1 = Target
    Me.ComboBox1.Visible = True
    Me.ComboBox1.Activate
    'Me.ComboBox1.DropDown    ' ouverture automatique au clic dans la cellule (optionel)
  Else
    Me.ComboBox1.Visible = False
  End If
End Sub

Private Sub ComboBox1_Change()
 If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
   Me.ComboBox1.List = Filter(a, Me.ComboBox1.Text, True, vbTextCompare)
   Me.ComboBox1.DropDown
 End If
   ActiveCell.Value = Me.ComboBox1
End Sub

JB
 

Pièces jointes

  • DVComboBoxIntuitif_lettresContenues-1.xls
    61 KB · Affichages: 49
Dernière édition:

degards

XLDnaute Occasionnel
Re : Recherche dans une liste au fur et à mesure que je tape

Bonjour Boisgonthier !!!

JE vous remercie de votre retour et ça fonctionne très bien dans votre fichier. Parcontre lorsque j'essaie de transposer la macro dans mon fichier et de l'adapter ça fonctionne plus du tout. Pourriez-vous me diriger vers les correctifs nécessaires afin que ce la puisse fonctionner. Je vous joins le fichier pour vous aider.

Merci beaucoup à l'avance
 

Pièces jointes

  • registre unité test.xls
    286 KB · Affichages: 42
  • registre unité test.xls
    286 KB · Affichages: 31
  • registre unité test.xls
    286 KB · Affichages: 28

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Recherche dans une liste au fur et à mesure que je tape

Il faut créer le combobox et modifier la propriété MatchEntry:MatchEntryNone (onglet développeur Excel>=2007, Boîte à outils contrôles Excel<=2003)


JB
 

Pièces jointes

  • registre unité test.xls
    286.5 KB · Affichages: 48
  • registre unité test.xls
    286.5 KB · Affichages: 49
  • registre unité test.xls
    286.5 KB · Affichages: 37
Dernière édition:

degards

XLDnaute Occasionnel
Re : Recherche dans une liste au fur et à mesure que je tape

merci beaucoup Boisgonthier !!! Cela fonctionne bien à première vu. Il ne me reste qu'à ajuster la police de caractère afin que le texte soit visible au complet. C'est très apprécié !!! Mais pendant que j'y suis est ce que tu saurais quel est la fonction ou la macro que je devrais utilisé pour lire deux valeurs (séparés par une virgule) et que dans une autre cellule la description de chacune des valeurs s'inscrivent.

Par exemple dans la colonne "code mip" si j'insris "1640" , "proférer des menaces" s'inscrit automatiquement dans la nature de l'événement. J'aimerais que lorsque j'inscrit "1640, 1430" dans la colonne "code MIP" , dans la colonne je retrouverais "proférer des menacces, voie de fait". Tout les codes et et description sont dans l'onglet "code"

Merci de me guider !!!
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Recherche dans une liste au fur et à mesure que je tape

Bonjour,

La virgule ne peut pas être le séparateur (les codes sont numériques). J'ai choisi le caractère :

1640:1430

On peut aussi imaginer une fonction perso.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect([g7:g65], Target) Is Nothing And Target.Count = 1 Then
    codes = Split(Target, ":")
    For i = LBound(codes) To UBound(codes)
      nature = Application.VLookup(Val(codes(i)), [codesMip], 2, False)
      If Not IsError(nature) Then
        tmp = tmp & nature & ","
      End If
    Next i
    'Application.EnableEvents = False
    If tmp <> "" Then
      Target.Offset(, 1) = Left(tmp, Len(tmp) - 1)
    Else
      Target.Offset(, 1) = ""
    End If
    'Application.EnableEvents = True
  End If
End Sub

ou

Code:
  Function natureEvenement(code)
    codes = Split(code, ":")
    For i = LBound(codes) To UBound(codes)
      nature = Application.VLookup(Val(codes(i)), [codesMip], 2, False)
      If Not IsError(nature) Then
        tmp = tmp & nature & ","
      End If
    Next i
    If tmp <> "" Then
      natureEvenement = Left(tmp, Len(tmp) - 1)
    Else
      natureEvenement = ""
    End If
  End Function

JB
 

Pièces jointes

  • registre unité test-7.xls
    287 KB · Affichages: 33
  • registre unité test-8.xls
    286.5 KB · Affichages: 24
Dernière édition:

degards

XLDnaute Occasionnel
Re : Recherche dans une liste au fur et à mesure que je tape

Bonsoir M. Boisgonthier ert merci énormément !!! Je ne pensais pas qu'on pouvait en faire autant avec Excel. Tout fonctionne comme sur des roulettes.

J'ai tenté de recopier votre "programme" afin de l'adapter à une autre colonne (colonne H), j'ai même modifié ce que je croyais afin de l'adapter correctement mais ça ne fonctionne pas du tout.

Est ce quelqu'un pourrait m,aider sur les corrections à apporter afin que le tout fonctionne comme la colonne AK

Merci à l'Avance !!!!
 

Pièces jointes

  • registre unité test2.xls
    281.5 KB · Affichages: 21
  • registre unité test2.xls
    281.5 KB · Affichages: 20
  • registre unité test2.xls
    281.5 KB · Affichages: 19

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Recherche dans une liste au fur et à mesure que je tape

Bonjour,

Cf PJ

JB
 

Pièces jointes

  • registre unité test2.xls
    283 KB · Affichages: 47
  • registre unité test2.xls
    283 KB · Affichages: 41
  • registre unité test2.xls
    283 KB · Affichages: 96
Dernière édition:

degards

XLDnaute Occasionnel
Re : Recherche dans une liste au fur et à mesure que je tape

MErci Merci et merci encore !!!

Mais j'ai 2 petits pépins de pas réglés:

Premièrement, est-ce quelqu'un pourrait me dire pourquoi je ne suis pas capable d'avoir une bordure entre les colonnes AQ et AX. J'ai tenté plusieurs choses mais je n'y arrive pas.

Deuxièment, je désire appliquer la fonction "Partager le classeur", cependant un message d'erreur m'apparait poru plusieurs ligne de commande (voir exemple en fichier joint). J'Ai trenté d'effacer chaques lignes de comande qui nuisaient mais lorsque je clique sur une case et bien le menu déroulant ne s'affiche pas dans la case où je clique mais dans une case supérieur et toujours la même. Alos quelqu'un pourrait me dire pourquoi ???

Merci à l'avance

Benoit
 

Pièces jointes

  • message erreur.jpg
    39.4 KB · Affichages: 18
  • message erreur.jpg
    39.4 KB · Affichages: 27
  • message erreur.jpg
    39.4 KB · Affichages: 23
  • registre unité test2-1.zip
    82.8 KB · Affichages: 24
  • registre unité test2-1.zip
    82.8 KB · Affichages: 41
  • registre unité test2-1.zip
    82.8 KB · Affichages: 16

degards

XLDnaute Occasionnel
Re : Recherche dans une liste au fur et à mesure que je tape

J'Ai réglé quelques problèmes de configuration mais j'aimerais comrpendre pourquoi la petite programmation ne fonctionne pas sur ma feuille "02". En plus j'aimerais avoir 31 feuilles dans mon classeur soit une feuille par jour du mois. J'ai tenté de copier le VB de la feuille "01" à la feuille "2" mais cela ne fonctionne pas. Je ne suis pas assez avancé en VBA pour modifier quoi que ce soit à ce niveau et c'est pourquoi je sollicite votre aide.

MErci
 

Pièces jointes

  • registre unité test2-1.zip
    121 KB · Affichages: 14
  • registre unité test2-1.zip
    121 KB · Affichages: 16
  • registre unité test2-1.zip
    121 KB · Affichages: 23

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Recherche dans une liste au fur et à mesure que je tape

Bonsoir,

Il faut dupliquer l'onglet (déplacer l'onglet en appuyant sur la touche Ctrl)

JB
 

Pièces jointes

  • Copie de registre unité test2-1.xls
    464.5 KB · Affichages: 36

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…