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 :

Code VBA pour Afficher les détails d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Par défaut Code VBA pour Afficher les détails d'une cellule
    Bonjour à la communauté

    Dans mon fichier, j'utilise le groupement des colonnes (Données/Grouper et créer un plan/Grouper...).

    L'utilisateur doit pouvoir lancer une macro pour aller directement à la colonne correspondant à son critère et pouvoir afficher les colonnes groupées.

    J'ai le début de la macro, mais je bugue sur le code VBA pour afficher le détail de la zone qui contient un groupement (le but est de trouver la macro qui clique sur le signe + tout en haut de la seule colonne concernée et le signe + à l'extrême gauche de la seule ligne concernée dans une feuille qui contient des données groupées

    Je vous remercie pour votre aide

    Voici le début de ma macro. Je voudrais que l'utilisateur puisse voir la colonne 27 (qui est groupée avec la colonne 28)

    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 AfficherAE()
     
        Sheets("Organisation").Select
        Range("A3").Select
            ActiveSheet.ListObjects("Tbl_ListingO").Range.AutoFilter Field:=28, Criteria1:= _
            "France Account Executives"
     
    'Revenir colonne 1
            ActiveWindow.ScrollColumn = 28
     
     'Revenir ligne 2
            ActiveWindow.ScrollRow = 2
     
    End Sub

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    Personnellement je n'ai pas compris la demande
    je crois que ce n'est pas difficile de cliquer chaque fois sur le + et sur le - pour automatiser cette tache !!!
    En général tu peux démarrer l'enregistreur automatique du macro, faire la tache manuellement , arrêter l'enregistrement et tu aura un code
    tu peux associer ce code à un événement : double clic par exemple
    Si ma réponse ne t'aide pas à avancer dans ton projet je recommander d'expliquer davantage ce que tu cherches à faire avec un capture écran

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 244
    Par défaut
    hello,
    dans le cas où l'on veut développer ou réduire tous les groupes d'une feuille ( ce qui ne semble pas être ton cas ) on peut utiliser la méthode ShowLevels

    Outline.ShowLevels method (Excel)

    Displays the specified number of row and/or column levels of an outline.
    Syntax

    expression.ShowLevels (RowLevels, ColumnLevels)
    expression A variable that represents an Outline object.
    Parameters

    Name Required/Optional Data type Description
    RowLevels Optional Variant Specifies the number of row levels of an outline to display. If the outline has fewer levels than the number specified, Microsoft Excel displays all the levels. If this argument is 0 (zero) or is omitted, no action is taken on rows.
    ColumnLevels Optional Variant Specifies the number of column levels of an outline to display. If the outline has fewer levels than the number specified, Excel displays all the levels. If this argument is 0 (zero) or is omitted, no action is taken on columns.


    Exemple d'utilisation pour une feuille avec 2 niveaux de plan en ligne et aussi en colonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ReduireTout()
    Worksheets("Feuil1").Outline.ShowLevels rowLevels:=1, columnLevels:=1
    End Sub
     
    Sub DevelopperTout()
    Worksheets("Feuil1").Outline.ShowLevels rowLevels:=2, columnLevels:=2
    End Sub
    Ami calmant, J.P

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 244
    Par défaut
    Hello,
    Citation Envoyé par BENNASR Voir le message
    En général tu peux démarrer l'enregistreur automatique du macro, faire la tache manuellement , arrêter l'enregistrement et tu aura un code
    tu peux associer ce code à un événement : double clic par exemple
    J'ai essayé ta suggestion mais hélas l'enregistreur n'enregistre rien sur clic sur le + ou le - des plans.
    Sinon une autre idée pour développer un seul groupe parmi plusieurs est de jouer avec la propriété Hidden de ses lignes ou de ses colonnes.
    Ami calmant, J.P

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    J'ai essayé ta suggestion mais hélas l'enregistreur n'enregistre rien sur clic sur le + ou le - des plans.
    Sinon une autre idée est de jouer avec la propriété Hidden des lignes et des colonnes.
    en cliquant sur le numéro de plan en haut à gauche l'enregistreur auto donne çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
        ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=2

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 244
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    en cliquant sur le numéro de plan en haut à gauche l'enregistreur auto donne çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
        ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=2
    oui mais c'est pour l'ensemble des groupes cela ne fonctionne pas sur un groupe particulier (cliquer sur le + d'un groupe particulier)

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 244
    Par défaut
    Bon j'ai trouvé un moyen de développer ou de réduire un groupe particulier : il faut utiliser la propriété showDetail

    exemple pour réduire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(7).ShowDetail = False
    exemple pour développer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(7).ShowDetail = True
    Dans l'exemple le 7 représente la ligne où il y a le + du groupe
    Pour les colonnes c'est le même principe.

Discussions similaires

  1. [XL-2010] Afficher les valeurs d'une cellule d'un TCD en VBA
    Par yzf-r dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/03/2019, 01h14
  2. Réponses: 5
    Dernier message: 29/07/2015, 11h31
  3. [XL-2007] Récupérer les détails d'une erreur dans une cellule
    Par Invité dans le forum Excel
    Réponses: 2
    Dernier message: 08/08/2013, 15h20
  4. Afficher les éléments d'une condition dans une cellule
    Par thanmirt dans le forum Débuter
    Réponses: 2
    Dernier message: 16/04/2012, 19h48
  5. Réponses: 6
    Dernier message: 27/09/2011, 16h56

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