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 :

Supprimer une colonne si cellules vides


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'étude
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut Supprimer une colonne si cellules vides
    Bonjour

    Je souhaiterai développer un code qui me permettrait de supprimer une colonne si celle ci est complètement vide.

    Voici ce que j'ai écrit, je fais un test sur 3 colonnes (mon fichier en a 200). Pour chaque colonne je compte le nombre de cellule non vide. Si à la fin de la boucle ce nombre = 0 alors je supprime la colonne.

    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
    22
    23
    24
    25
    Sub test()
     
    Dim cell_non_vide As Integer
    Dim i As Integer
    Dim j As Integer
     
    With ActiveSheet
    For j = 1 To 3
        For i = 2 To Worksheets("Feuil2").Range("A" & .Rows.Count).End(xlUp).Row
            If Cells(i, j) <> "" Then
                cell_non_vide = cell_non_vide + 1
            End If
        Next i
     
        If cell_non_vide = 0 Then
            Columns(j).Delete
        End If
     
        cell_non_vide = 0
     
    Next j
     
    End With
     
    End Sub
    Ce code marche mais a des limites par exemple lorsque qu'une colonne se supprime toute les colonnes se décalent et la boucle saute une colonne sans boucler dessus, j'aimerai éviter cela.

    Y'a t'il un autre moyen ?

    Merci.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour supprimer des lignes ou des colonnes il faut boucler de la dernière vers la première.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'étude
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut
    Tout simplement... J'aurai du y penser.

    Merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    Lean Manufacturing
    Inscrit en
    Janvier 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lean Manufacturing

    Informations forums :
    Inscription : Janvier 2015
    Messages : 132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Sub effacer_colonne()
    Dim dc As Long, ic As Long
     
    dc = Sheets("feuil1").Cells(1, Columns.Count).End(xlToLeft).Column
    For ic = dc To 1 Step -1
    If Application.WorksheetFunction.CountA(Sheets(1).Columns(ic)) = 0 Then
    Sheets("feuil1").Columns(ic).Delete
    End If
    Next
    End Sub
    Un autre exemple faisant la même chose,

    Cordialement

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

Discussions similaires

  1. tableau de cellule: supprimer une colonne
    Par najma dans le forum MATLAB
    Réponses: 1
    Dernier message: 03/07/2011, 23h26
  2. Supprimer une colonne d'une feuille si elle est vide dans une autre
    Par xave dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/02/2008, 14h05
  3. [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
  4. [excel]comment supprimer une colonne vide...
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/10/2005, 13h10
  5. Supprimer une colonne sous SQL Serveur 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/07/2003, 12h24

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