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

Fermé
stephi1972 Messages postés 7 Date d'inscription samedi 30 août 2014 Statut Membre Dernière intervention 22 juillet 2015 - 22 juil. 2015 à 14:45
stephi1972 Messages postés 7 Date d'inscription samedi 30 août 2014 Statut Membre Dernière intervention 22 juillet 2015 - 22 juil. 2015 à 16:40
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.

3 réponses

Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
22 juil. 2015 à 14:51
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 samedi 30 août 2014 Statut Membre Dernière intervention 22 juillet 2015
22 juil. 2015 à 15:05
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 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 22/07/2015 à 15:36
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 samedi 30 août 2014 Statut Membre Dernière intervention 22 juillet 2015
22 juil. 2015 à 15:54
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
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 samedi 30 août 2014 Statut Membre Dernière intervention 22 juillet 2015
22 juil. 2015 à 16:40
Merci, je vais tester et vous dit.
0