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 :

[VBA-E] Problème pour masquer des colonnes.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut [VBA-E] Problème pour masquer des colonnes.
    Bonsoir.
    Je travaille avec Excel 2003 en VBA
    Dans une feuille, je voudrais masquer toutes les colonnes vides.
    J’utilise toutes les colonnes de la feuille pour avoir le total toujours en colonne IV.
    Certaines de ces colonnes contiennent des formules du genre =Feuille1 !B2
    J’ai donc utilisé une boucle For Next qui commence à la colonne B jusqu’à la colonne IU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         For d = 2 To 254	 'maximum de boucles sur les colonnes avant la colonne Total
         noM = Cells(1, d).Value
            If noM = 0 Then
        	 Cells(1, d).Select
         	ActiveCell.EntireColumn.Select
        	Selection.EntireColumn.Hidden = True
            End If
         Next d
    Ma macro fonctionne bien jusqu’à la colonne GH
    Là j’ai une erreur 1004 : Impossible de définir la propriété Hidden de la classe Range.
    Si j’essai de l’effectuer manuellement :
    Format / Colonne / Masquer
    J’ai un MessageBox qui me dit : Impossible de déplacer des objets en dehors de la feuille.

    Je n'arrive pas à comprendre pourquoi la macro s’arrête à la colonne GH alors que depuis la colonne CS les colonnes sont vides et bien masquées et que les autres colonnes de GH à IU sont vides.
    Merci pour vos réponses.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Essaie sur une nouvelle feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub masqueLesColonnes()
    Dim d As Integer
        For d = 2 To 254     'maximum de boucles sur les colonnes avant la colonne Total
           ActiveSheet.Columns(d).EntireColumn.Hidden = Cells(1, d).Value = 0
         Next d
    End Sub
    Testé sans pb
    Explication de mon code
    Si Cells(1, d).Value = 0, j'ai True
    Donc ActiveSheet.Columns(d).EntireColumn.Hidden = True
    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    Bonsoir,

    Voici ce que j'ai programmé pour une feuille entièrement vide. Seules les colonnes A, IU, IV ne sont pas masquées.
    Si certaines cellules contiennent autre chose que "", alors elles ne sont pas masquées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Option Explicit
    Sub test()
        Dim d As Integer
        Dim F As Worksheet
     
        Set F = Application.ActiveWorkbook.Worksheets(1)
        d = 2
     
        While d < 255
            If F.Cells(1, d).Value = Empty Then F.Cells(1, d).EntireColumn.Hidden = True
            d = d + 1
        Wend
    End Sub
    j'espère que ça répond à ta question.
    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Résolu
    C'est OK
    Merci.
    J'ai tardé à répondre car il y avait toujours 0 réponses à coté de ma question et j'avais un pb d'identification.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/12/2012, 21h04
  2. Réponses: 3
    Dernier message: 08/09/2008, 17h51
  3. [BO 6.5.1][Deski]Problème pour masquer une colonne
    Par CélineM dans le forum Deski
    Réponses: 2
    Dernier message: 19/03/2008, 18h55
  4. Afficher/masquer des colonnes : VBA vs Claire
    Par mouaa dans le forum VBA Access
    Réponses: 4
    Dernier message: 20/08/2007, 09h11
  5. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13

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