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 :

masquer colonnes selon conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut masquer colonnes selon conditions
    Bonjour,
    Je souhaiterai masquer automatiquement certaines colonnes d'un tableau.
    Au dessus de la colonne du tableau, j'imaginais mettre un croix qui signifierait "à cacher", et au lancement de la macro, toutes les colonnes ayant une croix dans une ligne donnée masquerait les colonnes concernées.
    Comment réaliser ça en VBA, je n'en ai aucune idée ?
    Merci

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Salut,
    un exemple en partant de ton idée avec des croix:
    - La ligne 1 contient Les X (majuscules)
    - La ligne 2 Les entêtes de colonnes
    - je boucle à partir de la colonne 1 jusqu'a la dernière colonne Utilisée, si il y a un X je masque la colonne correspondante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim dercolonne As Long
    'numéro de la dernière colonne utilisée
    dercolonne = Cells(2, 16000).End(xlToLeft).Column
        For i = 1 To dercolonne
        If Cells(1, i) = "X" Then Columns(i).Hidden = True
        Next i
    Adapte le à tes besoins et dis nous ce qu'il en est.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    ça ne fonctionne pas ! J'ai un message d'erreur "Débogage" et la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dercolonne = Cells(2, 16000).End(xlToLeft).Column
    est surlignée en jaune.

    Le code complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub masquer_colonnes_x()
    Dim dercolonne As Long
    'numéro de la dernière colonne utilisée
    dercolonne = Cells(2, 16000).End(xlToLeft).Column
        For i = 1 To dercolonne
        If Cells(1, i) = "X" Then Columns(i).Hidden = True
        Next i
    End Sub

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Re,
    et en remplaçant la ligne qui fait défault par celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dercolonne = Cells(2, Columns.Count).End(xlToLeft).Column

  5. #5
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    ça marche ! Merci.

    Et si je peux me permettre d'abuser encore de vos enseignements, pourriez vous me dire comment procéder pour répondre au problème suivant :
    - j'ai une colonne qui doit être "visitée" par une macro pour voir s'il est nécessaire de changer la formule de cette cellule.
    Cela concerne la colonne B.
    La macro est créée. Je suppose qu'il doit falloir faire une boucle mais j'ai du mal à la réaliser ! Merci

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Re,
    un exemple de boucle simple :
    - dans la colonne B à partir de la ligne 1 j'ai les jours de la semaine.
    - je parcours chaque cellule de la colonne je m'arrête à la dernière cellule
    utilisée
    - A chaque fois qu'il y a écrit Mardi dans une cellule je la colorie en rouge.

    voici le 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
    15
    Sub test()
    'je déclare ma variable i
    Dim i As Long
     
    'Je parcours toute les cellules de la colonne B de la première ligne
    'jusque la dernière ligne utilisée de la colonne
    For i = 1 To Range("B65000").End(xlUp).Row
       'si dans la cellule il y a Mardi alors
       If Range("B" & i) = "Mardi" Then
          'Je colorie la cellule en rouge
          Range("B" & i).Interior.Color = 3
       End If
    'je vais à la cellule suivante
    Next i
    End Sub
    analyse le principe et essaye de l'appliquer à tes besoins. Si tu rencontre des difficultés, met le code que tu auras écrits dans ton prochain post et explique un peu plus ce que dois faire ce code

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

Discussions similaires

  1. [AC-2010] Afficher colonne selon conditions
    Par alexislv dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 16/06/2014, 16h32
  2. [XL-2010] Masquer colonne selon valeur cellule sur autre onglet
    Par kit2412 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/05/2013, 17h11
  3. [2008] Changement de valeur d'une colonne selon condition
    Par jubourbon dans le forum SSIS
    Réponses: 3
    Dernier message: 08/03/2012, 18h14
  4. [XL-2003] couleur d'une cellule d'une colonne selon conditions
    Par bartsho dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/12/2011, 12h44
  5. [XL-2003] supprimer une colonne selon une condition
    Par collinchris dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/01/2010, 16h00

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