Alimentation de ComboBox pour filtres automatiques !

  • Initiateur de la discussion Initiateur de la discussion WDAndCo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

WDAndCo

XLDnaute Impliqué
Bonsoir le Forum,

- Je voudrais utiliser un UserFrom pour trouver le lien de la colonne G. (par filtrage)
Et cela a l'aide de Combobox qui feront office de filtres automatiques.

Comment alimenter ses Combobox de façon a n'avoir que les choix possibles en fonction des choix déjà fait ? (voir le fichier joint)

D'avance merci.

Dominique
 

Pièces jointes

Re : Alimentation de ComboBox pour filtres automatiques !

Bonsoir le Forum

La solution est proche. Lorsque certains choix son fait, il est possible alors, que le choix d'un ou de plusieurs combobox soit limité à une seule possibilité.
Dans ces cas la, est il possible de remplacer le * par l'unique choix !

Voir dans le fichier joint.
D'avance merci

Dominique
 

Pièces jointes

Dernière édition:
Re : Alimentation de ComboBox pour filtres automatiques !

Bonjour le Forum

Sa doit être la :
Code:
Sub ListeCol(noCol)
  Set MonDico = CreateObject("Scripting.Dictionary")
  For i = 1 To [bd].Rows.Count
     ok = True
     For n = 1 To [bd].Columns.Count
       If n <> noCol Then
         If Not Range("bd").Cells(i, n) Like Me("ComboBox" & n) Then ok = False
       End If
     Next n
     If ok Then
       tmp = Range("BD").Cells(i, noCol)
       MonDico(tmp) = tmp
     End If
   Next i
   MonDico.Add "*", "*"
   temp = MonDico.items
   Call Tri(temp, LBound(temp), UBound(temp))
   Me("ComboBox" & noCol).List = temp
   '
   ' Code  rajouté
   '
  If Val(Me.Label13) = 1 Then
    Va_Page
  End If
End Sub

Mais ou ?
 
Re : Alimentation de ComboBox pour filtres automatiques !

Bonjour
J'ai essayé de trouver une solution, j'en ai une qui ne me plait pas (trop lourde) et le temps d'actualisation des données est excessif.

J'ai laissé tomber en souhaitant que quelqu'un d'autre trouve une bonne solution
Je la propose à toi de voir
Bonne journée
 

Pièces jointes

Dernière édition:
Re : Alimentation de ComboBox pour filtres automatiques !

Bonjour Banzai64

Merci je regarde cela.

Dominique

Edit : La valeur du seul choix possible ou tout autres action qui permettras de voir que le ou les Combobox est sont devenu inutile.
 
Dernière édition:
Re : Alimentation de ComboBox pour filtres automatiques !

Bonjour le Forum

J'ai mis le fichier en fonction, sa marche. Mais quelqu'un trouve une autre solution je suis preneur !
La page à ouvrir est en "J" ou mettre un USF pour choisir entre "J", "K", "L" et "M" ?

Dominique
 
Dernière édition:
Re : Alimentation de ComboBox pour filtres automatiques !

Bonsoir le Forum,

[HS]Vous avez raison, mais comme il n'y à que les . qui ne changent pas d'avis ![/HS]
Code:
Sub ListeCol(noCol)
  Set MonDico = CreateObject("Scripting.Dictionary")
  For i = 1 To [bd].Rows.Count
     ok = True
     For n = 1 To [bd].Columns.Count
       If n <> noCol Then
         If Not Range("bd").Cells(i, n) Like Me("ComboBox" & n) Then ok = False
       End If
     Next n
     If ok Then
       tmp = Range("BD").Cells(i, noCol)
       MonDico(tmp) = tmp
     End If
   Next i
   MonDico.Add "*", "*"
   temp = MonDico.items
   Call Tri(temp, LBound(temp), UBound(temp))
   Me("ComboBox" & noCol).List = temp
   '
   ' Code  rajouté
   '
  If Val(Me.Label13) = 1 Then
    Va_Page
  End If
End Sub

Ou récupérer les donnés de toutes combobox ? Car certaine reste avec la valeur "*" alors que leurs valeurs aurait due changer ! Ou les valeur de la ligne choisie.

Dominique
 
Re : Alimentation de ComboBox pour filtres automatiques !

Bonsoir le Forum

Le fichier ici dessus fonctionne très bien, trop bien il est devenu trop gros !
L'idée est de faire un classeur qui permet de faire un choix (comme actuellement) mais au lieu démasquer une ou des feuilles, il faudra ouvrir un classeur.
Comment modifier le code ci joint pour réaliser cela ?
Code:
Sub Va_Page()

