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 :

Cacher des colonnes suivant un choix


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut Cacher des colonnes suivant un choix
    Bonjour à tous,

    Je souhaite faire une commande VBA pour afficher des données suivant des critères. Débutant en VBA, je n'arrive pas à grand chose. J'ai joint le fichier sur lequel je travaille.

    Je cherche à faire la chose suivante:

    Sur l'onglet "Feuil1", on choisit le mois et l'acteur. Cela a pour effet d'ouvrir l'onglet correspondant au mois ainsi que d'afficher les lignes concernant l'acteur. Pour cela j ai fais quelques lignes en VBA qui fonctionnent.
    Ensuite, j'aimerai que si l'acteur est autre que "cg" les colonnes G à Q soient masquées et inversement. C'est cette partie que je n'arrive pas à faire.

    Pourriez vous m'aider?

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    fais attention à bien nommer tes feuilles dans ton code VBA car quand tu travailles sur plusieurs feuilles à la fois, cela provoque très vite des erreurs.

    j'ai modifié le module suivant comme suit et cela fonctionne.

    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
    Private Sub CommandButton13_Click()
     
    Dim x As Variant
    x = Sheets("Feuil1").Range("E20").Value
    Dim y As Variant
    y = Sheets("Feuil1").Range("G20").Value2
    Var = "*" & y & "*"
     
    Sheets(x).Select
    Selection.AutoFilter Field:=5, Criteria1:=Var, Operator:=xlAnd
     
    Dim z As Variant
    z = Range("F10:F150").Value
     
    If y <> "CG" Then
        Sheets(x).Range("G8:Q150").EntireColumn.Hidden = True
    Else
        Sheets(x).Range("G8:Q150").EntireColumn.Hidden = False
    End If
     
    End Sub
    Autrechose, tester "cg" alors que le contenu est CG ne donne jamais une équivalence.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut Merci
    Bonjour Godzestla

    Je te remercie grandement pour tes conseils et tes lignes de codes.

    J'ai une autre question. Au lieu de faire le test sur la variable z est il possible de faire ce test sur la colonne "F" del'onglet mois et ainsi pouvoir cacher les colonnes voulus?

    En tout cas merci pour ton aide.

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Sauf erreur de ma part, il n'y a aucun test sur la variable z, mais bien sur y.

    Quel problème cela te pose t'il ?

    Pour moi, c'est la bonne manière de faire, travailler sur l'élément qui sert de paramètre de sélection.

    A propos, si tu as encore une (ou des questions), il est toujours plus facile que tu mettes ton code dans le post en utilisant les balises codes (voir les rêgles du forum), cela évite de chaque fois rouvrir ton excel, que je n'ai d'ailleurs pas sauvé en version modifiée.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut
    J'ai voulu partir sur un test sur la variable z mais je me suis aperçu que dans ce test "cg" apparaitra toujours dans la plage f10:f150.

    Il faut que je teste sur la cellule qui se trouve juste en dessous de la cellule 7 et dans la colonne F si il y a la presence de l'acteur CG après avoir filtré les lignes.

    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
    Private Sub CommandButton13_Click()
     
    Dim x As Variant
    x = Sheets("Feuil1").Range("E20").Value
    Dim y As Variant
    y = Sheets("Feuil1").Range("G20").Value2
    Var = "*" & y & "*"
     
    Sheets(x).Select
    Selection.AutoFilter Field:=5, Criteria1:=Var, Operator:=xlAnd
     
    Dim z As Variant
    z = Range("F10:F150").Value 
    If y <> "CG" Then
        Sheets(x).Range("G8:Q150").EntireColumn.Hidden = True
    Else
        Sheets(x).Range("G8:Q150").EntireColumn.Hidden = False
    End If
     
    End Sub

Discussions similaires

  1. Cacher des lignes suivant plusieurs choix
    Par tchoutchou69 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/03/2011, 10h27
  2. Cacher des colonnes suivant plusieurs choix
    Par tchoutchou69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/01/2011, 16h54
  3. Réponses: 5
    Dernier message: 28/07/2010, 15h41
  4. cacher des colonnes du struts layout datagrid
    Par imsory dans le forum Struts 1
    Réponses: 1
    Dernier message: 02/04/2007, 11h28
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

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