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

aldim13 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 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
A voir également:

4 réponses

ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   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
Utilisateur anonyme
 
Bonjour

au pire, un copier/coller de ton code
non pas au pire, c'est la méthode à privilégier, en utilisant les balises de code.
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
aldim13 Messages postés 3 Date d'inscription   Statut Membre 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


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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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
aldim13 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Ça plante tout de suite avec un message d'erreur qui t'invite à corriger quelque-chose.
0
aldim13 > yg_be Messages postés 23541 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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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