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 :

Supression des colonnes vides


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut Supression des colonnes vides
    Bonjour,

    Je souhaiterais sous VBA Excel supprimer toutes les colonnes vides de chauqe feuille de mon classeur.

    Voici le code que j'ai écrit, mais il ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    For Each Feuille In Worksheets
    Feuille.Select
    DerniereColonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column
    DerniereLigne = Range("A65536").End(xlUp).Row
    For c = DerniereColonne To 1 Step -1
    If Cells(65536, c).End(xlUp).Row = 1 Then
    Cells(1, c).EntireColumn.Delete
    End If
    Next c
    Next Feuille
    End Sub
    Merci de votre aide et bonne journée.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut arnold95 et le forum
    Voici le code que j'ai écrit, mais il ne fonctionne pas:
    9a veut dire quoi ? Tu donnes un extrait de macro et on doit trouver pourquoi cet extrait ne donne pas le résultat que tu attends ? Pas assez d'infos. le seul truc qui me saute aux yeux, c'est que tu ne tiens pas compte de la cellule en ligne 1.
    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Peut-être une solution parmi d'autres :

    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 Essai()
    For Each Feuille In Worksheets
    Feuille.Select
    DerniereColonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column
    DerniereLigne = Range("A65536").End(xlUp).Row
    For c = DerniereColonne To 1 Step -1
    If Cells(65536, c).End(xlUp).Row = 1 Then
        If Cells(1, c) = "" Then
        Cells(1, c).EntireColumn.Delete
        End If
    End If
    Next c
    Next Feuille
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut
    Merci pour les réponse.

    Mais pour le coup, je ne peux utiliser la première cellule comme critère car elle est toujours remplie, elle corespond à des intitulés de champs.

    Merci.

  5. #5
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Ben alors utilise la ligne 2, en fait si la première cellule trouvée depuis le bas = 1 c'est que la colonne est vide, on peut donc supprimer la vérification du vide, avec le code de Jacques-Jean ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Essai()
    For Each Feuille In Worksheets
    Feuille.Select
    DerniereColonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column
    DerniereLigne = Range("A65536").End(xlUp).Row 'Pas certain que ce soit utile
    For c = DerniereColonne To 1 Step -1
         If Cells(columns(c).cells.count, c).End(xlUp).Row = 1 Then 'Adapté pour être compatible à XL2007 qui a plus que 65536 lignes
             Cells(1, c).EntireColumn.Delete
         End If
    Next c
    Next Feuille
    End Sub
    A+

Discussions similaires

  1. [Macro] table SAS: comment deleter des colonnes vides
    Par _debutant dans le forum Macro
    Réponses: 6
    Dernier message: 20/11/2008, 15h31
  2. [6.5.1] Faire apparaitre des colonnes vides
    Par zestlimon dans le forum Deski
    Réponses: 9
    Dernier message: 13/09/2008, 12h59
  3. Masquer des colonnes vides automatiquement
    Par Madmoiselle dans le forum Excel
    Réponses: 10
    Dernier message: 08/04/2008, 12h18
  4. supression des champs vides
    Par kapotocho dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/02/2008, 15h58
  5. Sélection de données séparées par des lignes et/ou des colonnes vides
    Par Crystalle dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/12/2007, 20h02

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