Suppression de données via ListBox

Bonjour,

Dans mon fichier ci joint, je souhaiterais pouvoir, grâce à une première ListBox, sélectionner le tableau dans lequel je veux effectuer la suppression (avec pour valeurs : Produits, Variétés ..) et dans une deuxième ListBox sélectionner le critère spécifique que je veux supprimer, propre à la section sélectionnée en amont. Je suis actuellement dans le flou malgré de nombreuses recherches.

Merci de votre aide.

40suppression.xlsm (23.59 Ko)

Bonsoir,

Lors de l'initialisation du userform il faut ajouter dans la première Listbox la liste des tableaux à sélectionner.

Pour cela soit on connait la configuration des titres des colonnes (toute les 2 colonnes par exemple ici on pourrait dire) et on boucle pour les ajouter (ce qui permet que la macro est toujours à jour automatique) soit on ajoute manuellement chaque nom par exemple:

ListBox1.AddItem ("toto")
ListBox1.AddItem ("titi")

Après pour la deuxième ListBox même combat, soit on connait la liste et elle ne bougera jamais et on la remplis soit on parcours chaque ligne et on remplis la deuxième ListBox, petit algo d'exemple (mais il y en a plein d'autre possible):

ListBox1 sélection  de Variété 
=> effacer la listbox2
=> boucle tant que la cellule n'est pas vide sur la colonne 3 à partir de la ligne 2 et ajouter le résultat dans la ListBox2

Il faut utiliser les propriétés des listbox pour détecter un clic et voir quel ligne est sélectionné

ECG

Bonsoir,

Il n'était pas utile de dupliquer ton sujet ! Il te suffisait de rajouter ton fichier sur le précédent à la place ou pour compléter l'image qui ne sert jamais à personne pour traiter...

Ceci dit, ou tu fais une liste de tes entêtes, qui te permettra de l'affecter rapidement à la ListBox, ou tu les affectes plus lentement un par un, c'est toi qui choisit.

Ensuite, tes listes sont constituées par des tableaux Excel, donc ou il était inutile de les utiliser ou tu t'en sers ! Pour cela, il te faudrait renommer tes tableaux avec un nom un peu plus en correspondance avec l'entête, de façon qu'il puisse être déduit facilement de l'entête. Après quoi ce sera un jeu d'enfant d'insérer la bonne liste dans la 2e ListBox...

Tu opères déjà ces petits changements qui feront avancer l'affaire, et tu remets un fichier à jour !

Cordialement.

Merci pour vos réponses, je suis sur la voie ! (Désolé d'avoir mis à jour un nouveau sujet, je m’étais mal exprimé sur le premier et pensais gagner en visibilité)

Bonjour,

J'ai changé d'orientation et j'ai décidé d'organiser ma suppression plus simplement. J'ai donc un UserForm où l'on retrouve une Combobox assignée au contenu propre d'un tableau. Lorsque je sélectionne ma valeur dans la Combobox, je clique sur le bouton "Supprimer". Ma question est la suivante : Quel type de code dois-je adopter pour supprimer la "Combobox.Value" dans le tableau, et redimensionner le tableau sans la valeur supprimée.

Merci par avance.

Bonjour

voila un test avec une combobox & listbox

a toi de voir

A+

Maurice

81suppression-1.xlsm (20.96 Ko)

C'est vraiment super, je n'en attendais pas tant, merci beaucoup pour ta précieuse aide !

Une dernière question, dans mon cas lorsque j'applique ton code dans mes tableaux, la suppression s'effectue mais la fonction de tri de a à z modifie mon entête de tableau. Comment faire pour fixer les entêtes de colonnes afin que celles ci ne subissent pas le tri ?

J'ai trouvé réponse à ma question avec Header:=XlYes pour la prise en compte de l'entete merci

Bonsoir

peux être plus simple pour trouver la colonne

A +

Maurice

Private Sub UserForm_Activate()
With ComboBox1
    For C = 1 To 11
        If Cells(1, C).Value <> "" Then
           .AddItem Cells(1, C).Value
           .List(.ListCount - 1, 1) = C ' Num?ro de colonne
        End If
    Next
End With
' ComboBox1.ListIndex = 0
End Sub

Private Sub ComboBox1_Change()
Col = Val(ComboBox1.Column(1))
    With ListBox1
        .Clear
            For L = 2 To Cells(Rows.Count, Col).End(xlUp).Row
                .AddItem Cells(L, Col)
                .List(.ListCount - 1, 1) = L ' Num?ro de la ligne
            Next
    End With
End Sub
Rechercher des sujets similaires à "suppression donnees via listbox"