Cells(1, 27).Value = ComboBox1.Value
Cells(1, 28).Value = ComboBox2.Value
Cells(1, 29).Value = ComboBox3.Value
Cells(1, 30).Value = ComboBox4.Value
Cells(1, 31).Value = ComboBox5.Value
Cells(1, 32).Value = ComboBox6.Value
Cells(1, 33).Value = ComboBox7.Value
Cells(1, 34).Value = ComboBox8.Value
Cells(1, 35).Value = ComboBox9.Value

  On Error Resume Next
  Sheets(Pge).Visible = True
  If Err.Number > 0 Then
    MsgBox "La fiche " & Pge & " est inexistante !"
  Else
    Sheets(Pge).Select
    
     Unload Me
    Sheets("choix").Visible = False
  End If
End Sub

D'avance merci !
 
Dernière édition:
Re : Alimentation de ComboBox pour filtres automatiques !

Bonsoir le Forum

J'ai trouvé la modification à faire sur ce forum, mais je n'est plus les message d'erreurs !
Code:
Sub Va_Page()
Cells(1, 27).Value = ComboBox1.Value
Cells(1, 28).Value = ComboBox2.Value
Cells(1, 29).Value = ComboBox3.Value
Cells(1, 30).Value = ComboBox4.Value
Cells(1, 31).Value = ComboBox5.Value
Cells(1, 32).Value = ComboBox6.Value
Cells(1, 33).Value = ComboBox7.Value
Cells(1, 34).Value = ComboBox8.Value
Cells(1, 35).Value = ComboBox9.Value
Dim nom As String 'déclare la variable nom
Dim noncomplet As String 'déclare la variable nomcomplet
Dim chem As String 'déclare la variable chem
nom = Pge 'définit la variable nom (début du nom du fichier)
chem = ActiveWorkbook.Path 'définit la variable chem (chemin d'accès du classeur actuel, à adapter)
With Application.FileSearch 'recherche de fichier
.LookIn = chem 'dans le même répertoire que le fichier actuel
.SearchSubFolders = True 'dans les sous-répertoires
.Filename = nom & "*.xls" 'tous les fichiers Excel commençant par le nom de la boite
If .Execute > 0 Then 'si au moins un fichier est trouvé
nomcomplet = .FoundFiles(1) 'définit le nom complet du fichier trouvé
Workbooks.Open (nomcomplet) 'ouvre le fichier
End If
End With


  'On Error Resume Next
  'Sheets(Pge).Visible = True
  'If Err.Number > 0 Then
    'MsgBox "Le Classeur " & Pge & " est inexistant !"
  'Else
    'Sheets(Pge).Select
    
     'Unload Me
    'Sheets("choix").Visible = False
  'End If
End Sub
D'avance merci de votre aide !
 
Re : Alimentation de ComboBox pour filtres automatiques !

Bonjour le Forum, je reviens vers vous car j’ai modifié le nombre de colonne et la façon ou la BDD est alimenté.
Et depuis le classeur choisi ne s’ouvre pas.
C’est le premier classeur dans le bon dossier qui s’ouvre. Et cela soit par le tri a l’aide des ComboBox ou un clic dans la ListView je vous joint le Classeur dans le quel j’ai bloqué la MAJ . (J'ai l'impression que la variable Pge n'est pas bonne !)
D’avance merci
Dominique

Code:
' Rajouté
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  Pge = Me.ListView1.ListItems(Item.Index).ListSubItems(17)
  Va_Page
End Sub

Code:
Sub Va_Page()
Dim nom As String 'déclare la variable nom
Dim noncomplet As String 'déclare la variable nomcomplet
Dim chem As String 'déclare la variable chem
nom = Pge 'définit la variable nom (début du nom du fichier)
chem = ActiveWorkbook.Path 'définit la variable chem (chemin d'accès du classeur actuel, à adapter)
With Application.FileSearch 'recherche de fichier
.LookIn = chem 'dans le même répertoire que le fichier actuel
.SearchSubFolders = True 'dans les sous-répertoires
'.Filename = nom & "*.xls" 'tous les fichiers Excel commençant par le nom de la boite
If .Execute > 0 Then 'si au moins un fichier est trouvé
nomcomplet = .FoundFiles(1) 'définit le nom complet du fichier trouvé
Workbooks.Open (nomcomplet) 'ouvre le fichier
End If
End With


  On Error Resume Next
  'Sheets(Pge).Visible = True
  If Err.Number > 0 Then
    MsgBox "Le Classeur " & Pge & " est inexistant !"
  Else
    'Sheets(Pge).Select
    
     Unload Me
    'Sheets("choix").Visible = False
  End If
End Sub
 

Pièces jointes

Bonjour,
etant nouveau sur ce forum et débutant en vbna ,j'ai repris un morceau de programme de Mr Boisgontier sur ce site, et je l'ai modifié.
Aprés essai je me rend compte que lorsque que j'ai plusieurs fois le meme nom dans la colonne A , le tri automatique ne m'affiche pas tous les noms de la colonne A(sociètè).
Est 'il possible de m'indiquer les modifications à effectuer pour que le tri fonctionne.
Je vous remercie par avance
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
320
Retour