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 :

Mémorisation sélection Listbox [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut Mémorisation sélection Listbox
    Bonjour à tous,

    J'ai un UserForm qui contient une listbox et un bouton.
    Quand je charge la listbox, elle se remplie avec les valeurs d'une feuille de mon classeur.

    Lorsque l'on clique sur un item de la listbox, ça va chercher la ligne à sélectionner dans la feuille.

    Je clique alors sur le bouton pour actualisation.

    La listbox s'actualise alors, du coup la sélection disparaît.

    Comment faire, une fois la MAJ de la listbox faite, resélectionner le dernier item ? (Sachant que la ligne de la feuille est toujours en sélection).

    J'espère que vous comprendrais ma demande

    Merci beaucoup !

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    1- déclarer en entête du module de l'userform :
    2- lors du clic sur le bouton de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
    LigSel = ListBox1.ListIndex
    'blabla
    'ton code ici
     
    ListBox1.ListIndex = LigSel
    End Sub
    Bien sur adapte les noms des contrôles dans ce code...

  3. #3
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Tout simplement ...
    Je m'attendais à un code à se tirer les cheveux ...

    Génial, ça fonctionne parfaitement, merci beaucoup beaucoup beaucoup !!


  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une autre piste sans variable : on stocke dans la propriété Tag le ListIndex

    exemple sur un userform bidon avec ListBox1 et CommandButton1

    initialisation, on remplit arbitrairement avec des chiffres de 1 à 10
    on stocke une première fois le listindex (en théorie -1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Initialize()
        With Me.ListBox1
            For i = 1 To 10
                .AddItem i
            Next i
     
            .Tag = .ListIndex
        End With
    End Sub
    Au clic dans ListBox1 : on stocke le nouveau listindex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ListBox1_Click()
        With Me.ListBox1
            .Tag = .ListIndex
        End With
    End Sub
    Et sur le bouton, quand on appuie on efface ListBox1 et on le reconstitue à l'identique (pour l'exemple)
    Et on restaure la sélection initiale en lisant la valeur stockée dans le Tag
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
        With Me.ListBox1
            .Clear
            For i = 1 To 10
                .AddItem i
            Next i
     
            .ListIndex = .Tag
        End With
    End Sub

  5. #5
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Merci, je testerais aussi

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

Discussions similaires

  1. Annuler sélection listBox
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/02/2019, 10h23
  2. [AC-2007] Récupération Sélection ListBox dans Requête
    Par JDev_ dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/06/2012, 15h49
  3. [XL-2010] Trier des lignes d'un tableau à partir d'une sélection listbox
    Par JulienLeno dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 19/10/2011, 16h00
  4. Sélection listbox, évênement sur simple clic
    Par DrizztDo dans le forum IHM
    Réponses: 5
    Dernier message: 26/01/2009, 19h37
  5. Sélection dans une ListBox
    Par LoicH dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/04/2005, 22h13

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