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

rendre l'execution d'un code plus rapide

  • Initiateur de la discussion Initiateur de la discussion la fifine
  • 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 !

la fifine

XLDnaute Occasionnel
Code:
Sub EffaceCelluleAncienne()

With Sheets("planning")
Dim c As Range
For Each c In Range("A6:a1200")
If c <> "" Then
If c + Sheets("mode d'emploi").Range("i31").Value < Date Then 'variable nombre de jours
c.Offset(, 1).Resize(3, 10).ClearContents
End If
End If
Next c
End With
End Sub
dans une feuille j'ai des dates en colonne A
du 1/01/12 au 31/12/12
ce code efface les cellules sur la même ligne qui ont plus de 30 jours (range("i31"")
est-il possible de modifier quelque chose pour le rendre plus rapide
car dans l'état il lui faut env. 30 secondes pour executer sur mon pc
merci
 
Dernière édition:
Re : rendre l'execution d'un code plus rapide

bonjour hervé et merci
entre-temps une recherche m'a permis de trouver ceci
Code:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
le délai à été ramené à env 10/15 sec
j'ai mis une statusbar avec un message demandant de patienter ça fera l'affaire en attendant mieux
mais pour ce qui est du code par lui même est-il 'optimisable'
 
Dernière édition:
Re : rendre l'execution d'un code plus rapide

Bonjour
Essayez en évitant d'aller chercher à chaque passage dans la boucle la valeur de la cellule I33 de la feuille "mode d'emploi"
Cherchez la une bonne fois pour toutes au début et mettez la dans une variable que vous utiliserez à la place.
À +
 
Re : rendre l'execution d'un code plus rapide

? Ou est le Temps gagné

Ton Statusbar va encore ralentir....
Sinon comparé à un de mes exemples au niveau Nb cellules : 8 à 10 sec sera bien
au départ le délai était de 30 sec env
j'ai rectifié sur mon premier post finalement c'est une bêtise
je vais remettre les 30 sec d'avant vos solutions sur le post du début
 
Re : rendre l'execution d'un code plus rapide


bonjour dranreb
et comment vous feriez cela? svp
les variables ce n'est pas mon fort
en sachant que je souhaite garder la range("i31") pour que cela reste modifiable par un utilisateur sans aller dans la vba
 
Re : rendre l'execution d'un code plus rapide

VB:
Sub EffaceCelluleAncienne()
Dim C As Range, NbJ As Long
NbJ = Sheets("mode d'emploi").Range("i31").Value
For Each C In Range("A6:a1200")
   If C.Value <> "" Then
      If C.Value + NbJ < Date Then 'variable nombre de jours
         C.Offset(, 1).Resize(3, 10).ClearContents
         End If
      End If
   Next C
End Sub
 
Re : rendre l'execution d'un code plus rapide

Bonjour

En dehors de la variable pour le nombre de jour
Je vois juste un If qui peut être éviter


Code:
Sub EffaceCelluleAncienne()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim C As Range, NbJ As Long
NbJ = Sheets("mode d'emploi").Range("i31").Value
With Range("A6")
For Each C In .Resize(Rows.Count - .Row, 1).SpecialCells(xlCellTypeConstants)
    If C.Value + NbJ < Date Then C.Offset(, 1).Resize(3, 10).ClearContents
Next C
End With

Application.ScreenUpdating = True
End Sub


Sinon a tester la performance d'une matrice
Mettre tes données dans une matrice
faire le traitement sur la matrice
Et écraser ton tableau avec la matrice modifier
 
Re : rendre l'execution d'un code plus rapide

Bonsoir.
Vous n'auriez pas une Worksheet_Change dans votre feuille qui s'exécuterait à chaque ClearContents ?
Si c'est le cas ajoutez encore Application.EnableEvents = False en tête
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
786
Réponses
5
Affichages
912
Réponses
4
Affichages
755
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
6
Affichages
641
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…