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 :

Boucle vba pour classer des critères


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2013
    Messages : 64
    Par défaut Boucle vba pour classer des critères
    Bonjour,
    Je bloque sur un problème (assez simple je pense...) de tri de critères :
    Une colonne Type, avec 4 critères sélectionnables. L'utilisateur peut choisir d'afficher un ou plusieurs de ces critères.
    J'utilise un filtre élaboré pour la suite de ma macro et par conséquent je ne dois pas avoir de cases vides entre 2 critères, sauf que je n'arrive pas à coder cette partie.
    Le fichier excel en pj sera plus clair.

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi n'affiche-tu pas une image de ta feuille contenant tes critères en expliquant ce que tu souhaites obtenir ?
    Un forum a pour but de partager des questions et réponses que chacun peut lire depuis ce site. Proposer d'emblée un classeur à télécharger coupe tout partage et est assimilé pour moi à un aparté.
    De plus tu te coupes de réponses potentiellement intéressantes des personnes qui ne télécharge jamais les classeurs proposés dès l'ouverture d'une discussion.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2013
    Messages : 64
    Par défaut
    Le programme que j'utilise est utilisé en interne et est contient pas mal de données confidentielles, raison pour laquelle je ne peux pas me permettre de le diffuser librement sur un forum...Sinon effectivement cela aurait été plus simple pour moi et pour vous.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mais place l'image de la feuille que tu proposes en téléchargement.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2013
    Messages : 64
    Par défaut
    De ce style ?
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Plutôt comme ça je pense

    Nom : Capture.JPG
Affichages : 230
Taille : 63,3 Ko

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Nicolas a très bien compris
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2013
    Messages : 64
    Par défaut
    Bon merci à toi Nicolas, autant pour moi.
    Mais je ne vois pas l'interêt de l'image, ça me semble plus facile à travailler sur excel, bref.
    Du coup vous auriez une idée de code pour résoudre le pb ?

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu dis utiliser le filtre élaboré. Dans un filtre élaboré, il y a au moins deux zones, la zone des critères et la zone des données.
    L'image correspond je suppose à la zone des données ?
    Que faut-il dans la zone des critères et qu'attends-tu exactement puisque tu parles de boucles dans cette demande ?
    Une colonne Type, avec 4 critères sélectionnables. L'utilisateur peut choisir d'afficher un ou plusieurs de ces critères.
    Comment vois-tu le choix de l'utilisateur ?

    Alors je vais déjà essayer de deviner ce que tu attends.
    Comme expliqué plus haut, le filtre avancé ou élaboré d'excel est basé sur au moins deux zones, la zone des données et la zone des critères.
    Dans le cas qui nous occupe je vois deux possibilités pour gérer cette zone des critères que nous appellerons areaCriteria qui aurait plusieurs choix portés sur les types (1, 2, 3, 4, etc.)
    Si le nombre de cas possibles est limité, je créerais des plages nommées par exemple Cas_1, Cas_2, etc. Avec une portabilité limitée à la feuille (pour l'exemple [ParamFiltre])
    Avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub CreateAreaCriteria_1()
     Dim areaCriteria As Range
     Set areaCriteria = ThisWorkbook.Worksheets("ParamFiltre").Range("cas_1")
    End Sub
    Une autre possibilité est de nommer une plage de deux colonnes avec en colonne 1 les critères et en colonne 2, la valeur booléenne VRAI ou FAUX où une procédure remplira la liste de la plage areaCriteria si la valeur est VRAI
    Avec ce 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
    Sub CreateAreaCriteria_2()
     Dim rngCriteriaList As Range, areaCriteria As Range, r As Long, Count As Integer
     With ThisWorkbook.Worksheets("ParamFiltre")
      Set rngCriteriaList = .Range("CriteriaList")
      Set areaCriteria = .Range("A1")
     End With
     With rngCriteriaList
      For r = 1 To .Rows.Count
       If .Cells(r, 2) Then Count = Count + 1: areaCriteria.Offset(Count) = .Cells(r, 1)
      Next
     End With
     Set areaCriteria = areaCriteria.Resize(Count + 1)
     Debug.Print areaCriteria.Address
    End Sub
    D'autres possibilités existent comme par exemple les critères calculés
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  10. #10
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Citation Envoyé par RomBon Voir le message
    Mais je ne vois pas l'interêt de l'image, ça me semble plus facile à travailler sur excel, bref.
    Citation Envoyé par Philippe Tulliez
    Un forum a pour but de partager des questions et réponses que chacun peut lire depuis ce site. Proposer d'emblée un classeur à télécharger coupe tout partage et est assimilé pour moi à un aparté.
    De plus tu te coupes de réponses potentiellement intéressantes des personnes qui ne télécharge jamais les classeurs proposés dès l'ouverture d'une discussion.





    Je suis désolé, je ne suis pas aussi devin que Philippe Tulliez, sur quelle colonne ne doit tu pas avoir de case vide ? La colonne ou se trouve les types (Colonne A sur l'image) ?
    Si case vide il y a, que veux tu faire ? Supprimer la ligne ? La remplir avec un type par défaut ?

  11. #11
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2013
    Messages : 64
    Par défaut
    Je crée ma plage de critères après avoirfait le tri, merci je pense essayer la 1ere solution qui parait effectivement plus appropriée.

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En utilisant le principe des plages nommées Cas_1, Cas_2, tu peux aussi utiliser un questionnaire destiné à l'utilisateur et qui serait basé sur la fonction native d'Excel INDIRECT.
    Un exemple se trouve dans le classeur téléchargeable qui accompagne le tutoriel Les filtres avancés ou élaborés dans Excel et expliqué dans le chapitre XIII. Sky is the limit
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [XL-2007] Boucle VBA pour lire des éléments d'une chaine de caractères SQL
    Par Sosthy10 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/07/2015, 10h59
  2. [XL-2002] Code VBA pour colorier des cellules à partir de plusieurs critères
    Par NoodleDS dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2013, 22h05
  3. [Project]boucle vba pour des page microsot office project
    Par nb_fr31 dans le forum Général VBA
    Réponses: 2
    Dernier message: 19/10/2007, 12h28
  4. Réponses: 3
    Dernier message: 17/08/2007, 17h48
  5. Réponses: 2
    Dernier message: 29/08/2006, 13h59

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