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

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

sylvanu

XLDnaute Barbatruc
Supporter XLD
Avec la macro #7, il y a une partie correcte jusqu'à BC2, mais il manque toute la suite.
( en s'arrêtant à 256 colonnes )
Donc il y a bien un souci. Bizarre.

1608757428814.png
 

Staple1600

XLDnaute Barbatruc
Re

Bizarre, vous avez dit bizarre? :eek:
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
154
Réponses
10
Affichages
204
Réponses
22
Affichages
753

Statistiques des forums

Discussions
312 164
Messages
2 085 872
Membres
103 007
dernier inscrit
salma_hayek