Problème list box et check box

Bonjour a tous,

Voila j'ai rempli dans 2 feuilles des résultats avec des calculs et diverse formule, j'ai crée une form qui s'affiche depuis la feuille Accueil et j'aurais besoin d'aide pour que cela fonctionne, par exemple quand une check box est cochée celle de droite (par exemple celle en colonne AG sur la form celle du haut) cela m'affiche le nom du cheval dans la listbox course 1 s'il rempli la condition VRAI de la feuille course 1 si la condition est FAUX alors on ne rempli rien, j'ai mis des check box pour les numéros des courses mais je pense que cela ne sert a rien. Evidemment chaque feuille correspond au numéro de course de la form a gauche et a droite ça concerne tout le document.

Je met lien car fait plus que 300 ko

Télécharger

Merci de vôtre aide

PS: J'ai aussi une form barre de progression au cas ou si vous arrivez à la faire fonctionner le code est vide je sais pas comment le faire.

Bonjour muratime,

Je ne sais pas si je suis le seul mais j'ai beaucoup de mal à comprendre le rôle et le fonctionnement souhaité de ton Userform.

Peux-tu donner un exemple concret d'utilisation et de résultat?

Ok merci de me répondre une image vaut mieux qu'un gros discourt.

ouvrir l'image dans un nouvel onglet elle est un peu rognée

Je te remercie stepaustras c'est beaucoup plus clair à présent.

Maintenant se pose la question du formulaire, es-ce que tu penses que sa structure convienne?

Pour moi il serait bien plus profitable d'avoir un menu déroulant dans lequel tu sélectionnes ta course (en fonction des courses disponibles), qu'ensuite tu sélectionnes ce que tu veux afficher, et en dernier trouver tous les noms qui correspondent.

75stepaustras.xlsm (16.70 Ko)

OK merci bcp par contre si tu l'avais au format XLS car j'ai que la version 2003 de excel

Mes excuses.

Onglet acceuil -> clique sur "Vérifier résultat"

Je te laisse donner ton avis sur ce type de UserForm, s'il répond à ton besoin. (oui il ne fait rien)

47documents.7z (2.44 Ko)

Je crois que tu as oublié de mettre fichier


stepaustras a écrit :

Je crois que tu as oublié de mettre fichier

Ok par contre il semblerait qu'il y est un problème de décompression les fichiers sont a 0 ko et un message d'erreur à la décompression

Re ça y est j'ai réussi a ouvrir le 7Z j'ai du prendre ce logiciel car avec winrar il s'ouvrait pas par contre ça va pas aller car il me faut avoir des choix multiples dans mes check box de droite pour que je puisse soit prendre un critère ou deux ou trois etc .... choix 1 + choix 2 ou tous les choix en même temps etc....

J'arrive pas afficher quoique ce soit dans la listbox ou alors un truc que je fais mal j'ai créer une feuille Jour j'y met des chiffres ou du text mais le truc quoiqu'il est écris dans la la colonne de course 1 il faut qu'il affiche le nom du cheval concerné et pas qu'il affiche toute la colonne dans la liste box la ou j'ai mes formules

Oui oui c'est tout à fait normal le formulaire que je t'ai envoyé ne fait absolument RIEN. C'est juste pour avoir une idée de l'interface que tu vas avoir.

Je note ta remarque pour les cases à cocher et je vais y apporter des modifications. Quand les modifications seront faites je reviens vers toi

OK merci

Mais sinon OK je vais refaire ma form dans ton sens ça sera plus pratique surement, par contre seul les cellules écrite VRAI m'intéresse si c'est = FAUX alors on ne met rien, je parle pour que le nom du cheval apparaisse dans la listbox.

Voilà le userform. Je pense qu'il va répondre pleinement à ta demande.

J'attends ton retour. Si cela te convient, merci de marquer le sujet comme résolu.

