suppression colonne : code VBA trop long à exécuter

  • Initiateur de la discussion Initiateur de la discussion C@thy
  • 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 !

C@thy

XLDnaute Barbatruc
Bonjour le forum,

je voudrais supprimer toutes les colonnes (à partir de la colonne N) dont la date en ligne 2 est inférieure à aujourd'hui - 30 jours
j'ai écrit ceci : (pensant que c'était bien😱😱)

Code:
Sub SupprimeColonnes()
dercol = [IV1].End(xlToLeft).Column
Range(Cells(2, 14).Address & ":" & Cells(2, dercol).Address).Select
For Each c In Selection
If IsEmpty(c.Value) Then Exit Sub ' vide = après la dernière colonne
If c.Value < Date - 30 Then
    c.EntireColumn.Delete
End If

mais ça rame comme c'est pas possible et ça ne marche pas vraiment...🙄

Auriez-vous une idée de code plus efficace???

Merci à vous🙂

Bises

C@thy
 
Re : suppression colonne : code VBA trop long à exécuter

Bonjour C@thy,

Essaies comme ceci, voir si ça va mieux :

Code:
Sub SupprimeColonnes()
Application.Screenupdating = False
For Each c In range("N2:IV2").SpecialCells(xlCellTypeConstants)
  If c.Value < Date - 30 Then c.EntireColumn.Delete
Next
Application.Screenupdating = True
End If

A +

Bises.
 
Dernière édition:
Re : suppression colonne : code VBA trop long à exécuter

Bonjour Cathy🙂,

pour les colonnes comme pour les lignes quand tu veux en supprimer préférable de commencer par la fin et remonter, au cas ou 2 fois de suite la condition est vérifiée... essaye peut être avec ceci :
Code:
Option Explicit
Sub SupprimeColonnes()
Dim c As Long, dercol As Long
dercol = [IV1].End(xlToLeft).Column
For c = dercol To 14 Step -1
    If Cells(2, c) < Date - 30 Then Columns(c).Delete
Next c
End Sub

bon après midi
@+

Edition : bonjour Papou
 
Re : suppression colonne : code VBA trop long à exécuter

Re,
Il y a quand même une grosse bétise 😱 dont je suis coutumier..
Il faut remetre le calcul en automatique à la fin du code 🙂
VB:
Application.Calculation =xlCalculationAutomatic
Désolé

Cordialement
 
- 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
15
Affichages
784
Réponses
5
Affichages
910
Réponses
3
Affichages
430
Réponses
2
Affichages
770
Retour