Supprimer des colonnes vba

Bonjour,

Je m'excuse par avance, je ne programme jamais.
Je souhaite écrire une macro qui scanne un fichier excel et supprime les colonnes ne comportant qu'une seule cellule non vide.

J'ai pour le moment écrit ce début de code:

Sub Suppcolvide()
Dim nbcol As String
Dim curseur As String
Dim nbcellnonvide As String
nbcol = NBVAL(Lines(1))
For curseur = nbcol To 1
nbcellnonvide = NBVAL(Columns(curseur))
If nbcellnonvide = 1 Then
Columns(curseur).Select
Selection.Delete Shift:=xlToLeft
End If
curseur = curseur - 1
Next curseur
End Sub


Sans surprise, ca ne fonctionne pas.
Je pense que mon problème vient de l'utilisation de la fonction qui s'utilise comme suit : NBVAL(A1:A100). Seulement, je ne connais pas a posteriori les colonnes à supprimer. Il faut donc que je les repères par une boucle. Si quelqu'un a une idée ou pourrais me dire comment passer une colonne en chiffre et vice versa.

Merci d'avance

2 réponses

  1. Bonjour,

    un exemple de code:

    Sub Suppcolvide()
    Dim nbcol
    Dim curseur

    With Worksheets("feuil1")
    'derniere colonne utilise ligne 1
    nbcol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
    'boucle colonne de max a 1
    For curseur = nbcol To 1 Step -1
    'test cellules non vide par colonne
    If Application.WorksheetFunction.CountA(.Columns(curseur)) = 1 Then
    'delete colonne
    .Columns(curseur).Delete Shift:=xlToLeft
    End If
    Next curseur
    End With
    End Sub
    1
    1. Merci beaucoup.
      Cette macro réalise exactement ce que je souhaite et j'ai de plus compris mon problème.
      0