Pb liste déroulante semi automatique

Bonjour tout le monde,

Malgré toutes mes tentatives, je n'arrive pas à créer une liste déroulante semi automatique, même sur les fichiers tuto ... Je suis déséspérée

Alors j'espère que vous pourrez m'aider à régler ce pb mais aussi à le comprendre

Dans le fichier joint, ma liste se trouve dans l'onglet 2 en colonne A et je voudrais que ma liste déroulante semi auto commence en H9

J'ai déjà essayé la formule =DECALER(Liste;EQUIV(B3&"*";Liste;0)-1;0;NB.SI(Liste;B3&"*")) avec "Liste" une formule nommée mais impossible

Merci de votre aide c'est pour ma soutenance de fin d'année

Bonjour...Pardon mais j'ai pas du tout compris que doit contenir la liste déroulante et où elle doit être car dans l'onglet en H9 ça n'a pas trop de sens (à moins que mes yeux me trahissent)

Bonsoir,

cf PJ

1-Avec Données/validation

=DECALER(Liste;EQUIV(F8&"*";Liste;0)-1;;NB.SI(Liste;F8&"*"))

Frapper les premières lettres puis cliquer sur la flèche

2- Avec ComboBox (la vraie saisie intuitive type GOOGLE)

Il suffit de frapper les premiers caractères

Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([F8:F20], Target) Is Nothing And Target.Count = 1 Then
    a = Sheets("Posture pénible des tâches").Range("liste").Value
    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
  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
   Set d1 = CreateObject("Scripting.Dictionary")
   tmp = UCase(Me.ComboBox1) & "*"
   For Each c In a
     If UCase(c) Like tmp Then d1(c) = ""
   Next c
   Me.ComboBox1.List = d1.keys
   Me.ComboBox1.DropDown
 End If
   ActiveCell.Value = Me.ComboBox1
End Sub

Ceuzin

C'est déjà très gentil de s’intéresser à mon pb et de vouloir m'aider, merci !!

Les éléments de ma liste déroulante se trouve dans l'onglet "postures pénibles des tâches " en colonne A

Je voudrais qu'une liste déroulante ac ces éléments apparaisse dans la colonne F de l'onglet "estimation"

De plus, je voudrais que cette liste soit semi automatique c-à-d que si je rentre "MA" elle me propose "manipulation de pdts chmq" ou bien "Manutention" ... Mais impossible :/

Bon ben Ceuzin que je salue au passage a résolu votre problème!

Merci infiniment, j'espère un jour comprendre suffisamment pr devenir indépendante en VBA

Il suffit que je recopie tout le code dans la liste des codes? ( pcq depuis hier mon fichier à été modifié) Merci infiniment en tout cas c'est pile poil ce que je voulais !

  • il faut créer un combobox1 avec la propriété MatchEntry à None.
  • Clic-droit sur le nom d'onglet Estimation
  • Visualiser le code

-L'instruction

If Not Intersect([F8:F20], Target) Is Nothing And Target.Count = 1 Then

spécifie le champ de saisie.

-Liste est un champ nommé

Ceuzin

Rechercher des sujets similaires à "liste deroulante semi automatique"