Suppression de colonnes vides

Résolu
Signaler
Messages postés
38
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
29 juin 2007
-
Messages postés
38
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
29 juin 2007
-
Hello!

Je souhaite supprimer les colonnes vides dans mon fichier, voici mon code :
Dim col As Range
Dim nonblank As Long
Dim CompareInd As Worksheet
Set CompareInd = Sheets("Feuil1")
For Each col In CompareInd.UsedRange.Columns
  nonblank = 0
  With col
    On Error Resume Next
    nonblank = .SpecialCells(xlCellTypeFormulas).Cells.Count
    nonblank = .SpecialCells(xlCellTypeConstants).Cells.Count
  End With
  If nonblank = 0 Then
    col.EntireColumn.Delete
  End If
Next col

Le pb est que ce code ne me supprime qu'une colonne vide entre 2 pleines, mais lorsque j'ai plusieurs colonnes vides, il ne m'en supprime qu'une seule...

Savez vous s'il faut que je mette une boucle, et comment

Merci par avance!

2 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Tu pourrais commencer par la droite avec une boucle For Next simple

Sub SupprimeColonnesVides()
    Dim I As Integer, nbColonnes As Integer
    Dim Result As Long

    'Trouver le nombre de colonnes utilisées dans la feuille  
    nbColonnes = Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column
   
    For I = nbColonnes To 1 Step -1
       'Calculer le nombre de valeurs dans la colonne
        Result = Application.WorksheetFunction.CountA(Range(Cells(1, I), Cells(65536, I)))
        If Result = 0 Then Columns(I).Delete
    Next
End Sub

MPi
Messages postés
38
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
29 juin 2007

Merci MPI!!!

c'est ok  et je comprends bien ton code