Pb liste déroulante semi automatique

Y compris Power BI, Power Query et toute autre question en lien avec Excel
S
Sandiih
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 juin 2015
Version d'Excel : 2013

Message par Sandiih » 15 juin 2015, 11:01

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 :oops: :oops: :oops: :oops:
Alors j'espère que vous pourrez m'aider à régler ce pb mais aussi à le comprendre :mrgreen:

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 :evil:

Merci de votre aide c'est pour ma soutenance de fin d'année :)
Outil pénibilité à améliorer.xlsm
(63.66 Kio) Téléchargé 22 fois
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'004
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 15 juin 2015, 19:55

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)
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
c
ceuzin
Membre dévoué
Membre dévoué
Messages : 569
Appréciations reçues : 24
Inscrit le : 29 octobre 2011
Version d'Excel : 2002

Message par ceuzin » 15 juin 2015, 20:57

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
Outil pénibilité à améliorer-1ComboBox.xlsm
(72.06 Kio) Téléchargé 22 fois
Outil pénibilité à améliorer-1.xlsm
(58.82 Kio) Téléchargé 25 fois
Modifié en dernier par ceuzin le 15 juin 2015, 21:15, modifié 6 fois.
S
Sandiih
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 juin 2015
Version d'Excel : 2013

Message par Sandiih » 15 juin 2015, 21:03

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 :/
Avatar du membre
Force rouge
Membre impliqué
Membre impliqué
Messages : 1'004
Inscrit le : 17 mai 2015
Version d'Excel : 2007FR

Message par Force rouge » 15 juin 2015, 21:26

Bon ben Ceuzin que je salue au passage a résolu votre problème!
Selon ce que tu cherches, tu trouveras soit une excuse soit une solution.
S
Sandiih
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 15 juin 2015
Version d'Excel : 2013

Message par Sandiih » 15 juin 2015, 22:22

Merci infiniment, j'espère un jour comprendre suffisamment pr devenir indépendante en VBA :P
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 !
c
ceuzin
Membre dévoué
Membre dévoué
Messages : 569
Appréciations reçues : 24
Inscrit le : 29 octobre 2011
Version d'Excel : 2002

Message par ceuzin » 15 juin 2015, 22:29

-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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message