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 :

Filtrer LISTBOX d'après Textbox - Affichage plusieurs colonnes [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Par défaut Filtrer LISTBOX d'après Textbox - Affichage plusieurs colonnes
    Bonjour à tous,

    Après moulte's recherches, je ne trouve malheureusement pas la réponse à mon soucis.
    Rien de bien grâve ...

    Je rempli une listbox (Listbox1) d'après une valeur qui est dans un Textbox (Auftrangr)
    Ca marche bien, mais pas comme je voudrais.
    J'aimerai qu'il soit afficher la LIGNE entière et non pas simplement certaines cellules de la LIGNE
    Le soucis est ici, comme remplacer et par quoi le RANGE ?
    Du style ROWS etc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.AddItem shthistorik.Range("A" & i)
    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
    Private Sub Auftragnr_AfterUpdate()
     
    'procedure pour filtrer la listbox1
    ListBox1.Clear
     
    With Me.ListBox1
             .ColumnHeads = False: .ColumnCount = 10: .ColumnWidths = "0;40;0;50;50;50;70;60;60"
        End With
    For i = 1 To shthistorik.Range("A" & shthistorik.Rows.Count).End(xlUp).Row
     
    If InStr(UCase(CStr(shthistorik.Range("D" & i))), UCase(Auftragnr.Value)) > 0 Then
    ListBox1.AddItem shthistorik.Range("A" & i)
    End If
     
    Next i
     
    End Sub
    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Si tu veux toutes les valeurs des colonnes, il te faut supprimer le If enfin, si j'ai bien tout compris :
    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
    33
    34
    35
     
    Private Sub Auftragnr_AfterUpdate()
     
        Dim shthistorik As Worksheet
        Dim I As Integer
     
        Set shthistorik = Worksheets("Feuil1")
     
        With Me.ListBox1
     
            .Clear
            .ColumnHeads = False
            .ColumnCount = 10
            .ColumnWidths = "50;50;50;50;50;50;70;60;60"
     
            For I = 1 To shthistorik.Range("A" & Rows.Count).End(xlUp).Row
     
                'If InStr(UCase(CStr(shthistorik.Range("D" & i))), UCase(Auftragnr.Value)) > 0 Then
                .AddItem shthistorik.Range("A" & I)
                .Column(1, I - 1) = shthistorik.Range("B" & I)
                .Column(2, I - 1) = shthistorik.Range("C" & I)
                .Column(3, I - 1) = shthistorik.Range("D" & I)
                .Column(4, I - 1) = shthistorik.Range("E" & I)
                .Column(5, I - 1) = shthistorik.Range("F" & I)
                .Column(6, I - 1) = shthistorik.Range("G" & I)
                .Column(7, I - 1) = shthistorik.Range("H" & I)
                .Column(8, I - 1) = shthistorik.Range("I" & I)
                .Column(9, I - 1) = shthistorik.Range("J" & I)
                'End If
     
            Next I
     
        End With
     
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Par défaut J'en perd ma ligne ...
    Merci pour ta réponse Theze, malheureusement j'en perd ma ligne

    Je voulais dire toute la LIGNE de A à J
    Un truc style (A & i : J & i ) i étant la ligne de MATCH

    Match = la condition IF si dans la Ligne I la cellule D = à mon TEXTBOX
    alors affiche toute la ligne i

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Ok, comme ça alors :
    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
    33
    34
    35
    36
    37
    38
    39
     
    Private Sub Auftragnr_AfterUpdate()
     
        Dim shthistorik As Worksheet
        Dim I As Integer
        Dim J As Integer
     
        Set shthistorik = Worksheets("Feuil1")
     
        With Me.ListBox1
     
            .Clear
            .ColumnHeads = False
            .ColumnCount = 10
            .ColumnWidths = "50;50;50;50;50;50;70;60;60"
     
            For I = 1 To shthistorik.Range("A" & Rows.Count).End(xlUp).Row
     
                If InStr(UCase(CStr(shthistorik.Range("D" & I))), UCase(Auftragnr.Value)) > 0 Then
     
                    .AddItem shthistorik.Range("A" & I)
                    .Column(1, J) = shthistorik.Range("B" & I)
                    .Column(2, J) = shthistorik.Range("C" & I)
                    .Column(3, J) = shthistorik.Range("D" & I)
                    .Column(4, J) = shthistorik.Range("E" & I)
                    .Column(5, J) = shthistorik.Range("F" & I)
                    .Column(6, J) = shthistorik.Range("G" & I)
                    .Column(7, J) = shthistorik.Range("H" & I)
                    .Column(8, J) = shthistorik.Range("I" & I)
                    .Column(9, J) = shthistorik.Range("J" & I)
                    J = J + 1
     
                End If
     
            Next I
     
        End With
     
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Par défaut
    Merci Theze pour ton aide,

    Ca marche presque bien... Reste 1 ou 2 Bug's

    Excel plante assez souvent, je vais voir cela de plus près.
    Par contre j'ai un autre soucis, il me met souvent une erreure

    ne peut pas définir Column, ou un truc dans ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Column(10, j) = shthistorik.Range("M" & i)
    .Column(11, j) = shthistorik.Range("P" & i)
    Il se peut que certaines valeurs soient "0" ou "vide"
    shthistorik est le vrai nom, pas le nom Onglet

    Tu as une piste ?
    Est-ce que Excel prend en compte les feuilles cachées

  6. #6
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Par défaut
    Je passe en résolu. A contre coeur, car ca ne marche pas....
    D'après mes recherches, la LISTBOX n'accepte pas plus de 10 colonnes

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

Discussions similaires

  1. Affichage plusieurs colonnes LISTBOX
    Par sdispro dans le forum Excel
    Réponses: 4
    Dernier message: 18/07/2014, 12h23
  2. [AC-2007] Affichage de listbox en plusieurs colonnes
    Par Ju1.0 dans le forum IHM
    Réponses: 3
    Dernier message: 27/05/2014, 14h18
  3. Affichage plusieurs colonnes
    Par boudddda dans le forum Langage
    Réponses: 3
    Dernier message: 25/08/2008, 22h44
  4. vba, listbox avec plusieur colonne
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/06/2006, 18h35
  5. [C#][ListBox]Plusieurs colonnes ?
    Par Kcirtap dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/10/2005, 09h20

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