Effacement du liste déroulante

bonjour à tous,

j'ai trouvé sur les forum une liste déroulante qui facilite la saisie de nom à partir d'une BDD.

ce code fonctionne très bien.

je souhaiterai juste que lorsque la case est déjà rempli avec un nom alors le code ne se mets pas en route.

je comprends la logique mais je n'ai pas encore les clefs pour réaliser cette ligne

merci d'avance à vous

cdt

Edit modo : fichier altéré, supprimé

Bonjour JeromeB

J'ai supprimé le fichier car celui-ci est altéré

Un fichier de 165 octets ne peut pas être un classeur Excel, de plus merci de l'enregistrer au format ".xlsm"

A+

merci à vous ,

ci joint le fichier

cdt

14test2.xltm (25.11 Ko)
16test2.xlsm (23.81 Ko)

Bonjour

Un essai

11test2.xlsm (25.50 Ko)

bonjour à tous,

merci pour ce retour

cela est exactement l'effet recherché mais j'ai un message d'erreur lorsque je souhaite insérer une ligne ou que je sélectionne toute la ligne

merci d'avance à vous

cdt

Bonjour

Oui effectivement pour ce code si vous voulez supprimer une ligne il faut activer un cellule du tableau autre que dans la colonne [Nom], faire clic droit, supprimer, ligne de tableau. Pour entrer un nom dans la colonne [Nom] on utilise la liste déroulante, choisir le nom et faire "Entrer" . Personnellement j'aurais fait différemment comme dans ce fichier joint et sans code VBA:

12fcy-essai.xlsx (10.47 Ko)

bonjour,

merci pour ce retour mais hélas, il ne convient pas car ma liste de "base" change via une requête et je n'ai pas une aide de frappe lorsque je cherche un nom.

le seul bémol du code et cette présence permanente, même quand il y a un nom et je n'ai pas assez de connaissances pour le modifier

merci d'avance à vous si vous avez d'autres solutions je suis ouvert à tous

très cdt

très bonne fête de fin d'année à vous

bonjour,

j'ai changé le code comme ceci, cela fonctionne mais je ne suis pas un expert donc si une personne peut me confirmer que cela est bon merci à vous:

Private Sub Worksheet_selectionChange(ByVal Target As Range)

'----------------------------------------------liste deroulante pour chercher le nom----------------------------------------------------------------------------------
'rechereche de nom
Dim tTab, tREC(), x
Dim LigneAct As String
Dim Valcell As String


If Selection.Count > 1 Then Exit Sub
Me.cbREC.Visible = False

LigneAct = ActiveCell.Row 'trouve la ligne de la cell selectionée
Valcell = Cells(LigneAct, 4).Value 'donne la valeur de la cell selectionée


If Valcell <> "" Then Exit Sub 'si le cellule est diff de nul exit sub sinon la liste est visible

If Not Intersect(Target, Columns(4)) Is Nothing Then
Me.cbREC.Clear
Me.cbREC.Top = Target.Top
Me.cbREC.Left = Target.Left
Me.cbREC.Height = ActiveCell.RowHeight + 4
Me.cbREC.Width = ActiveCell.ColumnWidth * 5.5
With Worksheets("Personnel")
tTab = .Range("A2:B" & .Range("B" & Rows.Count).End(xlUp).Row).Value
' tTab = .Range(Range("A" & Rows.Count).End(xlUp).Row).Value
End With
For x = 1 To UBound(tTab, 1)
'Me.cbREC.AddItem tTab(x, 1) & " " & tTab(x, 2)
Me.cbREC.AddItem tTab(x, 1)
Next
Me.cbREC.Visible = True
Me.cbREC.Activate
End If

encore bonne fête à tous

cdt

Bonjour JeromeB

Quand on est pas expert, ce qui est normal, on commence par se documenter et apprendre
https://www.excel-pratique.com/fr/vba/variables

LigneAct étant un numéro de ligne, la variable doit être définie comme As Long

Bon réveillon et à l'année prochaine

merci à vous et très bon réveillon

cdt

Rechercher des sujets similaires à "effacement liste deroulante"