Supprimer des colonnes vba

floker820 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
floker820 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
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

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