Saisie Semi-Automatique directement dans une cellule ?

Bonjour à tous , novice sur le sujet , j'ai donc besoin de votre aide précieuse .

Je vous expose le problème :

Je tape en cellule C2 le nom d'une personne , en faisant ensuite entrée , j'ai tout son pédigrée qui s'affiche en C3-C4-C5-C6 etc jusqu'en C9 par le biais d'une base de donnée sur un autre onglet .

ma question est la suivante :

Est t'il possible qu'au fur et à mesure que je tape le nom de la personne ça me propose les noms existants de la base de données directement ou il faut réaliser une fenêtre comme celle ci ?

9doc1.docx (196.64 Ko)

Bonjour,

C'est possible, voir ici

Bonjour,

C'est possible, voir ici

Bonsoir Steelson , c'est exactement ce qu'il me faudrait c'est possible que tu me le realises sur mon fichier ?

voici le lien Ci-joint car c'est volumineux

Onglet : Rech COND

En cellule C2 j'aimerais exactement ce que tu m'as fait svp .

Bonjour,

j'étais bien parti ... mais non

d'abord je ne sais pas où cela se trouve

ensuite quand je vois les multiples userform, je préfère ne pas y toucher

capture d ecran 629

par contre je peux expliquer comment faire, cela servira à maintenir la cohérence de l'ensemble et la maintenance

Insère un combobox dans ta page, n'importe où

Je passe en mode Développement > Création

capture d ecran 631

J'insère ensuite un combobox

capture d ecran 632

Mes données se trouvent ici :

Sheets("Nomenclature").Range("Tableau1[Libellé]").Value

à adapter : feuille Nomenclature, tableau Tableau1 et colonne Libellé

Je nomme la cellule qui sera le choix : ici Saisie que l'on retrouve ici

Intersect(Target, Range("Saisie"))

à adapter

Le code est le suivant :

Dim choix()

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("Saisie")) Is Nothing And Target.Count = 1 Then
        choix = Sheets("Nomenclature").Range("Tableau1[Libellé]").Value
        With Me.ComboBox1
            .List = choix
            .Height = Target.Height + 4
            .Width = Target.Width
            .Top = Target.Top - 2
            .Left = Target.Left
            .Value = Target
            .Visible = True
            .Activate
        End With
    Else
        Me.ComboBox1.Visible = False
    End If
End Sub

Private Sub ComboBox1_Change()
    Set dico = CreateObject("Scripting.Dictionary")
    For Each Item In choix
        If UCase(Item) Like UCase(Me.ComboBox1) & "*" Then dico(Item) = ""
    Next
    Me.ComboBox1.List = dico.keys
    Me.ComboBox1.DropDown
    ActiveCell.Value = Me.ComboBox1
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        If IsError(Application.Match(ActiveCell, choix, 0)) Then ActiveCell = ""
        ActiveCell.Offset(1).Select
    End If
End Sub

inspiré de Jacques Boisgontier que je remercie (j'ai surtout introduit la notion de tableau)

Rechercher des sujets similaires à "saisie semi automatique directement"