Suppression de colonnes vides

Résolu
cs_malika_i Messages postés 38 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 29 juin 2007 - 27 juin 2007 à 23:54
cs_malika_i Messages postés 38 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 29 juin 2007 - 28 juin 2007 à 00:23
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

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 23 août 2018 21
28 juin 2007 à 00:14
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
3
cs_malika_i Messages postés 38 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 29 juin 2007
28 juin 2007 à 00:23
Merci MPI!!!

c'est ok  et je comprends bien ton code
0