Combobox tri

Résolu/Fermé
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 - 30 mars 2009 à 16:16
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 - 26 mai 2009 à 16:32
Bonjour,
Je me permets de vous soliciter car je suis de nouveau bloqué…
Lorsque vous cliquez sur recherche, il y a UsF_Modification qui se charge,
J’ai 5 Combobox de tri.
Voici le fichier : http://www.cijoint.fr/cjlink.php?file=cj200903/cijT1OKLdw.xls
Lorsque je fait une recherche avec une seule combobox , il n’y a pas de soucis, ça fonctionne, par contre lorsque je veux faire une recherche avec plusieurs combobox, si la valeur n’existe pas ça plante…. Il faut faire l’essai pour comprendre..
Y aurait-il possibilité de me donné un petit coup de main de nouveau…
Encore merci

43 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 avril 2009 à 11:37
J'ai "un tout petit peu" remanier ton code :-)
Plus d'erreur..
https://www.cjoint.com/?eilKIXXVQO
Tu dis...
Edit: faut supprimer la ligne...
Tabtemp = .Range(.Cells(2, 1), .Cells(Derligne, 10))
Tu devras réadapter un peu les contrôles, je n'ai pas un écran suffisament large et j'ai du modifier l'affichage pour tout voir.
1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
30 mars 2009 à 16:35
Bonjour,
Je ne comprend pas ton problème, ça a l'air de fonctionner convenablement !!
A+
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
31 mars 2009 à 07:43
Par exemple si dans la Combobox RNC N° tu choisi "2", et que dans la Combobox délai de réponse tu choisi "16", ça plante.
C'est normal car ça n'existe pas dans la base de donnée, tu vois ce que je veux dire?

L'essentiel serait que je puisse limiter les choix dans les textbox en fonction des filtres précédents...
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
31 mars 2009 à 17:33
Je ne pense pas qu'il soit nécessaire que je te fasse la macros, tu semble déjà maitriser pas mal excel.
Pour que les autres combo soit réinitialiser...
Faire une fonction qui les vide et les réinitialise en testant..

If not rows(x).hide then
    Mettre la cellule dans le combo
end if

Et si tu t'étais inspiré de cet exemple tu pourrais économiser 200 à 300 lignes de code
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
1 avril 2009 à 10:17
:) Si seulement j’avais fait cette macro tout seul..Je ne suis hélas pas aussi bon que cela, vous m’aviez déjà bien aidé lors de l’élaboration de celle-ci !

Pour ce qui est de la ligne de code que tu me donne, où dois-je la mettre ?
Dans l’USF ou dans le module ?

Merci à toi
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
1 avril 2009 à 10:19

Si seulement j’avais fait cette macro tout seul..Je ne suis hélas pas aussi bon que cela, vous m’aviez déjà bien aidé lors de l’élaboration de celle-ci !

Pour ce qui est de la ligne de code que tu me donne, où dois-je la mettre ?
Dans l’USF ou dans le module ?

Merci à toi
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 avril 2009 à 11:19
Dans "Mes interventions" je vois que tu a poster un message à 10h19 mais dans le topic je ne le trouve pas, probablement dù au bug de ce matin.
Veux-tu le remettre
A+
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
1 avril 2009 à 13:31
Mmmm... je ne vois pas où tu dis.............
Dans "MES INTERVENTIONS"? la feuille?

Désolé..
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 avril 2009 à 13:32
tu as poster un message à 10h19 ??
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
1 avril 2009 à 14:47
OUI,OUI POURQUOI?

Je n'arrive toujours pas là--- Je ne vois pas ou mettre cette ligne de code...
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
2 avril 2009 à 06:05
OK, laisse tomber pour le poste de 10h19, maintenant il est visible.
Vu ta réponse j'ai regarder ton code d'un peu plus près et ma 1ère constatation...
Tu t'évertue à recréer la roue, le filrage ne devrait pas être fait par des routines ni le remplissage des combo, tout est disponnible sur la feuille excel, sur la feuille "Interventions" il y a bien sûr beaucoup de colonnes, serait alors préférable de recopier les colonnes nécessaires sur une autre feuille et d'y mettre les filtres, et de travailler à partir de cette feuille et pas d'un UF qui ne sert à rien.
Et 2èm constatation, si tu sélectionne par N° le mieux serait de mettre les autre combo enabled à false, puisqu'il n'y aurait rien d'autre à filtrer.
3èm constatation, ton code est beaucoup trop "tarabiscoté" pour que je puisse le debuggé valablement, il faudrait tout reprendre à zéro.
En résumé : Je supprimerais l'UF Modification, je créerais une feuille du même nom en laissant quelque lignes disponnible sur le haut de la feuille pour éventuellement y mettre quelque boutons si nécessaire.
A+
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
6 avril 2009 à 08:07
Salut,
En fait Usf_Modification est très utile ! Là on ne le voit pas trop car le fichier n’est pas complet, mais en fait cet Usf permet de récupérer les données de la feuille « BDD » très rapidement via les différents filtres que l’on peut appliquer via les combobox (car tous sont utilisés, et non pas juste celui avec le N° de Rnc), puis lorsque l’on double clique sur une ligne de la listbox, il y a l’Usf_Creation qui s’affiche, là il y a toutes les informations de la feuille BDD qui sont visibles et modifiables si on a le mot de passe…. A savoir que toutes ses données qui se trouvent dans beaucoup de colonnes doivent être insérées dans un rapport qui se trouve sur une feuille nommée « Formulaire » juste en cliquant sur un bouton de l’Usf_Creation.
Je récapitule juste mon problème car je ne sais pas si c’était bien clair…
Lorsque je veux mettre plusieurs filtres avec les combobox dans l’usf modification, je voudrais qu’à chaque nouveau filtre mis, le choix dans les combobox se réduise, afin que la macro ne plante du fait que le choix ne corresponde a rien… faire l’essai..
J’aimerais vraiment pouvoir rester dans cette configuration et que la macro ne plante pas…. Ce serait génial... Merci encore
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
6 avril 2009 à 12:00
Ok je viens d'essayer, ça plante au démarage me met Variable non définie :

