Liste déroulante demi saisie

Bonjour,

J'ai un problème avec la liste déroulante demi saisie.

En effet d'après les tutoriels avec =DECALER

Rien ne se fait.

J'ai crée un gestionnaire de noms : Nom et catégorie, et j'aimerai l'intégré dans Inventaire Banque

Comment résoudre ce problème ?

Merci d'avance

26gestion.xlsx (267.72 Ko)

Bonjour

Tu ne peux que traiter la colonne B

Tu sélectionnes B3:B37

Ruban --> Onglet Données -->Validation des données -->Liste et formule

=DECALER(Nom;EQUIV(B3&"*";Nom;0)-1;;NB.SI(Nom;B3&"*"))

Attention ce n'est pas la même qui était en place, tu avais B5 à la place de B3

Ensuite il faut trier la colonne Nom de la page "Base de Donnée"

Merci de ta réponse,

Cependant, je rencontre un problème.

Une fois le nom mis, y'a pas la catégorie qui se met automatiquement par rapport au nom.

Comment y remédier à ça ?

Cordialement

Bonjour

Supprime d'abord les listes de validation en colonne C

Copie cette formule dans la colonne C à partir de C3

=SIERREUR(RECHERCHEV(B3;Tableau10[#Tout];2;FAUX);"")

Super,

Juste une dernière chose, j'aimerai bien avoir liste de cascade saisie semai-automatique type google.

Comme ce document çi-joint :

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/DVConditionSaisieIntuitiveDepartVille_2010.xlsm

Celui qui m'intéresse le plus est celui de la colonne B. Évidemment, la console m'indique une erreur vu que je suis encore une novice dans le domaine de VBA.

Voici mon code :

Dim TblNom()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([b3:b10000], Target) Is Nothing And Target.Count = 1 Then
    b = Sheets("Base de Donnée").Range("Nom").Value
    Set d1 = CreateObject("Scripting.Dictionary")
    For Each c In b
       d1(c) = ""
    Next c
    TblDep = d1.keys
    Me.ComboBox1.List = d1.keys
    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
    If Target <> "" Then SendKeys "{esc}"
  Else
    Me.ComboBox1.Visible = False
  End If
End Sub

Private Sub ComboBox1_Change()
 If Me.ComboBox1 <> "" Then
   Set d1 = CreateObject("Scripting.Dictionary")
   tmp = UCase(Me.ComboBox1) & "*"
   For Each c In TblDep
     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

Et dans le module 2 (car la module 1 est déjà présent pour une autre feuille)

Sub xx()
  For Each c In Selection
    c.Value = Trim(c)
  Next c
End Sub

Et celui ci pour le module 1 en cas où si besoin

Sub Recherche()
Dim Ligne

  Ligne = Application.Match(CSng(Date), Columns("B"), 0)
  If Not IsError(Ligne) Then
    On Error Resume Next
    Rows(Ligne).ShowDetail = True
    On Error GoTo 0
    Range("B" & Ligne).Select
  End If
End Sub

Cordialement

Bonjour,

  • Frapper des lettres contenues dans le nom (chat e.g.)
  • Le combobox affiche tous les noms qui contiennent chat
  • un double-clic affiche tous les noms
Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([B3:B1000], Target) Is Nothing And Target.Count = 1 Then
    a = Application.Transpose(Sheets("base de donnée").Range("nom"))
    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

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Me.ComboBox1.List = a
  Me.ComboBox1.Activate
  Me.ComboBox1.DropDown
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 13 Then ActiveCell.Offset(1).Select
End Sub

Ceuzin

51gestion-2.zip (299.97 Ko)

Bonjour,

Super, le problème est résolu et merci beaucoup à vous !

Bonne journée

Rechercher des sujets similaires à "liste deroulante demi saisie"