Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 supprimer colonnes

pbruno

XLDnaute Nouveau
Bonjour à tous,

j'aimerais supprimer les colonnes où il n'y a pas de noms sur la 1 ere ligne et si c'est possible avoir la même mise en page que sur la feuille résultat, c'est à dire ne gardant une ligne vide au dessus et une vingtaine de colonne.

Je n'arrive pas à trouver la solution.

Merci pour votre aide
 

Pièces jointes

  • Classeur1.xlsx
    34.3 KB · Affichages: 31

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Pbruno,
Un essai en PJ avec :
VB:
Sub Nettoyer()
Dim DerCol%, C%
Application.ScreenUpdating = False
DerCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
For C = DerCol To 2 Step -1
    If Cells(2, C) = "" Then
        Columns(C).Delete Shift:=xlToLeft
    End If
Next C
With ActiveSheet.UsedRange: End With
End Sub
 

Pièces jointes

  • Classeur1 (36).xlsm
    38.5 KB · Affichages: 4

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

J'y suis allé au feeling
(en me basant sur la 1ere phrase du 1er message)
VB:
Sub Supprimer_Bis()
Rows("1:1").SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
End Su
=>sylvanu
J'ai bon?
Ca fait le job?
Où j'aurai du ouvrir la PJ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Oui, j'ai éssayé ça marche.
Mais sur la PJ de Pbruno il reste des colonnes où la cellule xx2 est vide, avec :
VB:
Sub Supprimer_Bis()
    Rows("2:2").SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
End Sub
J'avoue ne pas bien comprendre pourquoi. Voir PJ, en ligne 2 il ne doit plus y avoir de cellules vides.
 

Pièces jointes

  • Classeur1 (36).xlsm
    38.8 KB · Affichages: 3

Staple1600

XLDnaute Barbatruc
Re

=>sylvanu
Actuellement je suis limité à IV
Donc je ne trouve que celles-ci comme vides.
VB:
Sub Macro1()
Dim vides
vides = Split(Rows("2:2").SpecialCells(xlCellTypeBlanks).Address, ",")
Sheets.Add
Cells(1).Resize(UBound(vides) + 1) = Application.Transpose(vides)
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
@Staple,
Et le fichiers a 616 colonnes.
Ceci dit il devrait marcher sur le mien. Mais il bloque à la colonne 66 ( d'origine ) qui se retrouve en colonne 39. Il ne va même pas jusqu'à la colonne 256.
En PJ après avoir passé votre macro. En ligne 11 il y a les N° de colonnes avant la macro.
 

Pièces jointes

  • Classeur1 (36) (Staple).xlsm
    40.7 KB · Affichages: 3

Staple1600

XLDnaute Barbatruc
Re

Bizarre, vous avez dit bizarre?
Code:
Sub WTF()
Dim t, i%, vides$
For i = 1 To 256
If Len(Cells(2, i)) = 0 Then
vides = vides & "," & Cells(2, i).Address
End If
Next
t = Split(vides, ",")
Sheets.Add
Cells(1).Resize(UBound(t)
+1) = Application.Transpose(t)
End Sub
 

job75

XLDnaute Barbatruc
Bonsoir pbruno, JM, sylvanu,

Il y a 2 choses à bien comprendre :

- en ligne 2 il y a des cellules vides mais aussi des textes vides ""

- il y a des formules.

Donc il ne faut pas supprimer des colonnes mais les masquer, voyez le fichier joint et la macro :
VB:
Sub MAJ()
With Feuil7 'CodeName de le feuille de destination
    Feuil5.Cells.Copy .[A1] 'copie-colle tout
    .[A1].Copy .[A1] 'allège la mémoire
    .DrawingObjects.Delete 'supprime les objets
    With .Range("A1", .UsedRange).Rows(1)
        .FormulaR1C1 = "=1/(COLUMN()>1)/(R[1]C="""")"
        On Error Resume Next 'si aucune SpecialCell
        .SpecialCells(xlCellTypeFormulas, 1).EntireColumn.Hidden = True 'masque les colonnes avec 1
        .ClearContents
    End With
    .Activate 'facultatif
End With
End Sub
A+
 

Pièces jointes

  • Classeur(1).xlsm
    39.3 KB · Affichages: 8

Discussions similaires

Réponses
2
Affichages
182
Réponses
10
Affichages
216
Réponses
22
Affichages
788
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…