PS: Il prendra en compte toutes les feuilles dont le nom contient "course " (l'espace est très important)

PS: Il ignore la casse, donc si tu décides de mettre "COURSE 1" ou "Course 1" ou "CoUrSe 125263" ça marchera

33proposition2.7z (2.30 Ko)

Ok merci bcp D3D9X juste un souci mineur et comme un gros discoure............

Je met le code pour savoir quoi modifier

Private Sub CheckBox11_Click()
updateResultat
End Sub
Private Sub CheckBox13_Click()
updateResultat
End Sub
Private Sub CheckBox14_Click()
updateResultat
End Sub
Private Sub CheckBox15_Click()
updateResultat
End Sub
Private Sub CheckBox16_Click()
updateResultat
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub CommandButton3_Click()
Dim ole1 As Control
For Each ole1 In UserForm1.Controls
If Left$(ole1.Name, 8) = "CheckBox" Then ole1.Value = True
Next
End Sub

Private Sub CommandButton4_Click()
Dim ole1 As Control
For Each ole1 In UserForm1.Controls
If Left$(ole1.Name, 8) = "CheckBox" Then ole1.Value = False
Next
End Sub

Private Sub UserForm_Initialize()
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
    If LCase(ws.Name) Like "*course *" Then
        listCourses.AddItem ws.Name
    End If
Next ws

End Sub

Private Sub updateResultat()
Dim critere1 As Boolean, critere2 As Boolean, critere3 As Boolean, critere4 As Boolean, critere5 As Boolean
Dim respectCriteres As Boolean

respectCriteres = False

listResultats.Clear

If listCourses.ListIndex = -1 Then Exit Sub 'on a pas sélectionné de course

critere1 = CheckBox11.Value 'AG
critere2 = CheckBox13.Value 'S
critere3 = CheckBox14.Value 'Y
critere4 = CheckBox15.Value 'AB
critere5 = CheckBox16.Value 'AF

Set ws = ActiveWorkbook.Sheets(listCourses.List(listCourses.ListIndex))

Dim numLigne As Long

With ws
    For numLigne = 2 To ws.Cells(Rows.Count, "B").End(xlUp).Row
        If critere1 Or critere2 Or critere3 Or critere4 Or critere5 Then respectCriteres = True 'Si au moins un critère est spécifié on met True

        If critere1 And .Cells(numLigne, "AG") <> True Then respectCriteres = False
        If critere2 And .Cells(numLigne, "S") <> True Then respectCriteres = False
        If critere3 And .Cells(numLigne, "Y") <> True Then respectCriteres = False
        If critere4 And .Cells(numLigne, "AB") <> True Then respectCriteres = False
        If critere5 And .Cells(numLigne, "AF") <> True Then respectCriteres = False

        If respectCriteres = True Then addResponse (.Cells(numLigne, "B").Value)

    Next numLigne
End With
End Sub

Private Sub addResponse(ByVal nomResultat As String)
Dim i As Integer
If listResultats.ListCount = 0 Then
    listResultats.AddItem nomResultat
Else
    For i = 0 To listResultats.ListCount - 1
        If listResultats.List(i) = nomResultat Then
            'On écrit rien et on sort
            Exit Sub
        End If
    Next i
    'On a testé tous les éléments, il n'est pas présent
    listResultats.AddItem nomResultat
End If

End Sub

Oui en effet je l'ai codé comme ça. rajoute ça au code du formulaire

Private Sub listCourses_Click()
updateResultat
End Sub
Private Sub listCourses_Change()
updateResultat
End Sub

OK merci bcp ça marche nickel

Juste encore un petit truc a te demander je voudrais supprimer dans les feuilles course 1, course 2 etc ... toute les lignes qui sont supérieur ou égal à la date qui se trouve en D8 sur ma feuille Accueil de mon fichier original, j'ai essayé ça mais ça marche pas.

Sub SupprDate()

Dim madate As Date

Dim x As Integer

If (Range("D8")) Then

madate = (Range("D8"))

For x = Range("A65536").End(xlUp).Row To 2 Step -1

If Range("A" & x) >= madate Then Rows(x).Delete

Next

End If

End Sub

Ton code est "faux" car lorsque tu fais ton

maDate = Range("D8")

Il prend la feuille active. Donc si tu es sur une page de course, bah maDate = 2850m -> pas ce que tu voulais.

Donc testes déjà en écrivant:

maDate = Sheets("Accueil").Range("D8")

et en lancant ta procéduire depuis la feuille de courses à "nettoyer"

J'ai essayé un truc comme ça, ça me supprime toutes les dates

Sub SupprDate()
Dim madate As Date
Dim x As Integer

madate = Sheets("Accueil").Range("D8")
For x = Range("A65536").End(xlUp).Row To 2 Step -1
If Range("A" & x) >= madate Then Rows(x).Delete
Next

End Sub

Alors j'ai essayé de changer le >= par <= et rien ne se passe

Ta date n'est pas en D8 ...

Le code suivant supprime toutes les lignes STRICTEMENT AVANT la date spécifiée.

Sub SupprDate()
Dim madate As Long
Dim x As Integer

madate = CLng(Sheets("Accueil").Range("D3").Value)
For x = Range("A65536").End(xlUp).Row To 2 Step -1
If CLng(Range("A" & x)) < madate Then Rows(x).Delete
Next

End Sub
d3d9x a écrit :

Ta date n'est pas en D8 ...

QUEL NAZE JE SAIS PAS POURQUOI JE FAIS UNE FIXETTE SUR D8 c'est D3 ça fonctionne mieux effectivement et D8 doit être egal a 0 cellule vide donc me supprime quand même si D8 est vide.

reste plus que le petit morceaux qui dira que si je reste en feuille Accueil (je met un bouton) qu'il le fasse pour feuil course 1 etc ...

PS: J'ai mis ça car me faut le = pour mes calculs faut que les dates soit antérieur mais pas = a celle de D3

Sub SupprDate()
Dim madate As Date
Dim x As Integer

madate = Sheets("Accueil").Range("D3")
For x = Range("A5000").End(xlUp).Row To 2 Step -1
If Range("A" & x) >= madate Then Rows(x).Delete
Next

End Sub
Rechercher des sujets similaires à "probleme list box check"