IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Listbox pour séléctionner des critères à filtrer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par défaut Listbox pour séléctionner des critères à filtrer
    Bonjour à toutes et à tous,

    Je me permets de poster cette demande afin de trouver une aide à mon ignorance sur le sujet :-)
    J'ai un bout de code VBA que je souhaiterai améliorer en insérant une listbox qui proposerait de sélectionner les critères au lieu de les indiquer bêtement dans le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveSheet.Range("$B$2:$Q$5000").AutoFilter Field:=6, Criteria1:=Array( _
            "1", "2", "3"), Operator:=xlFilterValues
            ActiveSheet.Rows("3:5000").SpecialCells(xlCellTypeVisible).Delete
            ActiveSheet.ShowAllData
    Ce code est aujourd'hui inséré au centre d'une macro beaucoup plus longue.

    Espérant trouver ici votre aide précieuse.
    Bien cordialement,

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Sur l'exemple ci dessous,on affiche une ListBox mobile qui permet de choisir les items pour 3 colonnes (C,E,F).

    Nom : Sans titre.png
Affichages : 243
Taille : 29,8 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub ListBox1_Change()
      If témoin Then Exit Sub
      Dim b()
      n = 0
      For i = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(i) Then
          n = n + 1: ReDim Preserve b(1 To n): b(n) = Me.ListBox1.List(i)
        End If
      Next i
      col = ActiveCell.Column
      If n > 0 Then
        ActiveSheet.Range("$A$9:$G$1000").AutoFilter Field:=col, Criteria1:=b, Operator:=xlFilterValues
      Else
       ActiveSheet.Range("$A$9:$G$1000").AutoFilter Field:=col
      End If
      Calculate
    End Sub

    Boisgontier
    Fichiers attachés Fichiers attachés

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par défaut
    Bonjour,

    Merci pour votre réponse mais je crois que j'ai mal exprimé ma demande initiale.
    En gros je cherche à créer une boîte de dialogue (peut être une msgbox du coup ?) lors de l'ouverture d'un fichier "X" qui me permettrai de choisir les différents critères (situés dans une même colonne) pour les filtrer par la suite et ainsi poursuivre le fil du code précédent.

    Merci toutefois pour votre proposition.
    Bien cordialement,

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub UserForm_Initialize()
      Me.ListBox1.List = Array("1", "2", "3")
      B_tout_Click
    End Sub
     
    Private Sub ListBox1_Change()
       Dim Tbl()
       For i = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(i) = True Then
           n = n + 1: ReDim Preserve Tbl(1 To n)
           Tbl(n) = Me.ListBox1.List(i)
        End If
       Next i
       If n > 0 Then
         Sheets("bd").[A1].AutoFilter Field:=6, Criteria1:=Tbl, Operator:=xlFilterValues
            'ActiveSheet.Rows("3:5000").SpecialCells(xlCellTypeVisible).Delete
            'ActiveSheet.ShowAllData
       Else   
         Sheets("bd").[A1].AutoFilter
       End If
    Nom : Sans titre.png
Affichages : 231
Taille : 3,0 Ko


    Boisgontier
    Fichiers attachés Fichiers attachés

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par défaut
    Bonjour,

    Merci d'avoir pris le temps de répondre à ma question.
    Cependant je ne vois pas du tout comment intégrer votre code dans ma macro.

    Ma macro réalise les tâches suivantes :

    J'ai 2 fichiers X & Y
    J'initialise depuis X l'ouverture de Y
    C'est à ce moment là que je souhaiterai modifier mes 3 lignes de codes pour qu'à son ouverture on propose à l'utilisateur de sélectionner les critères.
    Suite à cette sélection le code doit supprimer ces lignes filtrées puis défiltrer les lignes restantes.

    Suite à cela je copie les données de Y vers X.

    J'espère que ces explications permettront de mieux interpréter ma question.
    Remerciant d'avance toutes personnes souhaitant m'apporter son aide.

    Bien cordialement,

Discussions similaires

  1. ListBox pour ouvrir des onglets
    Par persjussysylvain dans le forum Excel
    Réponses: 5
    Dernier message: 19/10/2018, 23h40
  2. [XL-2007] Fenêtre dynamique pour rentrer des critères d'analyse
    Par MobyKDIK dans le forum Excel
    Réponses: 12
    Dernier message: 27/07/2015, 15h10
  3. [XL-2010] Boucle vba pour classer des critères
    Par RomBon dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/08/2014, 09h33
  4. [XL-2007] CheckBox ou Listbox pour sélectionner des critères et les afficher dans une autre feuille
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 19/08/2009, 15h19
  5. Réponses: 2
    Dernier message: 26/07/2006, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo