Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
939 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Liste déroulante & Autofilter VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Liste déroulante & Autofilter VBA

n°2190409
rhj94
Posté le 16-05-2013 à 12:18:28  profilanswer
 

Bonjour à tous :)
 
Tout d'abord je tiens à préciser que je suis très mauvais en ce qui concerne VBA et j'espère que quelqu'un aura une solution à mon problème :)
 
Mon problème est le suivant :  
 
A l'aide de listes déroulantes et de la fonction auto-filter, je souhaite affiner une base de données (cf. Onglet Index du fichier excel) pour que seules celles qui m'intéressent puissent s'afficher.  
 
J'ai trouvé sur le net une formule qui m'a permis d'appliquer le premier filtre qui est le mois :  
 
 
Private Sub Worksheet_Change(ByVal Target As Range)
 
If Target.Address = "$D$2" Then
    Dim Lig As Long, Critère As String
    Lig = ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Row
    Critère = Target.Value
     
    ActiveSheet.Range("$O$4:$O$" & Lig).AutoFilter Field:=1, Criteria1:=Critère
End If
End Sub
 
 
une fois ce filtre appliqué, j'aimerai appliquer un deuxième filtre comme la date par exemple. Cependant je ne sais pas comment faire.
 
 
Voilà un lien vers le fichier (onglet "Index) : http://www.fichier-xls.fr/2013/05/ [...] acro-test/
 
Merci pour votre aide !!  :D  
 
 

mood
Publicité
Posté le 16-05-2013 à 12:18:28  profilanswer
 

n°2190414
rhj94
Posté le 16-05-2013 à 12:37:55  profilanswer
 

Mince, le lien exact est le suivant :  
 
http://xls.lu/C41p/

n°2190434
Marc L
Posté le 16-05-2013 à 14:08:33  profilanswer
 

 
           Bonjour.           Où je me trouve, je ne peux télécharger par raison de sécurité …
 
           Par contre, tu pourrais adapter le code suivant situé obligatoirement dans le module de la feuille des données à filtrer :

Code :
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2.     Etat = ThisWorkbook.Saved
  3.     If Not Me.AutoFilterMode Then [B1:D1].AutoFilter
  4.     If Target > "" And Not Intersect(Me.AutoFilter.Range, Target) Is Nothing Then
  5.         Cancel = True
  6.         If Target.Row = 1 Then
  7.             If Me.FilterMode Then Me.ShowAllData
  8.             [A1].Select
  9.         Else
  10.             P = InStr(Trim(Target), " " )
  11.             P = IIf(Me.AutoFilter.Filters(Target.Column - 1).On Or P = 0, Len(Target), P - 1)
  12.             Target.AutoFilter Target.Column - 1, Left(Target, P) & "*"
  13.         End If
  14.         ActiveWindow.ScrollRow = 2
  15.     End If
  16.     ThisWorkbook.Saved = Etat
  17. End Sub


          Quelques explications :
 

  • Ligne n°3           :   s'il n'y a pas de filtre, ils sont automatiquement créés sur les colonnes B à D.
  • Ligne n°5           :   seul est géré le double clic pour une cellule non vide de ces colonnes.
  • Ligne n°8 & 9     :   si le double clic est dans la première ligne (celles des titres des colonnes) alors le filtrage est annulé.
  • Ligne n°13 à 15  :   filtre la colonne vis à vis de la cellule double cliquée en fonction du premier mot puis de l'intégralité de la cellule …


         Aide pour une instruction particulière :   positionner le curseur dessus puis appuyer sur la touchehttp://www.developpez.net/forums/images/smilies/f1.gif!


Message édité par Marc L le 17-05-2013 à 01:13:22
n°2190445
rhj94
Posté le 16-05-2013 à 14:49:45  profilanswer
 

Merci pour ta réponse.  
 
En fait je souhaiterai reprendre la même forme que la première formule que j'ai posté, mais en ayant la possibilité de rajouter une deuxième liste déroulante.
 
Malheureusement je ne comprends pas grand chose au langage VBA.
 
Merci en tout cas d'avoir pris le temps de me répondre ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Liste déroulante & Autofilter VBA

 

Sujets relatifs
Code VBA pour coller un tableau excel dans corps de mail OutlookRecupérer les infos des éléments d'une liste déroulante multichoix
Recupérer les infos des éléments d'une liste déroulante multichoixIdentification et codage VBA
Vba import csv to xls[Excel/VBA] MàJ Données Graphique
Trier une liste de cellules[VBA] comparaison de 2 fichiers excel
Plus de sujets relatifs à : Liste déroulante & Autofilter VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR