Liste deroulante avec code vba

  • Initiateur de la discussion Initiateur de la discussion bennisay
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bennisay

XLDnaute Occasionnel
Bonjour le forum
j ai un tableau facture qui lui manque une liste deroulante dans la colonne C
cette liste a comme caractère si je tappe les premiers lettre de la reference je dois avoir une celection de reference qui commence avec ces lettre pour bien minimiser le tableau vu le nombre important de reference qui contien la base de donnee rederence vous trouverez ci joint mon fichier
et merci
 

Pièces jointes

Re : Liste deroulante avec code vba

Bonjour..
Et dans ton post. il manque juste un peu de ponctuation..
Bref, j'ai lu trois fois, je n'ai rien compris.

sinon. dans ton onglet "Livraison"
colonne A: tu fais Données, validations des données, Liste / =BDD_REFERENCE
et voila. tu as ta liste déroulante
 
Re : Liste deroulante avec code vba

Bonjour,

Avec recherche intuitive dans combobox.
La liste du combobox se réduit au fur et à mesure de la frappe des premiers caractères ( ou contenus) de l'item cherché.

Code:
Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([C7:C30], Target) Is Nothing And Target.Count = 1 Then
    a = Application.Transpose(Sheets("bdd").Range("liste"))
    Me.ComboBox2.List = a
    Me.ComboBox2.Height = Target.Height + 3
    Me.ComboBox2.Width = Target.Width
    Me.ComboBox2.Top = Target.Top
    Me.ComboBox2.Left = Target.Left
    Me.ComboBox2 = Target
    Me.ComboBox2.Visible = True
    Me.ComboBox2.Activate
    'Me.ComboBox1.DropDown    ' ouverture automatique au clic dans la cellule (optionel)
  Else
    Me.ComboBox2.Visible = False
  End If
End Sub

Private Sub ComboBox2_Change()
 If Me.ComboBox2 <> "" And IsError(Application.Match(Me.ComboBox2, a, 0)) Then
   Me.ComboBox2.List = Filter(a, Me.ComboBox2.Text, True, vbTextCompare)
   Me.ComboBox2.DropDown
 End If
   ActiveCell.Value = Me.ComboBox2
End Sub

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

JB
 

Pièces jointes

Dernière édition:
Re : Liste deroulante avec code vba

BONJOUR
merci pour ton aide précieux j ai un ptt probleme
quand j ai copie le code dans mon fichier original
j ai eu un message ( Membre de methode ou de donnees introuvable) et j ai la COMBOBOX2 en bleu
vous avez une idee ?
je copie tt mon code pour voir s il y a une erreur

[Dim a()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([C7:C30], Target) Is Nothing And Target.Count = 1 Then
a = Application.Transpose(Sheets("bdd").Range("liste"))
Me.ComboBox2.List = a
Me.ComboBox2.Height = Target.Height + 3
Me.ComboBox2.Width = Target.Width
Me.ComboBox2.Top = Target.Top
Me.ComboBox2.Left = Target.Left
Me.ComboBox2 = Target
Me.ComboBox2.Visible = True
Me.ComboBox2.Activate
'Me.ComboBox1.DropDown ' ouverture automatique au clic dans la cellule (optionel)
Else
Me.ComboBox2.Visible = False
End If
End Sub

Private Sub ComboBox2_Change()
If Me.ComboBox2 <> "" And IsError(Application.Match(Me.ComboBox2, a, 0)) Then
Me.ComboBox2.List = Filter(a, Me.ComboBox2.Text, True, vbTextCompare)
Me.ComboBox2.DropDown
End If
ActiveCell.Value = Me.ComboBox2
End Sub

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

Private Sub ComboBox58_Change()

End Sub

Private Sub CommandButton1_Click()
Dim msg, style, title

Dim Retour As Integer

With Sheets("LIVRAISON")


'---------------- Impression noir et blanc ou couleur ------------------------
Retour = MsgBox("Voulez-vous une copie couleur : N/O ", vbNoYes + vbCritical)
If Retour = vbNo Then
With ActiveSheet.PageSetup
.BlackAndWhite = True
End With
End If
ActiveSheet.PageSetup.PrintArea = "B2:I55"
'ActiveSheet.PrintPreview
ActiveWindow.SelectedSheets.PrintPreview 'PrintOut copies:=1
End With
End Sub

Private Sub CommandButton2_Click()
UserForm3.Show
End Sub


]
 
Re : Liste deroulante avec code vba

REB BOISGONTIER
Voila comment il ressemble mon fichier original
 

Pièces jointes

Re : Liste deroulante avec code vba

reb
JE suis desole je suis debutant en VBA
j arrive a tt comprendre Il faut que combobox2 ait la propriété MatchEntry à MatchEntryNon


je suis desole je sais pas comment faire cela
je vous ai envoye mon fichier original comme ca vous pourriez bien savoir comment faire passer ce probleme de combobox 2
de plus si vous appuyiez sur la touche NOUVEAUX en haut de ma feuille LIVRAISON je recois un message de blocage
merci de bien vouloir m aider
 
Re : Liste deroulante avec code vba

Si on frappe MK dans le combobox en C7, on obtient les ref qui contiennent MK.
Dans l'onglet Développeur, il y a un icône Propriétés

JB
 

Pièces jointes

Dernière édition:
Re : Liste deroulante avec code vba

Bonjour
Merci infiniment pour ton soutien le code marche tres bien
juste une chose la MACRO NOUVEAUX en haut de page de la feuille LIVRAISON avec quoi je réinitialise le bon livraison me donne
un message / [ la méthode paste de la classe worksheet a échoué ]
et dans VBA j ai la phrase [ activesheet.paste ] en jaune
comment debloquer ce code
et merci d avance
 
Re : Liste deroulante avec code vba

bonjour BOISGONTIER le forum

Merci merci bcp tout founctionne parfaitement bien
j ai encore besoin une liste deroulante pour la colonne des depots .colonne D7😀36 FEUILLE LIVRAISON de la façon montrer dans le fichier joint
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour