Bonjour, Mon code ne fonctionne pas ! Au secours svp!!!

aldim13 Messages postés 3 Statut Membre -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je ne suis pas très bon en matière de programmation VBA, aussi, je viens vers vous chercher un peu d'aide.
j'ai créé un tableau excel avec plusieurs colonnes. j'ai créé un ComboBox par lequel je passe pour réaliser mes différents filtres. toutefois, je souhaiterai dans ce même ComboBox ajouter une ListBox afin d'y s'electionner plusieurs critères dans la même colonne (des numéro de semaines compris dans une liste).
j'ai déjà créé ma ListBox1 avec la source, mais ma commande ne fonctionne pas quand je sélectionne la moindre semaine.

Si quelqu'un voulait bien jeter un coup d’œil à mon code pour m'aider j’apprécierais.
Cordialement.

aldim13

4 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour Aldim, bonjour le forum,

    Arf ! Une photo... Ça donne même pas envie de regarder.

    Je te conseille vivement un fichier en pièce jointe ou, au pire, un copier/coller de ton code...
    0
  2. aldim13 Messages postés 3 Statut Membre
     
    Bonjour,

    Je ne suis pas très bon en matière de programmation VBA, aussi, je viens vers vous chercher un peu d'aide.
    j'ai créé un tableau excel avec plusieurs colonnes. j'ai créé un ComboBox par lequel je passe pour réaliser mes différents filtres. toutefois, je souhaiterai dans ce même ComboBox ajouter une ListBox afin d'y s'electionner plusieurs critères dans la même colonne (des numéro de semaines compris dans une liste).
    j'ai déjà créé ma ListBox1 avec la source, mais ma commande ne fonctionne pas quand je sélectionne la moindre semaine.

    Si quelqu'un voulait bien jeter un coup d’œil à mon code pour m'aider j’apprécierais.
    Cordialement.

    aldim13

    Private Sub UserForm_Initialize()
    ComboBox1.List = [AN].Value
    ComboBox2.List = [SEM].Value
    'ComboBox3.List = [SEM].Value
    'ComboBox4.List = [SEM].Value
    'ComboBox5.List = [SEM].Value
    ComboBox6.List = [ACT].Value
    ComboBox7.List = [CLTS].Value
    ComboBox8.List = [AFF].Value
    
    ListBox1.ColumnHeads = True
    ListBox1.RowSource = "LISTES!d2:d54"
    
    End Sub
    
    Private Sub CommandButton8_Click()
    
    With Sheets("SAISIES")
    
    Sheets("SAISIES").Select
    
    On Error Resume Next
    For Each Sh In Sheets
        Sh.ShowAllData
    Next Sh
    
    
    If ComboBox1 <> "" Then
            .Range("$A$11:$N$4250").AutoFilter Field:=2, Criteria1:=Array(ComboBox1.Text), Operator:=xlFilterValues
              End If
    
    If ComboBox2 <> "" Then
            .Range("$A$11:$N$4250").AutoFilter Field:=3, Criteria1:=Array(ComboBox2.Text), Operator:=xlFilterValues
              End If
    
    'If ComboBox3 <> "" Then
            '.Range("$A$11:$N$4250").AutoFilter Field:=4, Criteria1:=Array(ComboBox3.Text), Operator:=xlFilterValues
            'ActiveSheet.Range("$A$11:$N$4250").AutoFilter Field:=14, Criteria1:="<>"
    
    If ComboBox6 <> "" Then
            .Range("$A$11:$N$4250").AutoFilter Field:=5, Criteria1:=Array(ComboBox6.Text), Operator:=xlFilterValues
              End If
    
    If ComboBox7 <> "" Then
            .Range("$A$11:$N$4250").AutoFilter Field:=7, Criteria1:=Array(ComboBox7.Text), Operator:=xlFilterValues
              End If
    
    If ComboBox8 <> "" Then
            .Range("$A$1:$N$4250").AutoFilter Field:=8, Criteria1:=Array(ComboBox8.Text), Operator:=xlFilterValues
              End If
    
    
    'CETTE COMMANDE NE FONTIONNE PAS !!!!!
        If ListBox1 <> "" Then
            .Range("$A$11:$N$4250").AutoFilter Field:=3, Criteria1:=Array(ListBox1.List), Operator:=xlFilterValues
              End If
    
    End With
    
    
    Application.GoTo Range("A1"), True
        Range("E10").Select
    
    Application.ScreenUpdating = True
    
    ActiveWorkbook.Save
    End Sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      bonsoir, pour commencer: ajoute "option explicit" en début de code, et compile ton code.
      ensuite, que veux-tu dire par "ma commande ne fonctionne pas"? as-tu un message d'erreur?
      suggestion : exécute ton code en mode pas à pas, cela t'aidera sans doute à découvrir ce qui ne fonctionne pas.
      0
  3. aldim13 Messages postés 3 Statut Membre
     
    Merci yg_be,

    En fait mes filtres du dessus fonctionnent parfaitement, mais quand je lance le filtrage par la ListBox il ne se passe rien ! C'est à dire qu'un filtrage se lance, qui ne correspond pas a ma demande et ensuite quelque soit ma nouvelle sélection dans la ListBox le filtrage reste le même, au même titre que si je choisi plusieurs semaines dans ma ListBox...

    J'ai essayé "Option Explicit" mais ça ne me donne pas plus d'info ! Ça plante tout de suite !!!

    Merci encore.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Ça plante tout de suite avec un message d'erreur qui t'invite à corriger quelque-chose.
      0
      1. aldim13 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour yg_be,

        Non, ça ne plante pas du tout ! en fait on dirait que le bouton active la macro, mais qu'elle ne fonctionne pas ! lors du premier filtre ma commande est exécutée et la colonne est filtrée, mais de manière incompréhensive et lors des filtres suivant, je vois bien que le filtre réagit, mais rien ne change...

        je n'arrive pas a comprendre ou ça pêche !!!!
        0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Si j'ai bien lu ta ListBox est MultiSelect?
    Si oui, fais ce test :

    1- ouvre un nouveau classeur,
    2- insère un UserForm ,
    3- dans cet userform insère :
    • une listbox (ListBox1)
    • 3 CommandButton (CommandButton1, CommandButton2, CommandButton3)

    4- places ce code dans le module de l'userform :
    Option Explicit
    
    Private Sub CommandButton1_Click()
     MsgBox ListBox1
    End Sub
    
    Private Sub CommandButton2_Click()
     MsgBox ListBox1.ListIndex
    End Sub
    
    Private Sub CommandButton3_Click()
     MsgBox ListBox1.List(ListBox1.ListIndex)
    End Sub
    
    Private Sub UserForm_Initialize()
    Dim i&
    For i = 1 To 50
     ListBox1.AddItem "Liste " & i
    Next
    ListBox1.MultiSelect = fmMultiSelectMulti
    End Sub


    Puis amuse toi à tester en cliquant sur chacun des boutons :
    1- sans rien sélectionner,
    2- en sélectionnant une unique ligne de ta listbox,
    3- en sélectionnant plusieurs lignes.

    Les erreurs devraient alors être assez explicite.
    0