Supprimer des colonnes vba

floker820 Messages postés 5 Statut Membre -  
floker820 Messages postés 5 Statut Membre -
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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. floker820 Messages postés 5 Statut Membre
     
    Merci beaucoup.
    Cette macro réalise exactement ce que je souhaite et j'ai de plus compris mon problème.
    0