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 :

Afficher / Masquer colonne en cliquant sur une cellule [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut Afficher / Masquer colonne en cliquant sur une cellule
    Bonjour à tous,

    J'aimerai masquer plusieurs colonnes en cliquant sur une cellule ou les afficher si elles sont déja masquées.

    J'ai donc mis le code suivant dans la feuille où est situé ma cellule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("AA2")) Is Nothing Then
    Call Total
    End If
    End Sub
    et Dans mon module la macro est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Total()
     
    If Sheets("Moyenne").Range("AB:AH").EntireColumn.Hidden = True Then
    Sheets("Moyenne").Range("AB:AH").EntireColumn.Hidden = False
    Else
    Sheets("Moyenne").Range("AB:AH").EntireColumn.Hidden = True
    End If
     
    End Sub
    Quand les colonnes sont affichées et que je clique en AA2 ça les masque bien mais quand je re-clique en AA2 ça ne les ré-affichent pas (j'ai l'impression qu'ils les affichent puis les re-masquent quasi instantanément)

    Qqn aurait une idée ?

    Cordialement

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 199
    Points : 319
    Points
    319
    Par défaut
    Bonjour,

    Le code fonctionne chez moi.

    Cordialement,

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Vu ! Oublié d'actualiser ! Effectivement, ça ne marchait pas car je restais sur la même cellule.

    Cordialement

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour, bonjour !

    C'est normal car tu restes sur la même cellule ‼ Sélectionne d'abord une autre cellule puis revient sur AA2 …

    Edit : trop tard, résolu pendant la rédaction de ce message …

    Sinon change d'évènement !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Target.Address <> "$AA$2" Then Exit Sub
        Cancel = True
        With Columns("AB:AH"):  .Hidden = Not .Hidden:  End With
    End Sub
    _____________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Points : 65
    Points
    65
    Par défaut
    Salut Marc,

    Si je souhaite rajouter une condition à ton code c'est possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Target.Address <> "$AA$2" Then Exit Sub
        Cancel = True
        With Columns("AB:AI"):  .Hidden = Not .Hidden:  End With
     
        If Target.Address <> "$AJ$2" Then Exit Sub
        Cancel = True
        With Columns("AK:AY"):  .Hidden = Not .Hidden:  End With
     
    End Sub
    Par exemple ceci ? Car ça fonctionne pour la première mais pas pour la seconde ...

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Cela ne pourra jamais fonctionner pour la seconde avec cette conception pas du tout logique car,
    si la cellule AJ2 est double-cliquée, comment veux-tu qu'elle réussisse le test de la ligne n°2 ?‼

    Il faut donc contrôler les deux adresses de cellules dans cette ligne ou utiliser un bloc Select Case :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Select Case Target.Address
               Case "$AA$2":    COL$ = "AB:AI"
               Case "$AJ$2":    COL$ = "AK:AY"
               Case Else:       Exit Sub
        End Select
                             Cancel = True
        With Columns(COL):  .Hidden = Not .Hidden:  End With
    End Sub
    _____________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    _____________________________________________________________________________________________________
    Il n'y a pas que les aigles qui atteignent les sommets, les escargots aussi mais ils en bavent !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

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

Discussions similaires

  1. [XL-2010] Afficher un menu déroulant en cliquant sur une cellule
    Par Marion92 dans le forum Excel
    Réponses: 2
    Dernier message: 24/04/2015, 17h20
  2. [XL-2007] afficher un tableau en cliquant sur une cellule
    Par jerdel dans le forum Excel
    Réponses: 3
    Dernier message: 19/04/2012, 19h06
  3. probleme d'ouverture d'un nouveau JFrame en cliquant sur une cellule d'un JTable
    Par soussou80 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 20/04/2008, 21h45
  4. [VBA-Excel]Supprimer une colonne entiere basee sur une cellule
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2006, 22h08
  5. [VBA-E] afficher un ALERT en cliquant sur une case d'excel
    Par Argorate dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/08/2006, 05h02

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