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 :

Aller sur la ligne d'un tableau d'une donnée se trouvant dans une ListBox [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Aller sur la ligne d'un tableau d'une donnée se trouvant dans une ListBox
    Bonjour à tous,

    Je vous souhaite une très bonne année 2018, surtout une très bonne santé.
    Voici mon problème : Dans une feuille de calcul j'ai inséré une TextBox ainsi qu'une Listbox.
    La TextBox me permet de rechercher du texte dans un tableau situé dans la même feuille.
    Dans la ListBox s'affiche le résultat de ma recherche.

    Maintenant, ce que je cherche à faire : Je clique sur une donnée de ma ListBox, le curseur se positionne sur la ligne de la donnée dans le tableau.

    Voici mon début 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
     
    Option Compare Text
    Private Sub TextBox1_Change()
        Application.ScreenUpdating = False
     
        Range("F7:F5065").Interior.ColorIndex = 2
        ListBox1.Clear
     
        If TextBox1 <> "" Then
            For Ligne = 7 To 5065
                If UCase(Cells(Ligne, 6)) Like "*" & UCase(TextBox1) & "*" Then
                    Cells(Ligne, 6).Interior.ColorIndex = 43
                    ListBox1.AddItem Cells(Ligne, 6)
                    ListBox1.AddItem Cells(Ligne, 8)
                End If
            Next
       End If
    End Sub
    Merci par avance pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 194
    Par défaut
    Bonjour,

    meilleurs vœux à toi aussi

    concernant ce poste je serais tenté de dire : oui et donc ....

    c'est bien tu nous exposes ton objectif mais quel est le problème ?
    Que fais et/ou ne fait pas ton code ?
    Quel message d'erreur ?
    Sur quel point es-tu bloqué ?

    etc

    Philippe

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour Philippe,

    Merci pour ta participation. En fait je n'arrive pas ajouter le bout de code me permettant de sélectionner la ligne où se trouve la donnée.
    Je sais qu'il faut que celui-ci soit dans la ListBox mais je ne parvient pas à trouver la solution. Je continue de chercher de mon côté

  4. #4
    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,

    Une ListBox peut être multicolonnes.
    On peut même "masquer" une des colonnes.
    Pour cela, modifier les propriétés ColumnCount et ColumnWidths.

    Il te suffit donc, au remplissage de ta listbox de mettre le numéro de ligne dans la seconde colonne (masquée) de ta listbox.
    Puis d'utiliser l'événement Private Sub ListBox1_Click() pour "sélectionner" la ligne stockée dans cette seconde colonne.

    EDIT : c'est une façon de faire.
    Une autre consiste à utiliser la méthode Find.
    Cf aide interne VBA à la rubrique : Range.Find, méthode

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    J'ai tenté de faire ça mais j'ai un message d'erreur au niveau de "Ligne" - Erreur de compilation, Sub ou Fonction non définie
    Que n'ai-je pas fait correctement ?
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ListBox1_Click()
            Dim cherche As String
    cherche = ListBox1.Value
    Set maplage = Sheets("GENERAL").Range("F") & Ligne(1) & ":F" & Derligne
    Set a = Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
    Msbox = a.Row
    
    End Sub
    Les 2 codes combinés
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Option Compare Text
     
    Public Derligne As Long
    Public a As Range
     
    Private Sub ListBox1_Click()
    Dim cherche As String
    cherche = ListBox1.Value
    Set maplage = Sheets("GENERAL").Range("F") & Ligne(1) & ":F" & Derligne
    Set a = Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
    Msbox = a.Row
     
    End Sub
     
    Private Sub TextBox1_Change()
        Application.ScreenUpdating = False
     
        Range("F7:F5065").Interior.ColorIndex = 2
        ListBox1.Clear
     
        If TextBox1 <> "" Then
            For Ligne = 7 To 5065
                If UCase(Cells(Ligne, 6)) Like "*" & UCase(TextBox1) & "*" Then
                    Cells(Ligne, 6).Interior.ColorIndex = 43
                    ListBox1.AddItem Cells(Ligne, 6)
                    ListBox1.AddItem Cells(Ligne, 8)
                End If
            Next
     
       End If
    End Sub

  6. #6
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    J'ai fait une première modification sur cette ligne :

    Avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set maplage = Sheets("GENERAL").Range("F") & Ligne(1) & ":F" & Derligne
    Après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set maplage = Sheets("GENERAL").Range("F" & Ligne(6) & ":F" & Derligne)
    Mais j'ai un message d'erreur sur Ligne(6) - "Incompatibilité de types"

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2011, 20h29
  2. Réponses: 5
    Dernier message: 18/03/2009, 19h31
  3. Réponses: 6
    Dernier message: 14/02/2008, 16h32
  4. [Tableaux] lien sur les lignes d'un tableau
    Par einsteineuzzz dans le forum Langage
    Réponses: 2
    Dernier message: 19/06/2006, 14h16
  5. changement de couleur sur les lignes d'un tableau
    Par brasco06 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/04/2006, 18h03

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