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 :

selection combobox pour affichage listbox, Inventaire :)


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Fraiseur CNC, dessinateur DAO, graphiste
    Inscrit en
    Juillet 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Fraiseur CNC, dessinateur DAO, graphiste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 19
    Points : 15
    Points
    15
    Par défaut selection combobox pour affichage listbox, Inventaire :)
    Bonjour bonjour,
    Je n'ai aucune idée de comment faire et suis débutant
    alors voila j'ai une listbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Initialize()
     
      With Me.inventaire_liste
      .ColumnCount = 11
      .ColumnWidths = "55 pt;180 pt;120 pt;0 pt;0 pt;35 pt;40 pt;49,95 pt"
      .ColumnHeads = True
      .RowSource = "Inventaire!A2:K1048576"
    End With
    End Sub
    Il y a aussi une listbox qui contient (Tout, En stock, Bientôt épuisé, A commander)
    Et j'aimerai que quand celle-ci est mise sur Tout la listbox affiche tout, mais quand on sélectionne un autre statut ca n'affiche que les lignes dans la liste dont colonne K de ma feuille Inventaire contient les autres info de la combobox.

    Merci d'avance

  2. #2
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Tu peux utiliser les filtres automatiques dans ta base de donnée.
    Quand tu choisis un élément dans ta cbox, si cet élément <> Tout :
    1. Appliquer un filtre à ta BDD en colonne K --> AutoFilter
    2. Créer une feuille que l'on nommera tempSht
    3. Copier la BDD avec filtre
    4. Coller dans tempSht
    5. Alimenter ta listbox avec les données de tempSht
    6. Supprimer tempSht
    7. Enlever le filtre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub cbox_change()
        Dim tempSht As Worksheet, Dim derLig As Long
        '1. Si Listbox <> "Tout" appliquer le filtre --> AutoFilter
        '2. Nouvelle feuille
        Set tempSht = Sheets.Add
        '3. Copier-coller données de la BDD vers tempSht --> méthode Copy
        '4. Alimenter la listbox
        derLig = tempSht = Range("A" & Rows.Count).End(xlUp).Row
        listbox.List() = tempSht.Range("A1:K" & derLig).Value
        '5. Supprimer feuille temporaire --> utiliser Application.DisplayAlerts = False pour éviter les messages d'alertes
        '6. Enelever le filtre --> AutoFilter sans critère.
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Fraiseur CNC, dessinateur DAO, graphiste
    Inscrit en
    Juillet 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Fraiseur CNC, dessinateur DAO, graphiste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Déja merci de prendre le temps de me répondre,
    Je ne comprend pas trop ou je dois mettre le code (dans ma combobox?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ComboBox1_change()
    Dim tempSht As Worksheet, Dim derLig As Long
        '1. Si Listbox <> "Tout" appliquer le filtre --> AutoFilter
        '2. Nouvelle feuille
        Set tempSht = Inventaire.Add
        '3. Copier-coller données de la BDD vers tempSht --> méthode Copy
        '4. Alimenter la listbox
        derLig = tempSht = Range("A" & Rows.Count).End(xlUp).Row
        inventaire_liste.List() = tempSht.Range("A1:K" & derLig).Value
        '5. Supprimer feuille temporaire --> utiliser Application.DisplayAlerts = False pour éviter les messages d'alertes
        '6. Enelever le filtre --> AutoFilter sans critère.
     
    End Sub
    et quand j'essai ca, il me met une erreur de syntaxe donc je me plante mais je comprend pas bien

  4. #4
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Attention, je ne t'ai pas donné le code, mais une trame du code ! Il faut compléter
    Par contre, c'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set tempSht = Sheets.Add
    et pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set tempSht = Inventaire.Add

    On ajoute une feuille à l'ensemble des feuilles.
    Et enfin, j'ai fait une erreur de frappe, c'est bien entendu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derLig = tempSht.Range("A" & Rows.Count).End(xlUp).Row
    Est-ce que tu comprends le principe du code ? Parce que c'est surtout cela qui est important. Une fois que tu comprends ce que je veux te faire faire, il n'y a plus qu'à.

    Je ne comprend pas trop ou je dois mettre le code
    Tu veux que le code se déclenche au moment où tu changes la valeur de la cbox, non? Donc tu le mets dans l'évènement change de la combobox concernée.

Discussions similaires

  1. Criteres de selection multiple pour affichage TB
    Par Bichon Taigama dans le forum Excel
    Réponses: 0
    Dernier message: 14/03/2015, 07h26
  2. selection combobox et affichage textbox
    Par arzew dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/06/2012, 13h49
  3. [Débutant] Select Case pour un Textbox et un combobox
    Par Gigli dans le forum VB.NET
    Réponses: 2
    Dernier message: 31/01/2012, 09h19
  4. AIDE pour lier un combobox avec le listbox a l'aide d'un bouton
    Par dricks dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/07/2007, 14h42
  5. Réponses: 10
    Dernier message: 13/02/2006, 15h29

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