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 :

Remplir ComboBox avec tableau filtré: erreur 381.


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut Remplir ComboBox avec tableau filtré: erreur 381.
    Bonjour à tous,

    J'ai écrit une code, qui fonctionne, pour alimenter une ComboBox depuis un tableau filtré. Seul problème, c'est quand, après avoir été filtré, le tableau ne contient plus qu'une seule ligne... En effet, à ce moment, le reçois le message d'erreur suivant:

    " Erreur d'exécution 381 : Impossible de définir la propriété List .Index de table de propriétés non valide."

    Voici mon code:

    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
    21
    22
    23
    24
    25
    Public Sub AlimenterComboBox() 'Permet d'alimenter une ComboBox sur base des critères de tri envoyés à la fonction.
     
     
        Dim Domaine As String, Niveau As String
     
        Domaine = ComboBoxDomaineDeCompetence.Text 'Définition des critères de tri
        Niveau = ComboBoxNiveau.Text
     
     
        With Sheets("Critères").ListObjects("TableauCriteres")
     
        .Range.AutoFilter Field:=2, Criteria1:=Domaine  'Trie TableauCriteres selon les paramètres envoyés en argument
        .Range.AutoFilter Field:=3, Criteria1:=Niveau
     
    End With
     
    '####### Remplissage ComboBox avec les données triées ####
     
    Me.ComboBoxCriteresAlimentes.List = Range("TableauCriteres[Critères]").SpecialCells(xlCellTypeVisible).Formula
     
     
    Sheets("Critères").ListObjects("TableauCriteres").Range.AutoFilter Field:=2 'Annule le filtrage
    Sheets("Critères").ListObjects("TableauCriteres").Range.AutoFilter Field:=3
     
    End Sub
    Les deux critères de tri sont défini par l'utilisateur via deux autres ComcoBox. Le tableau duquel est issu le résultat du tri est "TableauCriteres" Sur la feuille "Critères".



    En vous remerciant d'avance !

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    (re) Bonjour,

    qu'on met jette des tomates, je n'ai jamais utilisé les tableaux Excel

    en revanche, je suis souvent confronté à un problème similaire avec mes autofilters : quand le jeu de filtres appliqué ne renvoie aucun résultat

    il faut faire un test juste après avoir appliqué tes Autofilters pour vérifier s'il y a des résultats ou pas

    en général, on a deux méthodes :

    - compter le nombre de cellules (ou lignes) qui sont visibles
    - récupérer l'adresse de la plage visibles (incluant ta ligne de titres) : si l'adresse est strictement égale à tes titres, alors il n'y a rien

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut Re
    Re Bonjour de fait :p


    C'est bien la solution que je commençais à soupçonner.

    Par contre, je ne vois pas trop comment procéder puisque techniquement c'est déjà ce que je fais dans mon bout de code ... Je n'ajoute que celles qui sont visible.

    Ma base de données, d'où est alimenté mon ComboBox, est "bien" construite... Dans le sens où il y a toujours au moins 1 ligne au tableau pour toute combinaison de filtre. Mais c'est le au moins 1 qui gène puisque mon code ne bug que quand il y en a une seule.

    Donc quelle code dois-je utiliser pour vérifier le nombre de ligne résultant de l'opération de filtration ?


    Bien à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/12/2007, 19h06
  2. Remplir Combobox avec plage
    Par Petit Ecolier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/08/2007, 16h25
  3. [C#] Remplir combobox avec un enum
    Par AlexandreP dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/12/2006, 14h47
  4. [C#][1.1]Remplir Combobox avec sqlDataReader
    Par Monstros Velu dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/08/2006, 17h04
  5. [VBA-E]Remplir combobox avec contenu d'une feuille Excel
    Par Deejoh dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2006, 16h16

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