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 :

Creation d'un listbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut Creation d'un listbox
    Bonjour,

    j'ai besoin de votre aide j'ai du mal à faire des listbox
    Je vous explique mon probleme.

    Dans mon classeur j'ai un onglet "Dépense" et un onglet "Analytique"
    Dans onglet "Analytique" j'ai des codes en format texte en colonne A sur 40 lignes (A2:A40)
    Dans l'onglet "Dépense" j'ai 20 colonnes sur 500 lignes et le code analytique en colonne 12.

    je souhaiterais que lorsque je clic un bouton de commande toutes les écritures du code analytique "A2" (par exemple code "test1") que toute les lignes dans l'onglet "dépense" ou le code "test1" apparaissent dans un userform à l'aide d'une listbox.


    J’espère être assez clair?

    J'ai lu beaucoup de sujet sur les listbox mais je n'arrive pas à comprendre.
    Pouvez-vous m'aider pour faire le code?
    Merci de votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour tiralarc03,

    (Désolé pour le EDIT - j'avais lu trop rapidement ton explication, très explicite, à première vue ! )

    Bref, voici le code que je te propose :
    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
    Option Explicit
     
    Private Sub UserForm_Initialize()
     
    With Worksheets("Dépense")
        Me.ComboBox1.List = .Range(.Range("A2"), .Columns(1).Find("*", , , , , xlPrevious)).Value
    End With
    Me.ComboBox1.ListIndex = -1
    End Sub
     
    Private Sub ComboBox1_Change()
    Dim oRng As Range
    Dim oCell As Range
    Dim oStr As String
    Dim oRng2 As Range
    Dim i As Integer
     
    Me.ListBox1.Clear
    With Worksheets("Analytique")
        Set oRng = FindAll(Me.ComboBox1.Value, .Columns(12), xlFormulas, xlWhole)
        For Each oCell In oRng
            Set oRng2 = .Range("A" & oCell.Row)
            oStr = oRng2
            For i = 1 To 19
                oStr = oStr & " | " & oRng2.Offset(0, i)
            Next i
            Me.ListBox1.AddItem oStr
        Next oCell
    End With
     
    End Sub
    J'ai créé un UserForm avec simplement une ComboBox et une (très) grande ListBox.
    Mon bouton de commande est rattaché, tout simplement à la macro pour lancer le UserForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub tiralarc03()
     
        UserForm1.Show
     
    End Sub
    Enfin, j'utilise la fonction "FindAll" (j'ai décidé de l'utiliser aujourd'hui ).
    Donc, il faut que tu l'insères dans un module (en dessous de la Sub ci-dessus, par exemple) :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Function FindAll(What, Optional SearchWhat As Variant, _
            Optional LookIn, _
            Optional LookAt, _
            Optional SearchOrder, _
            Optional SearchDirection As XlSearchDirection = xlNext, _
            Optional MatchCase As Boolean = False, _
            Optional MatchByte, _
            Optional SearchFormat) As Range
        'LookIn can be xlValues or xlFormulas, _
         LookAt can be xlWhole or xlPart, _
         SearchOrder can be xlByRows or xlByColumns, _
         SearchDirection can be xlNext, xlPrevious, _
         MatchCase, MatchByte, and SearchFormat can be True or False. _
         Before using SearchFormat = True, specify the appropriate settings _
         for the Application.FindFormat object, e.g., _
         Application.FindFormat.NumberFormat = "General;-General;""-"""
        Dim aRng As Range
        If IsMissing(SearchWhat) Then
            On Error Resume Next
            Set aRng = ActiveSheet.UsedRange
            On Error GoTo 0
        ElseIf TypeOf SearchWhat Is Range Then
            If SearchWhat.Cells.Count = 1 Then
                Set aRng = SearchWhat.Parent.UsedRange
            Else
                Set aRng = SearchWhat
                End If
        ElseIf TypeOf SearchWhat Is Worksheet Then
            Set aRng = SearchWhat.UsedRange
        Else
            Exit Function                       '*****
            End If
        If aRng Is Nothing Then Exit Function   '*****
        Dim FirstCell As Range, CurrCell As Range
        With aRng.Areas(aRng.Areas.Count)
        Set FirstCell = .Cells(.Cells.Count)
            'This little 'dance' ensures we get the first matching _
             cell in the range first
            End With
        Set FirstCell = aRng.Find(What:=What, After:=FirstCell, _
            LookIn:=LookIn, LookAt:=LookAt, _
            SearchDirection:=SearchDirection, MatchCase:=MatchCase, _
            MatchByte:=MatchByte, SearchFormat:=SearchFormat)
        If FirstCell Is Nothing Then Exit Function          '*****
        Set CurrCell = FirstCell
        Set FindAll = CurrCell
        Do
            Set FindAll = Application.Union(FindAll, CurrCell)
            'Setting FindAll at the top of the loop ensures _
             the result is arranged in the same sequence as _
             the  matching cells; the duplicate assignment of _
             the first matching cell to FindAll being a small _
             price to pay for the ordered result
            Set CurrCell = aRng.Find(What:=What, After:=CurrCell, _
                LookIn:=LookIn, LookAt:=LookAt, _
                SearchDirection:=SearchDirection, MatchCase:=MatchCase, _
                MatchByte:=MatchByte, SearchFormat:=SearchFormat)
            'FindNext is not reliable because it ignores the FindFormat settings
        Loop Until CurrCell.Address = FirstCell.Address
    End Function
    Pour mémoire, c'est une fonction "connue" du Web dont les versions peuvent légèrement varier.

    Bref, n'hésite pas à revenir vers moi !

    Cordialement,
    Kimy

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Bonjour,
    Merci de ta réponse.

    Kimy_Ire;8129180]Bonjour tiralarc03,

    (Désolé pour le EDIT - j'avais lu trop rapidement ton explication, très explicite, à première vue ! )

    Bref, voici le code que je te propose :
    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
    Option Explicit
     
    Private Sub UserForm_Initialize()
     
    With Worksheets("Dépense")
        Me.ComboBox1.List = .Range(.Range("A2"), .Columns(1).Find("*", , , , , xlPrevious)).Value
    End With
    Me.ComboBox1.ListIndex = -1
    End Sub
     
    Private Sub ComboBox1_Change()
    Dim oRng As Range
    Dim oCell As Range
    Dim oStr As String
    Dim oRng2 As Range
    Dim i As Integer
     
    Me.ListBox1.Clear
    With Worksheets("Analytique")
        Set oRng = FindAll(Me.ComboBox1.Value, .Columns(12), xlFormulas, xlWhole)
        For Each oCell In oRng
            Set oRng2 = .Range("A" & oCell.Row)
            oStr = oRng2
            For i = 1 To 19
                oStr = oStr & " | " & oRng2.Offset(0, i)
            Next i
            Me.ListBox1.AddItem oStr
        Next oCell
    End With
     
    End Sub
    non le code analytique et dans l'onglet "analytique" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Worksheets("Analytique")
        Me.ComboBox1.List = .Range(.Range("A2"), .Columns(1).Find("*", , , , , xlPrevious)).Value
    End With
    Me.ComboBox1.ListIndex = -1
    End Sub
    Est-ce que cela change quelque chose d'autre?

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Hum... D'après ma compréhension, tu as des codes dans l'onglet "Dépense" qui sont repris dans l'onglet "Analytique" / colonne L.
    Quand tu sélectionnes un code repris de l'onglet "Dépense", tu vas chercher ses correspondances dans l'onglet "Analytique".

    Bref, n'hésite pas à être plus précis avec un Workflow peut-être...

    Cordialement,
    Kimy

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Non c'est l'inverse j'ai les codes dans l'onglet "Analytique" qui sont repris dans l'onglet "Depenses" / colonne L.
    Quand je sélectionne un code repris de l'onglet "Analytique", et je vais chercher ses correspondances dans l'onglet "Depenses".

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Donc tu as juste à changer ces deux lignes :
    1. Dans le Private Sub UserForm_Initialize(), With Worksheets("Dépense") par With Worksheets("Analytique"),
    2. et inversement dans le Private Sub ComboBox1_Change().

    N'hésite pas à me dire si ça ne fonctionne pas !

    Cordialement,
    Kimy

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Oui en faisant comme ça cela marche, mais j'ai une erreur quand le code existant dans l'onglet "analytique" mais non présent dans l'onglet "depense"

  8. #8
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Citation Envoyé par tiralarc03 Voir le message
    [...] une erreur [...]

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Je te joins mon exemple plus concret pour mieux discuter et comprendre,
    Je l'ai modifié légèrement il y a plus d'onglet "dépense" il s’appelle "TS"
    Fichiers attachés Fichiers attachés

  10. #10
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour tiralarc03,

    ...
    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
    Private Sub ComboBox1_Change()
    Dim oRng As Range
    Dim oCell As Range
    Dim oStr As String
    Dim oRng2 As Range
    Dim i As Integer
     
    Me.ListBox1.Clear
    With Worksheets("TS")
        Set oRng = FindAll(Me.ComboBox1.Value, .Range(.Range("F2"), .Columns(6).Find("*", , , , , xlPrevious)), xlValues, xlWhole)
        For Each oCell In oRng
            Set oRng2 = .Range("A" & oCell.Row)
            oStr = oRng2
            For i = 1 To 13
                oStr = oStr & " | " & oRng2.Offset(0, i)
            Next i
            Me.ListBox1.AddItem oStr
        Next oCell
    End With
     
    End Sub
    Je te l'ai écris dans mon précédent post...

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Bonjour, le code "PTM", "KIT" ou "LOC" ne marche pas c'est normal car il est sur la colonne H ou J ou L du "TS" mais comment faire pour faire apparaître? j'ai essayé de le faire mais sans succes

  12. #12
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    tiralarc03,

    Voici:
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Private Sub ComboBox1_Change()
    Dim oRng As Range
    Dim oCell As Range
    Dim oStr As String
    Dim oRng2 As Range
    Dim i As Integer
     
    Me.ListBox1.Clear
    With Worksheets("TS")
        Set oRng = FindAll(Me.ComboBox1.Value, .Columns(6), xlFormulas, xlWhole)
        If Not oRng Is Nothing Then
            For Each oCell In oRng
                Set oRng2 = .Range("A" & oCell.Row)
                oStr = oRng2
                For i = 1 To 13
                    oStr = oStr & " | " & oRng2.Offset(0, i)
                Next i
                Me.ListBox1.AddItem oStr
            Next oCell
        Else
            Set oRng = FindAll(Me.ComboBox1.Value, .Columns(8), xlFormulas, xlWhole)
            If Not oRng Is Nothing Then
                For Each oCell In oRng
                    Set oRng2 = .Range("A" & oCell.Row)
                    oStr = oRng2
                    For i = 1 To 13
                        oStr = oStr & " | " & oRng2.Offset(0, i)
                    Next i
                    Me.ListBox1.AddItem oStr
                Next oCell
            Else
                Set oRng = FindAll(Me.ComboBox1.Value, .Columns(10), xlFormulas, xlWhole)
                If Not oRng Is Nothing Then
                    For Each oCell In oRng
                        Set oRng2 = .Range("A" & oCell.Row)
                        oStr = oRng2
                        For i = 1 To 13
                            oStr = oStr & " | " & oRng2.Offset(0, i)
                        Next i
                        Me.ListBox1.AddItem oStr
                    Next oCell
                Else
                    MsgBox "Aucune référence trouvée en Colonne 6, 8 ou 10"
                End If
            End If
        End If
    End With
     
    End Sub
    Ce n'est PAS DU TOUT propre... mais je n'ai pas bcp de temps.
    Je vais voir si je peux te faire un truc plus joli demain.

    Cordialement,
    Kimy

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Ce n'est pas tous a fait cela que je souhaitais je te joins un exemple complet et un onglet "resultat" avec le résultat souhaité.
    Fichiers attachés Fichiers attachés
    • Type de fichier : xlsm V2.xlsm (105,0 Ko, 72 affichages)

  14. #14
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour tiralarc03,

    Si on sélectionne "KIT" qu'est-ce qu'il doit se passer ?
    Tu disais que tu voulais les résultats dans une ListBox, et là dans les cellules. Que dois-je comprendre ?

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Bonjour,
    Si on sélectionne "kit"
    il y aura qu'une seule écriture
    Avec en colonne dans la listbox

    1ere colonne : avec le numéro d’opération (pour KIT numéro ligne 37)
    2eme colonne : la date (pour KIT date 25/01/15)
    3eme colonne : le libellé (pour KIT libelle heracles archerie)
    4eme colonne : le code choisi (pour KIT code KIT)
    5eme colonne : si le code correspond a une dépense on mets la somme associe au code et non au montant total (pour KIT numero 50€)
    6eme colonne : si le code correspond a une recette on mets la somme associe au code et non au montant total (pour KIT numero Rien)

    L'exemple dans le post précédent c'est un exemple que j'ai ecrit dans un classeur mais c'est ce que je souhaite dans la listbox.

  16. #16
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour tiralarc03,

    Mets-toi à la place de ceux qui t'aide...
    Qu'est-ce que ça veut dire ?!
    Citation Envoyé par tiralarc03 Voir le message
    5eme colonne : si le code correspond a une dépense on mets la somme associe au code et non au montant total (pour KIT numero 50€)
    6eme colonne : si le code correspond a une recette on mets la somme associe au code et non au montant total (pour KIT numero Rien)
    Parle avec des exemples précis... Pas de fichier exemple.

    De plus, je ne comprends même pas les résultats que tu as fournis... autant dans le fichier que dans ton explicitation précédente...
    Bref, soit précis...

    Cordialement,
    Kimy

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Bonjour je sais que pour moi cela parait simple mais je comprends que l'explication est peut-être pas si clair, je vais essayer d’être clair:

    Tout d'abord au niveau de l'userform tout est ok forme, bouton commande, outils.

    Mon fichier est composé un onglet "TS" et un onglet "Analytique" uniquement

    Dans l'userform la combobox doit lister uniquement les codes en colonne A de l'onglet "analytique"

    Dans la listbox(pour être plus clair et plus simple, j'ai mis uniquement 5 colonnes pour la listbox):

    Lorsque l'on choisi le code avec la combobox, dans la listbox:
    - on affiche dans la colonne 1 de la listbox le numéro d’opération qui est en "colonne "A" qui correspond au code de la combobox
    - Ensuite dans la colonne 2 de la listbox la date d’opération "colonne B"
    - Dans la colonne 3 de la listbox le libellé de l’opération "colonne C"

    Dans la colonne 4 de la listbox, le type de l’opération soit Recette soit Dépense

    et enfin dans la colonne 5 de la listbox le montant de l’opération correspondant au code.

    Par exemple pour le code "BUR" il pour y avoir 5 lignes qui sont :

    1 / 01/01/2015 / Interet livret / Recette / 13.25
    2 / 02/07/2015 / ANCV / Recette / 10
    37 / 25/01/2015 / Remboursement materiel et licences/ Recette / 10
    38 / 25/01/2015 / Heracles archerie / Depense / 252
    42 / 02/08/2015 / Cora / Depense / 35.99



    Je joins un exemple avec des couleurs avec comme exemple le Code "BUR" les différentes couleur correspond chacune a une ligne de la listbox pour ce code.

    Merci énormément de ton aide.
    Fichiers attachés Fichiers attachés
    • Type de fichier : xlsm V3.xlsm (104,0 Ko, 80 affichages)

  18. #18
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour tiralarc03,

    Je pense que les couleurs m'ont aidées. Pas ton explication. ^^
    Bref, pour le ComboBox1_Change voici ce que je te propose :
    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
    Private Sub ComboBox1_Change()
    Dim oRng As Range
    Dim oCell As Range
    Dim oStr As String
    Dim oRng2 As Range
    Dim i As Integer
     
    Me.ListBox1.Clear
    With Worksheets("TS")
        Set oRng = FindAll(Me.ComboBox1.Value, Union(.Columns(6), .Columns(8), .Columns(10), .Columns(12)), xlFormulas, xlWhole)
        For Each oCell In oRng
            Set oRng2 = .Range("A" & oCell.Row)
            oStr = oRng2
            For i = 1 To 4
                If i <> 3 Then
                    oStr = oStr & " | " & oRng2.Offset(0, i)
                End If
            Next i
            oStr = oStr & " | " & oCell.Offset(0, 1)
            Me.ListBox1.AddItem oStr
        Next oCell
    End With
     
    End Sub
    N'hésite pas à revenir vers moi !

    Cordialement,
    Kimy

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Par défaut
    Super c'est ça un énorme MERCI

    Trois petits point supplémentaire et je te laisse tranquille

    Est-ce possible d'avoir le montant avec le symbole €
    Est-ce d'avoir les colonnes de même taille (code exemple ci-dessous)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListBox1.ColumnCount = 5
    ListBox1.ColumnWidths = "100;100;400;100;100"
    Est-ce possible d'avoir les numéros d'operation dans l'ordre par exemple pour le code "BUR" l'operation 2 est en dernier?

    Merci beaucoup de ton aide.

  20. #20
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Allez, échange de bons procédés !
    Je ne savais pas qu'on pouvait diviser une ListBox !

    Voici pour toi :
    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
    Private Sub ComboBox1_Change()
    Dim oRng As Range
    Dim oCell As Range
    Dim oRng2 As Range
    Dim i As Integer, k As Integer
     
    Me.ListBox1.Clear
    ListBox1.ColumnCount = 5
    ListBox1.ColumnWidths = "30;75;250;75;75"
    With Worksheets("TS")
        Set oRng = FindAll(Me.ComboBox1.Value, Union(.Columns(6), .Columns(8), .Columns(10), .Columns(12)), xlFormulas, xlWhole)
        k = 0
        For Each oCell In oRng
            Me.ListBox1.AddItem
            Set oRng2 = .Range("A" & oCell.Row)
            Me.ListBox1.List(k, 0) = oRng2
            For i = 1 To 4
                If i < 3 Then
                    Me.ListBox1.List(k, i) = oRng2.Offset(0, i)
                ElseIf i = 4 Then
                    Me.ListBox1.List(k, i - 1) = oRng2.Offset(0, i)
                End If
            Next i
            Me.ListBox1.List(k, 4) = oCell.Offset(0, 1) & " €"
            k = k + 1
        Next oCell
    End With
     
    End Sub
    Cordialement,
    Kimy

    EDIT : je n'avais pas vu ta dernière question. Alors, tout est possible en informatique.
    Est-ce vraiment souhaité ? Cela nécessite de stocker dans un tableau intermédiaire les valeurs et de les trier ensuite...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] creation d'une listbox
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 18/02/2011, 21h02
  2. DrawItem d'un listbox...
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2007, 15h50
  3. creation d'une file listbox
    Par calimero91 dans le forum Access
    Réponses: 5
    Dernier message: 24/05/2006, 15h40
  4. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2002, 12h36

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