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 :

Erreur sur filtre de TCD avec valeur d'une listbox


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Erreur sur filtre de TCD avec valeur d'une listbox
    Bonjour,

    Pour mon travail, je dois réaliser une interface simple de présentation de donnée.
    J'ai une feuille ("TCD Magasin") contenant un TCD ("TCD") avec un champ de rapport "Numero Job", qui me permet de filtrer après avoir selectionner le job et le valider avec "Optionbutton1" (si vous pourriez m'indiquer comment m'en débarrasser, je suis preneur).
    J'ai créer une listbox avec la liste de tous ces numéros de job, dans la listbox6.
    Mais je n'arrive pas à lier les deux. Après moult recherches, j'ai une erreur que je ne comprends pas "Application-defined or object-defined error" pour la ligne 6.
    Pouvez-vous m'aider?
    J'ai essayer avec une combobox mais je n'y arrive pas non plus.

    Code pour le choix du numéro de Job
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
     
    Sheets("TCD Magasin").Activate
    With ActiveSheet
    .PivotTables("TCD").PivotFields("Numero Job").ClearAllFilters
    .PivotTables("TCD").PivotFields("Numero Job").PivotFilters.Add _
    Type:=xlCaptionEquals, Value1:="userform1.listbox6.Value"
    End With
     
    End Sub

    Macro listbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Macro pour créer la listbox
    UserForm1.ListBox6.ColumnHeads = False
    UserForm1.ListBox6.RowSource = Worksheets("Table Machine").Range(Cells(5, 5), Cells(Range("c:c").End(xlDown).Row, 3)).Address

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour

    Quelle version d'Excel utilises-tu ?

    A partir de 2010 il est plus simple et efficace de filtrer avec un segment, lié ou non à VBA.

    PS : modifie le titre de ton fil car ce n'est pas un tri mais un filtre.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Bonjour78Chris,

    J'utilise la version Excel 2010.
    J'ai oublié de préciser que la sélection se fait à partir d'un formulaire, sur lequel j'affiche d'autres informations, en lien avec le job selectionné dans la listbox.
    D'ou l'interêt de commander le filtre du TCD directement à partir du formulaire. Pour ne faire la manipulation qu'une seule fois.
    Effectivement j'ai aperçu des solutions avec les segments mais ne les ayants jamais utilisés ou vu en formation, je ne sais pas m'en servir.
    Néanmoins, je suis preneur pour une solution les utilisant, si celà est plus facile.


    PS: Titre modifié.

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    RE

    Déjà remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Value1:="userform1.listbox6.Value"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Value1:=userform1.listbox6
    les guillemets posant problème
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Ca, c'est fait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
     
    Sheets("TCD Magasin").Activate
    With ActiveSheet
    .PivotTables("TCD").PivotFields("Numero Job").ClearAllFilters
    .PivotTables("TCD").PivotFields("Numero Job").PivotFilters.Add _
    Type:=xlCaptionEquals, Value1:=UserForm1.ListBox6
    End With
     
    End Sub
    Le même message d'erreur apparait sur la ligne 6/7.

    Et ensuite, s'il te plaît?

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Re

    As-tu vérifié en mode debug à quoi est égal UserForm1.ListBox6 ?

    Le type de données est-il bien le même ?
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Chris78,

    La valeur de la ListBox6 correspond bien à un des champs du TDC
    Nom : value Listbox6.jpg
Affichages : 368
Taille : 26,4 Ko

    Nom : value TCD.jpg
Affichages : 350
Taille : 16,8 Ko

    Quand penses-tu?
    Images attachées Images attachées  

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour

    Je ne suis pas spécialiste du mélange userform-TCD mais d'après mes tests, si le Userform reste chargé, le clearfilter relance le code du userform et la suite plante.

    Si j'unload le userform pas de problème...

    Edit : en fait j'avais testé le code directement sur le choix dans la listbox mais si on l'associe à un bouton, ceci marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    Dim valeur as string
     
    Valeur = Me.ListBox6.Value 'zone de texte du userform
    With Sheets("TCD Magasin").PivotTables("TCD").PivotFields("Numero Job")
       .ClearAllFilters
       .PivotFilters.Add Type:=xlCaptionEquals, Value1:=Valeur
    End With
    Unload Me
    End Sub
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Chris78,

    Celà ne fonctionne qu'à moitié.
    Le filtre du TCD est bien remis à 0, mais la selection ne se fait toujours pas.
    Voici la ligne problématique:
    Nom : bug Listbox6.jpg
Affichages : 341
Taille : 20,4 Ko
    et toujours le même message
    Nom : error listbox6.jpg
Affichages : 357
Taille : 23,5 Ko

  10. #10
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Re

    Ton champ est bien en étiquette ?

    Pourrais-tu poster un court extrait car j'ai testé sur un TCD et cela marche...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

Discussions similaires

  1. erreur sur l'information recuperee avec un socket AF_UNIX
    Par ManusDei dans le forum Débuter
    Réponses: 5
    Dernier message: 06/01/2012, 14h20
  2. Erreurs sur procédure PL/SQL avec fonction case
    Par Djene dans le forum PL/SQL
    Réponses: 2
    Dernier message: 07/10/2011, 17h19
  3. Lien sur un script php avec envoi d'une valeur
    Par Invité(e) dans le forum Langage
    Réponses: 14
    Dernier message: 21/01/2010, 11h18
  4. erreur sur dans Qt source avec C++ sous linux
    Par chochatown dans le forum Qt
    Réponses: 2
    Dernier message: 28/05/2009, 19h35
  5. Erreur sur inclusion types.h avec cygwin
    Par Bayard dans le forum Réseau
    Réponses: 12
    Dernier message: 12/11/2006, 16h48

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