Supprimer une ligne via listbox

Résolu
Bonjour,
Étant très très novice en VBA je reviens vers ce fabuleux forum pour encore vous demander votre aide.
1/ Mon fichier Excel a une feuille "DataGestion" qui s'alimente au fur et à mesure par un autre Userform1.
2/J'aimerais en cas d'erreur de saisie, lorsqu'on appui sur le bouton supprimer, pouvoir:
-Choisir dans un ComboBox1 une date du tableau
-Que les lignes complètes du tableau seulement avec cette date apparaissent
-Choisir la ligne que je veux supprimer
-Bouton1 supprime la ligne choisi

Ci-joint fichier: https://www.cjoint.com/c/GCdnPY4Ub3O

Si en plus vous pourriez mettre en commentaire l'aide à la compréhension du code.
Merci par avance

3 réponses

  1. Contributeur
    Bonjour,

    Voici ton classeur avec le combobox encodé selon ta demande

    https://www.cjoint.com/c/GCdo1HIKnxl

    je ne t'ai pas mis de bouton 1 car il te suffit de sélectionner la ligne à supprimer dans le combobox.
    0
    1. Bonjour, et merci pour ton aide gb,
      J'ai eu un peu de mal à saisir le mode de fonctionnement du fait qu'il faut choisir la date et sur le même ComboBox apparait après les lignes souhaités.

      Si par hasard il existait un moyen de les faire apparaitre sur listbox et après suppression.

      Merci encore une fois et bonne journée.

      Lolo
      0
      1. Contributeur
        re
        Si par hasard il existait un moyen de les faire apparaitre sur listbox et après suppression.
        Comme tu as parlé uniquement de combobox, j'ai fait avec.
        Pourquoi tu les veux dans une listbox après suppression : tu veux supprimer ou garder car une listbox c'est très volatile.
        0
      2. Re,
        Je me suis certainement mal exprimé au départ.
        Au départ mon idée était d'appeler un Userform dans lequel via un ComboBox j'aurai choisi une date du tableau et donc affiché sur une ListBox les lignes suivant cette date.
        Après en choisissant tel ligne je l'aurai supprimer par un bouton.

        Lolo
        0
    2. Contributeur
      Bonjour,

      Effectivement, ta question initiale n'évoquait nullement un Userform, mais avec le code que je t'avais mis tu avais tout pour le faire comme ceci

      https://www.cjoint.com/c/GCeid0AFlJl
      0
      1. Bonjour et merci gb pour ton aide.
        J'avais commencé à adapter ton premier code.
        Mais au vu du dernier fichier transmis, je reste sans voix, au vu de mes petites connaissances.
        Merci encore.
        0
      2. Contributeur
        Bonjour,

        au vu de mes petites connaissances.
        Rassures-toi, tout le monde a commencé avec peu et c'est bien normal : le principal c'est de progresser à son rythme.

        Pour que ton combo soit trié même si tes dates ne le sont pas, j'ai oublié de mettre l'index et tu peux le rajouter si tu veux.
                      Me.ComboBox1.AddItem cel.Value, idc

        Tu pourras vérifier ainsi que si tu rajoutes en fin de fichier une date ancienne elle sera à sa place dans le combo.
        Bon courage pour la suite et n'oublies pas que c'est en pratiquant que l'on progresse.
        0
      3. Re,
        J'ai modifie la feuille DataGestion pour me rajouter une colonne d’où je sors le mois et l'année de la date en "C".=SI(C2<>"";TEXTE(C2;"mmmm-aa");"")
        En modifiant le code pour qu'il accède sur cette colonne je limite donc mes dates.
        Mais l'idée de trier OK.
        Merci.
        0
      4. Contributeur
        Re,
        En modifiant le code pour qu'il accède sur cette colonne je limite donc mes dates.
        Tu risques des surprises car ta nouvelle colonne ne contient plus des dates mais du texte représentant une date alors que si ta formule était
        =SI(C2="";"";C2)
        avec un format colonne "mmmm-aa" tu gardais tes dates.
        0
      5. @gbinformeBizarrement le texte est reconnu en tant que date dans le code.
        Exemple: février-17 dans la ComboBox me renvoie toutes les dates du mois dans la ListBox.
        0