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 :

Faire apparaître/disparaître plages de cellule sous condition [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Faire apparaître/disparaître plages de cellule sous condition
    Bonjour,

    Je me tourne vers le forum après de multiples recherches infructueuses et un niveau VBA de novice.


    Je cherche à créer une macro afin de faire apparaitre/disparaitre une série de cellule selon un critère:

    Dans le fichier joint, la feuille 1 nommée "SETUP" donne une série de tâches. Sur cette feuille, l'utilisateur est en capacité de spécifier si la tâche est applicable ou non (Colonne G). Si la tâche est applicable alors le nom de la catégorie (Ex: "Human Ressources") s'affiche en colonne B de la Feuille 2 pour la tâche correspondante, si la tâche est non applicable, "N/A" s'affiche au même endroit.

    Je souhaite, grâce au bouton ( positionné colonne F, feuille 2), afficher ou masquer (bouton en vas-et-viens) les tâches correspondantes à une sous catégorie, mais seulement celles qui ont été définies comme "applicables".

    J'ai du coup besoin d'une macro qui viendrais chercher dans la colonne E de la feuille 2 le mot "Human RessourcesTaskStaff Hiring" et qui afficherait les lignes correspondantes.

    Je souhaite aussi que le fichier sois en capacité de me faire disparaitre ces mêmes lignes lorsque je reclique sur le bouton.

    TEST EXCEL 2.xlsm

    Voici le code que je suis arriver à confectionner mais qui ne fonctionne pas:


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Sub DUPSTAFFHIRING()
    '
    ' DUPSTAFFHIRING Macro
    '
    Dim PlageSource As Range, PlageCible As Range, R As Range
     
    Dim L As Long
     
        'On cible toutes les cellules contenant une expression (constante) en colonne "B"
     
        Set PlageSource = Sheets("DEPARTMENTAL TASK LISTS").Columns(5).SpecialCells(xlCellTypeConstants, 2)
     
        'Pour chaque cellule visée
     
        For Each R In PlageSource
     
            'Contient-elle l'expression recherchée ?
     
            If R.Value Like "Human RessourcesTaskStaff Hiring" Then
     
                'Si oui, on stocke sa référence dans un objet range "PlageCible"
     
                If PlageCible Is Nothing Then
     
                    Set PlageCible = R
     
                Else
     
                    Set PlageCible = Union(PlageCible, R)
     
                End If
     
            End If
     
        Next R
     
     
        If Not PlageCible Is Nothing Then
     
            PlageCible.EntireRow.Hidden = True
     
     
        End If
     
    End Sub
    Je vous remercie mille fois pour votre aide ;

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par tom12345 Voir le message
    Je souhaite, grâce au bouton ( positionné colonne F, feuille 2), afficher ou masquer (bouton en vas-et-viens) les tâches correspondantes à une sous catégorie, mais seulement celles qui ont été définies comme "applicables".
    Pas besoin de VBA pour ça, un filtre le fait très bien.
    Il faut 10 s pour le mettre en place (rubant Données > Filtrer) et on peut afficher/masquer les lignes souhaitées en deux clics.

    Pièce jointe 358467
    https://www.developpez.net/forums/d8...s-discussions/

    Voici le code que je suis arriver à confectionner mais qui ne fonctionne pas:
    "Ne fonctionne pas", c'est un peu limité comme description de problème. En plus, un code copié ainsi sans bornes CODE et sans itération, c'est vraiment désagréable à lire.
    Qu'est-ce qui ne fonctionne pas dans ce code ? Bug (quel message) ? Ne fait pas ce que tu souhaites ?
    Puisque les données que tu veux trier sont issues d'une formule, pourquoi avoir limité la plage à xlCellTypeConstants ?
    Pourquoi ne pas avoir maqué les lignes au fil de la boucle plutôt que de faire une Union ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci pour votre réponse rapide.

    Le problème pourrait être relativement simple si toutes les lignes était à afficher en effet.

    Cependant, je souhaite n'afficher que les lignes correspondant à un critère particulier (dans le cas précis toute celles qui sont "applicable").

    Exemple: Je vais avoir des lignes de tâches de la ligne 15 à 26 (par exemple comme dans le fichier joint), mais peut etre seulement 4 de ce lignes rempliront le critères "applicable" afficher dans une autre colonne et devront être afficher (dans le fichier joint le critère étant dans la colonne E).

    Pour le code, j'ai bricoler un code depuis mes recherches sur le net avec des demandes relativement similaire. Je pensais avoir adapter le code à mon classeur seulement lorsque j'affecte la macro à un boutton rien de se passe. Il n'y à pas de disparition/Apparition des lignes correspondante.

    Mille mercis pour votre aide

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour
    je réhitere la remarque de menhir autofilter pour ton mot recherché + "applicable"

    autofilter a 2 arguments de filtrage parametrable les "fields"
    l'enregistreur de macro te donnerait une base de code quasi tout pret sur un plateau
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour Patrick,

    Merci pour ce retour,

    L'enregistrement manuel pourrait être une solution. Cependant, voilà une condition à prendre en compte: J'ai plusieurs catégories et sous catégories sur une même feuille.

    Cela signifie que je dois créer plusieurs boutons pour chaque catégorie (Ex: Catégorie A de ligne 12 à 25; Catégorie B de 18 à 32).

    Je souhaite que l'apparition et la disparation des lignes fonctionnent indépendamment d'une catégorie à l'autre. Si j'utilise la fonction filtre pour faire apparaître les lignes "applicable" de la catégorie A, cela risque de me faire apparaître les lignes correspondante aussi pour les catégories B, C, etc...

    Comment remédier à cette contrainte afin que l'apparition des lignes selon critères fonctionnent de manière complètement indépendante d'une section à l'autre?

    Merci pour vos réponses et votre aide

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par tom12345 Voir le message
    Le problème pourrait être relativement simple si toutes les lignes était à afficher en effet.
    Le problème pourrait être aussi plus simple si tu prenais la peine de répondre aux questions posées.

    (par exemple comme dans le fichier joint)
    Bis : https://www.developpez.net/forums/d8...s-discussions/

    Exemple: Je vais avoir des lignes de tâches de la ligne 15 à 26, mais peut etre seulement 4 de ce lignes rempliront le critères "applicable" afficher dans une autre colonne et devront être afficher (dans le fichier joint le critère étant dans la colonne E).
    C'est exactement ce que fait un filtre

    Je pensais avoir adapter le code à mon classeur seulement lorsque j'affecte la macro à un boutton rien de se passe. Il n'y à pas de disparition/Apparition des lignes correspondante.
    As-tu essayé de faire tourner ta macro en pas-à-pas pour voir ce qui se passe ?

    Citation Envoyé par tom12345 Voir le message
    L'enregistrement manuel pourrait être une solution. Cependant, voilà une condition à prendre en compte: J'ai plusieurs catégories et sous catégories sur une même feuille.
    Je ne vois pas en quoi c'est incompatible avec un filtre.

    Cela signifie que je dois créer plusieurs boutons pour chaque catégorie (Ex: Catégorie A de ligne 12 à 25; Catégorie B de 18 à 32).
    Il suffit de mettre cette catégorie dans une colonne et le filtre pourra n'afficher que cette catégorie.

    Je souhaite que l'apparition et la disparation des lignes fonctionnent indépendamment d'une catégorie à l'autre. Si j'utilise la fonction filtre pour faire apparaître les lignes "applicable" de la catégorie A, cela risque de me faire apparaître les lignes correspondante aussi pour les catégories B, C, etc...
    Non, un filtre peut très bien faire apparaitre que la catégorie A et ensuite, dans les lignes qui restent ne faire apparaitre que "applicable".

    Comment remédier à cette contrainte afin que l'apparition des lignes selon critères fonctionnent de manière complètement indépendante d'une section à l'autre?
    La solution est simple : apprends ce qu'est un filtre et comment il fonctionne.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. Faire clignoter cellules sous condition
    Par target111 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/04/2013, 00h07
  2. [XL-2003] faire Clignoter une cellule sous condition
    Par LaPanic dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/06/2009, 18h49
  3. macro vba identifier cellule sous condition
    Par yanacrux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/03/2009, 14h00
  4. colorer des cellules sous conditions
    Par coenonympha dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/07/2008, 13h54
  5. Faire apparaître les entêtes d'un sous-état
    Par Le Pharaon dans le forum IHM
    Réponses: 3
    Dernier message: 10/07/2007, 12h52

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