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

XL 2019 Supprimer contenu plage selon condition

  • Initiateur de la discussion Initiateur de la discussion KTM
  • Date de début Date de début

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 !

KTM

XLDnaute Impliqué
Bonjour chers tous
je voudrais une macro simple qui va vider ma table sauf les données des colonnes "PERTE"
merci .
 

Pièces jointes

Bonsoir KTM,

En supposant que la position des colonnes ne changera jamais c'est simple :
VB:
Sub suppr()
Intersect(Rows("3:" & Rows.Count), Range("A:B,D:H,J:N,P:R")).ClearContents
End Sub
Sinon bien sûr il faut une boucle pour effacer les colonnes sans l'en-tête "PERTE".

A+
 
Merci Job75
votre méthode avec la boucle , si vous acceptez de me la proposer sera idéale. Ma table se limite a la ligne 30.
Encore merci.
 
Bonjour KTM, riton00, le forum,
votre méthode avec la boucle , si vous acceptez de me la proposer sera idéale.
Je la propose :
VB:
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
A+
 
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

- cette macro => 0,20 seconde.
 
super !!!
 
super !!!
 
- 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

Discussions similaires

Réponses
7
Affichages
316
Réponses
10
Affichages
511
Réponses
4
Affichages
181
Réponses
48
Affichages
973
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…