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 :

Comment sélectionner une cellule dans un tableau via une listbox [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Par défaut Comment sélectionner une cellule dans un tableau via une listbox
    Bonjour forum.
    Je sais que cette question a été déjà posée mais je n'ai pas pu trouver l'adresse exacte de la réponse.
    J'ai une listbox et un tableau et une cellule. Je souhaiterais visualiser la ligne du tableau qui a été sélectionnée dans la listbox. Ensuite dans la cellule, celle ci va indiquer le numéro de la ligne sélectionnée en utilisant Code d'initialisation de la listbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     listbox1.List=Range("Tabl1").Value
    J'ai fouillé un peu partout sur les forums mais je n'ai pas trouvé exactement ce que je cherchais.
    Merci bien de m'aider

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    A mon sens, le plus simple est de charger le numéro de la ligne dès le départ. Tu initialise une listbox avec 2 colonnes dont l'une est masquée et tu charges le numéro de ligne dans la colonne masquée. Tu peux aussi directement charger l'adresse d'un cellule ou autre.

    Bonne journée
    C

  3. #3
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Par défaut
    Merci bien pour votre réponse.
    Cette méthode je l'utilise déjà. C'est ce que j'utilise pour modifier ou supprimer une donnée.
    J'aimerais découvrir une autre méthode. C'est pourquoi j'aimerais savoir s'il est possible de faire ça .Je souligne que je m' excerce en vba en longueur de journée .

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonsoir …

    Du grain à moudre … selon le cas (non précisé); avoir la ligne de la feuille ou celle du tableau ?

    Avec un Tableau nommé Tb et un contrôle ListBox (ActiveX)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ListBox1_GotFocus()
        ListBox1.List = [Tb].Columns(1).Value
        ListBox1.Height = ListBox1.ListCount * 14
    End Sub
    Private Sub ListBox1_Change()
        Dim L As Byte ‘ou plus
        Cells([Tb].Row, 9).Resize([Tb].Rows.Count, 2) = ""
        L = [Tb].Find(ListBox1).Row
        Cells(L, 9) = L
        Cells(L, 10) = [Tb].Find(ListBox1).Row - [Tb].Row + 1
    End Sub
    et avec un formulaire (UserForm), voir fichier joint …
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Par défaut
    Merci ordonc. C'est la ligne du tableau qui se trouve sur la feuille. En fait quand je click dans la lisbox celle ci m'indique dans le tableau qui est sur la feuille, la ligne qui correspond à la sélection de la listbox.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il n'y a pas beaucoup d'option. Soit la donnée est chargée en amont à l'initialisation de la listbox, soit il faut faire ensuite une recherche de la ligne sélectionnée dans la feuille.

    La 1ère me semble la plus judicieuse et la plus optimisée.

    Cordialement,
    C

  7. #7
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Par défaut
    Merci à tous pour les réponses. J'ai pensé à ce genre de code dans l'événement listbox click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for j= 2 to feuil1.Range("a"& Rows. Count).End(Xlup).Row
    for i=j to listbox.listcount-1
    If listbox.selected(i) then feuil1.listobjects(1).range("a"& i).Select
    Next
    Next
    Dans mon tableau à la ligne 2, lorsque je sélectionne l'élément dans la listbox, il s'affiche. En fait au lieu de sélectionner la ligne indiquée de l'élément qui est dans la listbox, il ne fait que me montrer les éléments qui sont sélectionnés. C'est un peu comme une recherche. L'élément qui est sélectionné dans la listbox c'est lui qui s'affiche sur la première ligne du tableau. Si je défile dans la listbox, les noms aussi se remplace au fur et à mesure selon les éléments.
    Donc voici un peu ce que j'ai trouvé comme code en espérant que ça réponde à ma préoccupation mais rien. Je continue d'étudier et je pense bien fort trouver.

  8. #8
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Par défaut Cellule correspondante à la sélection de la listbox
    Eurêka. J'ai enfin trouvé ce que je cherchais. Merci à vous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i=0 to listbox1.Listcount-1
    for j= i to feuil1.Range("a"& Rows. Count).End(Xlup).Row
    If listbox1.selected(j) then feuil1.range("a"& j+2).Select 'j+1si en tête dans listbox et j+2 si pas d'en tête
    Next
    Next

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

Discussions similaires

  1. [XL-2007] Comment sélectionner la cellule dans laquelle se trouve un bouton?
    Par louis-philippe dans le forum Excel
    Réponses: 3
    Dernier message: 08/06/2012, 16h36
  2. Réponses: 1
    Dernier message: 15/05/2006, 18h43
  3. [VBA] Problème récup texte d'une cellule dans un tableau
    Par Marco le Pouillot dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/01/2006, 17h06
  4. [TStringGrid] Comment sélectionner une cellule ?
    Par zidenne dans le forum Composants VCL
    Réponses: 1
    Dernier message: 18/11/2005, 10h45
  5. Comment sélectionner une ligne dans une TStringGrid ?
    Par Ben_Le_Cool dans le forum Composants VCL
    Réponses: 11
    Dernier message: 22/08/2005, 12h38

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