IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

suppression d'une ligne depuis une listbox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Par défaut suppression d'une ligne depuis une listbox
    Bonjour

    A partir d'un formulaire dans lequel j'ai une listbox contenant des données d'une feuille excel ( Feuil1), je souhaite, lorsque je sélectionne une ligne dans la listbox, pouvoir supprimer dans la feuille excel, avec un bouton supprimer, la ligne sélectionnée ( exemple ligne 5) et non la cellule ou sont les données.

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Un exemple de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    Private Sub CommandButton1_Click()
     
    Dim i As Long
     
    i = 1
     
    Do While Sheets("Feuil1").Range("A" & i).Value <> ""
     
        If Sheets("Feuil1").Range("A" & i).Value = ListBox1.Text Then
            Sheets("Feuil1").Rows(i).Delete
        End If
     
        i = i + 1
     
    Loop
     
    End Sub

  3. #3
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour
    sans plus d'info voici un code générique qu'il te faudra adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    Rows(ListBox1.ListIndex + 1).Delete
    End Sub
    remplace le +1 par le décalage entre les ligne de la feuille et celle de la box
    (la première ligne de la box est 0)

    Edit : Bonjour Jérome le code de Jérome est aussi bien pratique, je suis parti du principe que la box était rempli par une plage de cellule

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Par défaut
    merci pour vos reponses j'ai réussi à me débrouiller avec vos codes

  5. #5
    Membre confirmé
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Février 2019
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Février 2019
    Messages : 94
    Par défaut
    Bonjour , bien que le sujet est résolue et remonte à loin .J'aimerais que bien que l'intervenant au lieu de dire "Merci je me suis débrouillé tout seul" aura au moins l'obligeance
    d’émettre la solution sur le post, moi par exemple je veux bien profiter.
    Salut.

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour à vous, Bonjour au Forum,

    Je salue JFontaine qui m'a bien aidé lorsque j'étais un petit novice

    Au demeurant, je suis sceptique quant à sa proposition.
    En effet
    Si l'on teste ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Option Explicit
     
    Private Sub test_suppression()
     
    Dim i As Long
     
    i = 1
     
    Do While Sheets("Feuil1").Range("A" & i).Value <> ""
     
        If Sheets("Feuil1").Range("A" & i).Value = "panpan" Then
            Sheets("Feuil1").Rows(i).Delete
        End If
     
        i = i + 1
     
    Loop
     
    End Sub
    Si 2 cellules de lignes successives reportent "panpan", alors l'exécution du code n'en supprimera qu'une seule.
    Ce qui est logique.

    Pour une suppression de ce type, mieux vaut partir du bas de la feuille.

    Mieux.
    (Déjà proposé maintes fois sur le Forum )
    Remplacer dans la plage de cellules "panpan" par ""
    Supprimer, en une seule fois, les lignes entières des cellules spéciales blanches ainsi créées.

    Je vous laisse traduire en VBA.

  7. #7
    Membre confirmé
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Février 2019
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Février 2019
    Messages : 94
    Par défaut Code Testé
    Bonjour ,J'ai testé le code ,ça ne marche . Mais que faut_il faire pour supprimer l'item sélectionné directement dans la listbox .

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/01/2015, 18h30
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. Réponses: 6
    Dernier message: 09/06/2009, 14h13
  5. Réponses: 3
    Dernier message: 16/01/2006, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo