formule ralentissant macro

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

mefis

XLDnaute Nouveau
🙂 Bonsoir à tous,
J’ai une formule dans ma macro pour trouver les doublons mais celle-ci la ralenti énormément.
Si quelqu'un pouvais m'aider afin de l'accélérer.
Merci😱


Application.ScreenUpdating = False
Sheets("Feuil3").Select

Range("P5").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(MATCH(RC[-14],données!R2C1:R60000C1,0)),"""",""Doublon"")"
Selection.AutoFill Destination:=Range("P5😛60000")
Range("P5😛60000").Select
Selection.AutoFilter Field:=16, Criteria1:="Doublon"
 
Re : formule ralentissant macro

Bonsoir


Je reprends ma réponse laissé dans ton précédent post

en modifiant quelque peu

Ainsi avec ce code tu n'insères pas de formules
(qui "ralentissent")

Il reste à adapter dans le code ci-dessous
le nom de la feuille et la plage de cellules
Code:
Option Explicit
 
Sub MarquerDoublons()
  'Auteur: DRJ    
    Dim x               As Long
    Dim LastRow         As Long
 Application.ScreenUpdating = False
    LastRow = Range("A65536").End(xlUp).Row
    For x = LastRow To 1 Step -1
        If Application.WorksheetFunction.CountIf(Range("A1:A" & x),  _
Range("A" & x).Text) > 1 Then
            Range("A" & x).Offset(0,1).Value="doublons"
 
        End If
    Next x
 
End Sub
 
Dernière édition:
Re : formule ralentissant macro

Bonsoir le Forum, Mefis,

Normal que ta macro soit lente pour chaque formule ecrite en VBA, Excel recalcule la feuille.

Essaie en desactivant le calcul automatique puis en le reactivant comme cela

Code:
Application.Calculation = xlCalculationManual
Sheets("Feuil3").Select
ActiveSheet.Range("P5").Select
ActiveCell.FormulaR1C1 = "=IF(ISNA(MATCH(RC[-14],données!R2C1:R60000C1,0)),"""",""Doublon"")"
Selection.AutoFill Destination:=Range("P5:P60000")
Range("P5:P60000").Select
Selection.AutoFilter Field:=16, Criteria1:="Doublon"
Application.Calculation = xlCalculationAutomatic
Application.Calculate
DoEvents

Cela devrait être plus rapide

@+

Creepy
 
Re : formule ralentissant macro

merci pour votre aide, ca marche mais je ne gagne pas beaucoup de temps surement a cause de la grosseur de mon fichier.

quelles sont les regles pour optimiser la rapidité d'une macro?

j'utilise souvent les filtres automatique pour récupérer des valeurs et j'ai remarqué qu'ils freinnaient aussi pas mal ma macro.
faut il une macro qui en lance plusieurs ou tout copier dans une seule?
 
Re : formule ralentissant macro

bonjour a tous

une petite macro a tester

Code:
Option Explicit
Sub test()
Application.ScreenUpdating = False
Dim doublons As Collection
Set doublons = New Collection
Dim n As Integer
For n = 1 To Range("A65536").End(xlUp).Row
  On Error Resume Next
   doublons.Add Range("A" & n), CStr(Range("A" & n))
   If Err.Number <> 0 Then Range("B" & n) = "Doublon"
  On Error GoTo 0
Next n
Application.ScreenUpdating = True
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
1
Affichages
431
  • Question Question
Microsoft 365 Formules
Réponses
2
Affichages
721
Réponses
22
Affichages
3 K
  • Question Question
Réponses
3
Affichages
990
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
901
Retour