Supprimer des colonnes vides en gardant les 2 premières lignes

stephi1972 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
stephi1972 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je récupère des données dans un fichier excel qui contient un nombre de colonnes et un nombre de lignes important.
Je souhaite supprimer les colonnes qui sont entièrement vides afin d'obtenir un tableau lisible facilement. Mais je souhaite garder la première ligne de mon tableau, elle contient le titre des colonnes.
Je ne suis pas expert en VBA, est ce que quelqu'un pourrait m'aider svp pour la macro ? c'est surement avec une boucle "For" et une fonction "Delete", mais mes compétences s'arrêtent là !
Merci beaucoup.
A voir également:

3 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonjour,

Il est possible de supprimer une colonne entière sans problème, il est également possible de supprimer la colonne excepté la première ligne mais dans ce cas le données vont se décaler et l'entête de la première ligne ne correspondra plus à la colonne parce que les données de la colonne de droite vont se déplacer d'une colonne vers la gauche
0
stephi1972 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Mike
vous avez raison, je précise alors ma demande : si la colonne est vide alors il faut la supprimer y compris le titre de la colonne et donc tout pourra se décaler.
Auriez vous une solution de macro du coup ?
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

genre de code pour surveiller les colonnes de 1 à 100 soit de A à CV sur les lignes de 2 à 100

Sub Macro1()
Dim i As Integer
On Error Resume Next
Application.ScreenUpdating = False
For i = 100 To 1 Step -1
If Cells(100, i).End(xlUp).Row = 2 Then Cells(1, i).EntireColumn.Delete
Next i
Application.ScreenUpdating = True
End Sub


A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
stephi1972 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Merci , j'ai testé sur un petit tableau volontairement (7 colonnes, 20 lignes) -> il ne se passe rien quand j'exécute la macro : ni suppression ni message d'erreur... :(
0
Maurice
 
Bonjour

et voir aussi
Sub DelColVide()
Dim C, Dercol As Long
'pour la dernière colonne
Dercol = Cells(1, Columns.Count).End(xlToLeft).Column
   Application.ScreenUpdating = False
      For C = Dercol To 1 Step -1
         If Cells(Rows.Count, C).End(xlUp).Row < 2 Then Columns(C).Delete
      Next
   Application.ScreenUpdating = True
End Sub

A+
Maurice
0
stephi1972 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, je vais tester et vous dit.
0