Liste déroulante avec saisie automatique et nombres ne fonctionne pas

Bonjour à tous,

je suis profane en Excel. Donc soyez indulgent avec mon vocabulaire technique. Jusqu’à présent je me suis débrouillé avec les divers tutos trouvés sur le net, mais ici je suis bloqué par cette liste déroulante avec saisie automatique élaboréeà partir de nombre (type code postal)
Sur la deuxième feuille de mon classeur la colonne F reprend les codes INS au format texte (81002,82005,92045,etc...), j'ai nommé la première cellule F1 p_ins, puis la colonne F en l_ins et définis un nom f_ins avec cette formule =DECALER(p_ins;0;0;NBVAL(l_ins);1). Ensuite si la première feuille dans la colonne G au titre code INS, je sélectionne une plage de cellules à partir de G2 et exécute une validation de donnée avec cette formule =SI(G2<>"";DECALER(f_ins;EQUIV(G2&"*";f_ins;0)-1;;NB.SI(f_ins;G2&"*");1);f_ins). je choisis bien liste dans l'onglet option et décoche "quand les données..." dans l'onglet alerte d'erreur.

Cette façon de faire fonctionne avec toutes mes autres listes (nom).

Merci!

Bonjour et bienvenue,

peux-tu poster le fichier (voire simplifié) avec ta macro actuelle pour que l'on puisse travailler sur un cas concret et adapté ? merci

Voilà!

C'est la saisie semi-automatique qui ne fonctionne pas (pour corriger mon premier poste).

60code-inst.xlsx (39.20 Ko)

bonjour

du qui marche

=DECALER(dept;EQUIV(G2;GAUCHE(l_noms;NBCAR(G2));0)-1;;SOMMEPROD(--(GAUCHE(l_noms;NBCAR(G2))*1=G2*1)))

j'ai remplcé le d_noms ( 1ere cel ) par dept ,mais bon ...............

41mcgs.xlsx (38.27 Ko)

Merci Tulipe_4 mais cela ne fonctionne pas ici.

Sur la colonne F (code INS Division), j'ai besoin d'une liste déroulante avec saisie semi-automatique. Dés, que je rentre 2 ou trois chiffres de la cellule et que je clique sur la fléche une présélection se fait dans la liste déroulante.

merci.

re

eh ben ,c'est dans col g que ça se passe , et ça marche ,tu saisis en G 2 et dans la meme cel tu as la liste qui correspond à ce que tu viens de taper

impossible dans F il y a une formule :REcherchev.....

Oui tu as raison, je me suis trompe en citant la colonne F. C'est bien en G2 que le menu deroulant ne fonctionne pas tout comme la saisie semi-automatique. Pourrais tu me faire simplement un classeur avec la colonne des codes sur une feuille et le menu déroulant sur l'autre. De cette façons, je pense comprendre mieux et cela me permettra de sauver le fichier pour memo. Il n'y a aucune obligation et c'est seulement si tu as le temps.

Merci!

bonjour

désolé ,je n'ai pas mieux en boutique

néanmoins j'ai amélioré le 1 er choix

avec des explications sur l'utilisation et découverte d'un "mystère" lors de l'utilisation

36mcgs2.xlsx (40.33 Ko)

Bonjour,

liste déroulante avec saisie automatique élaborée à partir de nombre (type code postal)

je n'ai toujours pas compris ce que tu entendais par saisie automatique ! à moins que cela ne soit "saisie intuitive" ou "aide à la saisie" à partir d'une début ??

Oui aide à la saisie ou semi automatique. Je corrige dans le poste suivant.

Merci Tulipe 4 mais cela ne fonctionne pas. Probablement un problème de version, ici office 365 pro.

Je passe à autre chose sur le fichier (mise en forme) et tableau de stats. Encore merci pour ton aide, c'est dommage ce "bug".

je vais poursuivre sur une version que je maîtrise mieux

63code-inst.xlsm (52.87 Ko)
Dim choix()

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Count = 1 And Target.Row > 1 Then
        choix = Sheets("DIVISION").Range("Tableau1[Code]").Value
        With Me.ComboBox1
            .List = choix
            .Height = Target.Height + 4
            .Width = Target.Width + 12
            .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
63code-inst.xlsm (52.87 Ko)
Dim choix()

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Count = 1 And Target.Row > 1 Then
        choix = Sheets("DIVISION").Range("Tableau1[Code]").Value
        With Me.ComboBox1
            .List = choix
            .Height = Target.Height + 4
            .Width = Target.Width + 12
            .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

bonjour

pour ma culutre personelle ; le combo , c'est un par ligne automatiquement ou alors ???????

Non, c'est le même ComboBox1 qui se repositionne sur le champ sélectionné, la taille est elle aussi ajustée à la cellule

        With Me.ComboBox1

            .Height = Target.Height + 4
            .Width = Target.Width + 12
            .Top = Target.Top - 2
            .Left = Target.Left

        End With

Merci à tous les deux de m'avoir aidé. La liste fonctionne.

Rechercher des sujets similaires à "liste deroulante saisie automatique nombres fonctionne pas"