Dans l'USF_Modification:

Sub RemplirListeTout()
Dim lig As Long
Dim col As Integer
Dim FL1 As Worksheet
Set FL1 = Sheets("INTERVENTIONS")
With FL1
Derligne = .Range("C" & Rows.Count).End(xlUp).Row
Tabtemp = .Range(.Cells(2, 1), .Cells(Derligne, 10))
End With
ListBox1.Clear
For lig = 2 To Derligne
With ListBox1
.AddItem
For col = 1 To 10
.List(lig - 2, col - 1) = FL1.Cells(lig, col)
Next col
End With
Next lig
remplirCombo
End Sub
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
6 avril 2009 à 12:00
pour Tabtemp
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 avril 2009 à 12:19
voir edit de poste précédant..
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
6 avril 2009 à 13:09
ralalala...

Excuse moi suis au boulot et j'avais juste jeter un oeil.. désolé.

Je regarde tout ça!

Je te remercie pour ton aide!
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
6 avril 2009 à 13:44
C’est parfait tout ça ! ça fonctionne exactement comme je le souhaitait ! Avec beaucoup moins de lignes de codes…. !!
Tu as vraiment fait un excellent boulot !
Par contre juste une question, crois tu qu’il y aurait possibilité de supprimer les doublons dans les combo de tri ? J’ai essayé un code que j’avais pour de simple cbbx mais pas moyen avec ce prog là…
Encore merci !
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 avril 2009 à 13:47
J'y avais pensé mais comme tu n'en parlais pas je me suis dit que ça ne t'intéressais pas.
Je revois ça..
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 avril 2009 à 13:59
Remplace cette sub...
Sub remplirCombo()
Dim CB As Control
Dim Index As Integer, lig As Long, Buff As String
Dim LigCb As Long, B As Boolean
    Pas = True
    For Each CB In Me.Controls
        If TypeOf CB Is MSForms.ComboBox Then
            Index = CB.Tag
            CB.Clear
            For lig = 0 To ListBox1.ListCount - 1
                Buff = ListBox1.List(lig, Index)
                If CB.ListCount > 0 Then
                    For LigCb = 0 To CB.ListCount - 1
                        If CB.List(LigCb) = Buff Then B = True: Exit For
                    Next LigCb
                End If
                If Not B Then CB.AddItem Buff
                B = False
            Next lig
        End If
    Next CB
    Pas = False
End Sub

Tu dis...
0
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 1
6 avril 2009 à 14:12
…. Respect…. C’est au top…
Je vais en profiter pour poser ma dernière question…

Je ne sais pas si tu à vu, mais lorsque l’on double clique sur la listbox, (et qu’il n’y a pas de filtre de sélectionné) il y a le Usf_Creation qui s’affiche avec toute les données de la ligne.
Ça fonctionne nickel, par contre dès qu’il y a un filtre, ça me prend automatiquement la RNC N°1… faire l’essai pour mieux comprendre. Le problème vient de cette sub :

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

' Masquer le formulaire Modification
'UsF_Modification.Hide
Unload Me

LigInt = 1 + Me.ListBox1.ListIndex + 1
UsF_Creation.Show
End Sub

Je ne savais pas quoi mettre pour que ça prenne la ligne filtrée… Tu comprend mon dernier pb ? Merci encore….
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 avril 2009 à 14:21
J'ai pas tester mais je pense que la modif ci-dessous devrait résoudre le problème
remplacer la ligne...
LigInt = 1 + Me.ListBox1.ListIndex + 1
par
LigInt = ListBox1.list(ListBox1.ListIndex ,0) 'éventuellement ajouter 1
sinon tu dis, je verrais avec le classeur.
0