Combobox tri
Résolutchulio Messages postés 174 Statut Membre -
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
Configuration: Windows XP Internet Explorer 7.0
- Combobox tri
- Tri sur excel - Guide
- Logiciel tri photo - Guide
- Tri catalogue - Télécharger - Bureautique
- Combobox ✓ - Forum VB / VBA
- Peut on récupérer un colis au centre de tri chronopost - Forum Consommation & Internet
43 réponses
- 1
- 2
- 3
Le fil porte sur un formulaire Excel utilisant UsF_Modification et cinq combobox de tri ; lors d'une recherche multi-critères, si une valeur n’existe pas, l’exécution plante. Des participants proposent des corrections, notamment un remaniement du code pour lever l’erreur et la suppression d’une ligne, tandis qu’un autre signale une variable non définie et ajuste le démarrage. L’échange rappelle le rôle central de UsF_Modification pour extraire rapidement les données de la feuille BDD via les filtres, et propose une réorganisation vers une feuille dédiée avec désactivation des contrôles. En parallèle, les propositions vont jusqu’à supprimer l’UF Modification et créer une feuille simplifiée, afin de limiter les points d’échec et de stabiliser le filtrage multi-critères sans imposer une solution immédiate.
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.
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...
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPour 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
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
Veux-tu le remettre
A+
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+
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
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
Excuse moi suis au boulot et j'avais juste jeter un oeil.. désolé.
Je regarde tout ça!
Je te remercie pour ton aide!
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 !
Je revois ça..
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...
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….
- 1
- 2
- 3