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

Accélérer le code car très lent

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

Cougar

XLDnaute Impliqué
Bonjour le forum,

Dans le fichier joint tronqué, normalement plus de 3000 lignes pour le moment, la durée est d'environ 10 sec. Serait-il possible de simplifier ce code pour qu'il soit plus rapide.

Je suis sur le réseau de l'entreprise et c'est, peut-être, la cause de la lenteur.

Merci
 

Pièces jointes

Bonjour Cougar 🙂, le Forum 🙂

Pourquoi ouvrir un autre poste pour le même fichier??🙄 . Tu aurais pu faire la demande sur l'autre. Et je t'ai donné l'exemple de comment fallait écrire le code, parce-que avec tous ces select tu m'éttonne que ça traîne. Si tu dirais au juste ce que tu veux faire ça serait mieux. Ce que je ne comprends pas au début de la macro, je te donne un exemple simplifé d'après ce que je comprend.

D'abord tu met ceci

VB:
With Sheets("A")
    .Range("j1").EntireColumn.Insert xlToLeft
    .Range("j2").FormulaR1C1 = "=RC[-2]&"" - ""&RC[-1]"
    .Range("j2").AutoFill Destination:=.Range("j2:j5000"), Type:=xlFillDefault
    .Columns("j:j").Copy
    .Columns("j:j").PasteSpecial Paste:=xlPasteValues
   Application.CutCopyMode = 0
End With

Mais au lieu de copier-coller, tu écrit comme ceci
VB:
Sub test()
Dim derlig As Long, i As Long

With Sheets("A")
derlig = .Range("i" & Rows.Count).End(xlUp).Row
    For i = 2 To derlig
    .Range("j" & i).FormulaR1C1 = "=RC[-2]&"" - ""&RC[-1]"
    .Range("j" & i).Value = .Range("j" & i).Value
    Next i
End With
End Sub
'Au lieu de faire un AutoFill

ensuite

Columns("J:L").Select - Selection.Delete Shift:=xlToLeft. Tu peux m'expliquer? 🙄😕
 
Dernière édition:
Bonjour Lone-Wolf, le forum,

Même fichier mais pas même problème. C'est pourquoi j'ai créé un autre sujet.

Merci pour tes solutions et pour les colonnes J:L c'est pour enlever les colonnes superflues car j'aurais d'autres calculs à faire avec ce fichier. Je garde seulement ce qui est nécessaire.

Encore une fois, merci.
 
Bonsoir le fil, le forum

Loup Solo
Pourquoi la boucle ? 😉
VB:
Sub test_II()
Dim derlig&
With Sheets("A")
    derlig = .Range("i" & Rows.Count).End(xlUp).Row
    With .[J2].Resize(derlig - 1)
        .FormulaR1C1 = "=RC[-2]&"" - ""&RC[-1]"
        .Value = .Value
    End With
End With
End Sub
 
- 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
10
Affichages
560
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…