Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Sub suppr()
Dim Ltitre, col%
Ltitre = 2 'ligne des titres
With Feuil1.UsedRange 'CodeName de la feuille à adapter
For col = 1 To .Columns.Count
If UCase(.Cells(Ltitre, col)) <> "PERTE" Then .Cells(Ltitre + 1, col).Resize(.Rows.Count - Ltitre).ClearContents
Next
End With
End Sub
Une solution sans boucle donc bien plus rapide s'il y a beaucoup de colonnes :
VB:
Sub suppr()
Dim Ltitre
Ltitre = 2 'ligne des titres
Application.ScreenUpdating = False
With Feuil1.UsedRange 'CodeName de la feuille à adapter
.Rows(Ltitre).Replace "PERTE", "", xlWhole
Intersect(.Offset(Ltitre), .Rows(Ltitre).SpecialCells(xlCellTypeConstants).EntireColumn).ClearContents
.Rows(Ltitre).Replace "", "PERTE"
End With
End Sub
Testé sur un tableau (vide) de 14 400 colonnes :
- macro du post #5 => 1,6 seconde et 0,81 seconde avec Application.ScreenUpdating = False
Sub suppr()
Dim Ltitre, col%
Ltitre = 2 'ligne des titres
With Feuil1.UsedRange 'CodeName de la feuille à adapter
For col = 1 To .Columns.Count
If UCase(.Cells(Ltitre, col)) <> "PERTE" Then .Cells(Ltitre + 1, col).Resize(.Rows.Count - Ltitre).ClearContents
Next
End With
End Sub
Une solution sans boucle donc bien plus rapide s'il y a beaucoup de colonnes :
VB:
Sub suppr()
Dim Ltitre
Ltitre = 2 'ligne des titres
Application.ScreenUpdating = False
With Feuil1.UsedRange 'CodeName de la feuille à adapter
.Rows(Ltitre).Replace "PERTE", "", xlWhole
Intersect(.Offset(Ltitre), .Rows(Ltitre).SpecialCells(xlCellTypeConstants).EntireColumn).ClearContents
.Rows(Ltitre).Replace "", "PERTE"
End With
End Sub
Testé sur un tableau (vide) de 14 400 colonnes :
- macro du post #5 => 1,6 seconde et 0,81 seconde avec Application.ScreenUpdating = False
Une solution sans boucle donc bien plus rapide s'il y a beaucoup de colonnes :
VB:
Sub suppr()
Dim Ltitre
Ltitre = 2 'ligne des titres
Application.ScreenUpdating = False
With Feuil1.UsedRange 'CodeName de la feuille à adapter
.Rows(Ltitre).Replace "PERTE", "", xlWhole
Intersect(.Offset(Ltitre), .Rows(Ltitre).SpecialCells(xlCellTypeConstants).EntireColumn).ClearContents
.Rows(Ltitre).Replace "", "PERTE"
End With
End Sub
Testé sur un tableau (vide) de 14 400 colonnes :
- macro du post #5 => 1,6 seconde et 0,81 seconde avec Application.ScreenUpdating = False
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD