Suppression dynamique d'items d'un combobox

  • Initiateur de la discussion Initiateur de la discussion dreamalain
  • 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 !

D

dreamalain

Guest
Bonjour à tous

Voici un code qui fonctionne pour supprimer une ligne d'une base de donnée alimentée par combobox
Le problème et que la liste déroulante ne tiens pas compte des suppressions
Il faudrait que la mise à jour soit faite sans fermer complétement l'userform
Merci d'avance


[Private Sub ComboVM1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Reponse As Variant
Dim Indexlist

Reponse = MsgBox("SUPPRIMER ?", 52, "Effacement de données")
If Reponse = vbNo Then Exit Sub

Indexlist = ComboVM1.ListIndex + 2
If Indexlist < 2 Then Exit Sub
Sheets("VIANDES").Rows(Indexlist).Delete
ComboVM1.ListIndex = -1
ComboVM1.Value = ""
Application.ScreenUpdating = False
End Sub]
 
Re : Suppression dynamique d'items d'un combobox

Re,

un exemple ci-dessous, si alimentation via la propriété "list" :
Code:
Option Explicit
Private Sub ComboBox1_Click()
With ComboBox1
    If .ListIndex <> -1 Then .RemoveItem (.ListIndex): .ListIndex = -1
End With
End Sub
Private Sub UserForm_Initialize()
ComboBox1.List = Range("A1:A10").Value
End Sub

@+
 
Re : Suppression dynamique d'items d'un combobox

Merci Pierrot

Ma base de donnée est bien alimentée via la propriété "liste" de cette maniere :

Private Sub ComboVM1_Change()
With Sheets("VIANDES")
If ComboVM1.ListIndex = -1 Then
Me.ComboPv1 = ""
Me.TextBoxEfv1 = ""
Me.TextBoxRv1 = ""
Me.ComboOuV1 = ""
Me.ComboCoV1 = ""
Exit Sub
End If
Me.ComboPv1 = .Cells(ComboVM1.ListIndex + 2, 2)
Me.TextBoxEfv1 = .Cells(ComboVM1.ListIndex + 2, 3)
Me.TextBoxRv1 = .Cells(ComboVM1.ListIndex + 2, 6)
Me.ComboOuV1 = .Cells(ComboVM1.ListIndex + 2, 9)
Me.ComboCoV1 = .Cells(ComboVM1.ListIndex + 2, 10)
End With
End Sub

En fait J'ai déjà
Private Sub UserForm_Initialize()
Dim cell As Range

With Sheets("VIANDES")
Me.ComboVM1.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
Me.ComboVM2.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
Me.ComboVM3.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
......
......

Et mon code n'accepte pas


Private Sub UserForm_Initialize()
ComboBox1.List = Range("A1:A10").Value
End Sub

Que tu m'as donné

Une autre solution ?
 
Re : Suppression dynamique d'items d'un combobox

Bonjour,

Et mon code n'accepte pas

Private Sub UserForm_Initialize()
ComboBox1.List = Range("A1:A10").Value
End Sub
ce code n'était qu'un exemple pour te montrer comment j'alimentais ma combo, à noter que pour un même objet tu ne peux avoir qu'une seule procédure pour un événement donné, en l'occurence dans le module de ton usf tu n'auras qu'une procédure "Private Sub UserForm_Initialize" :


donc pour supprimer l'item, utiliser un code de ce type, nom de l'objet à adapter
Code:
With ComboBox1
    If .ListIndex <> -1 Then .RemoveItem (.ListIndex): .ListIndex = -1
End With

bonne journée
@+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
830
E
  • Résolu(e)
Réponses
4
Affichages
810
Réponses
11
Affichages
2 K
Réponses
8
Affichages
1 K
L
Réponses
9
Affichages
1 K
Retour