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 :

VBA: Autofilter et Rowsource


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Par défaut VBA: Autofilter et Rowsource
    Bonjour à tous!!!
    Je rencontre un souci avec un programme VBA:
    ainsi dans un userform je voudrais qu'une liste déroulante ne fasse apparaitre des données que si un critère est rempli; j'ai donc tapé le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If ListeDeroulanteCategorie.Value = "Voiture" Then
               Sheets("Voiture").Select
               Range("A2").Select
      'selectionne la dernière rangée du tableau
               Selection.End(xlDown).Select
      'filtre sur la 11 ème colonne avec comme critère la valeur "OUI"
               Selection.AutoFilter Field:=11, Criteria1:="OUI"
               ListeMaterielDisponible.RowSource = "Voiture!A2:A250"
    Seulement voila la liste déroulante "ListeMaterielDisponible" ne m'affiche pas que la séléction mais m'affiche toute la colonne A sans tenir compte du filtre
    Si quelqu'un a une idée j'en serais extrêmement reconnaissante de bien vouloir m'aider

    Bien cordialement,

    Julie

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    bonjour

    à essayer, pas certain que cela fonctionne !

    un combo partiel, je prefer le gerer que d'utilise le rowsource

    en debut de macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim Cel as range, plage as range
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If ListeDeroulanteCategorie.Value = "Voiture" Then
               Sheets("Voiture").Select
               Range("A2").Select
      'selectionne la dernière rangée du tableau
               Selection.End(xlDown).Select
      'filtre sur la 11 ème colonne avec comme critère la valeur "OUI"
               Selection.AutoFilter Field:=11, Criteria1:="OUI"
               ListeMaterielDisponible.clear
               set plage = Range("A2:A250").SpecialCells(xlCellTypeVisible)
               for each cel in plage
                    listematerieldisponible.additem cel.value
               next

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Par défaut ça marche!!!
    Bonjour Wilfried

    Je n'ai malheureusement pas bien compris le language utilisé mais cela fonctionne correctement
    en vous remerciant très sincèrement
    Bien cordialement
    Julie

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    et sans passer par un filtre :
    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
     
    'après avoir enlever les filtres si inutiles
    If ListeDeroulanteCategorie.Value = "Voiture" Then
       With Sheets("Voiture")
          .Select
          l = .Range("a" & .Rows.Count).End(xlUp).Row
          listematerieldisponible.Clear
          Set Plage = .Range("A2:A" & l)
          For Each cell In Plage
             If cell.Offset(0, 10) = "OUI" Then
                    listematerieldisponible.AddItem cell.Value
             End If
          Next
       End With
    End If
    a essayer

    bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. VBA autofilter sur plus de 20 valeurs
    Par toto92 dans le forum Excel
    Réponses: 1
    Dernier message: 02/06/2014, 09h27
  2. [VBA-Excel] Propiété RowSource d'une ListBox
    Par padre03 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/09/2006, 18h05
  3. [VBA-E]ComboBox + RowSource ne concerne que les lignes ?
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/04/2006, 14h29
  4. [VBA-E] erreur avec listbox.rowsource
    Par repié dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/02/2006, 10h55
  5. [VBA-E]Autofilter et Excel
    Par gamin dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 19/01/2006, 14h02

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