Optimiser le temps de réponse de macro VBA supprimer lignes
Résolu/Fermé
A voir également:
- Optimiser le temps de réponse de macro VBA supprimer lignes
- Optimiser son pc - Accueil - Utilitaires
- Impossible de supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Impossible de supprimer un fichier - Guide
- Optimiser windows 10 - Guide
4 réponses
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
7 nov. 2022 à 13:10
7 nov. 2022 à 13:10
Bonjour
3000 lignes ce n'est rien du tout, si la macro met tant de temps c'est peut être à cause du recalcul de certaines formules
Essaie en début de macro de passer en manuel avec Application.Calculation = xlCalculationManual
puis reviens an calcul auto en fin de macro : Application.Calculation = xlCalculationAutomatic
Cdlmnt
Via
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
7 nov. 2022 à 14:13
7 nov. 2022 à 14:13
Re
Le code est correct, chez moi il met 3 secondes à s'éxécuter
Tu as beaucoup de lignes à supprimer ??
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
7 nov. 2022 à 16:41
7 nov. 2022 à 16:41
D'autres macros qui peuvent être lancées en sous-main style des macros événement de feuille pour tout changement dans la feuille par exemple peuvent effectivement considérablement ralentir l'autre macro
Mais des macros inactives non
7 nov. 2022 à 13:39
Bonjour,
Merci de votre retour, je met toujours 24 secondes après avoir mis en place votre conseil.
J'ai rentré le code suivant:
Sub Supprimerligne()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Dim i As Long
With Sheets("bipage_moules")
For i = 3000 To 12 Step -1
If .Cells(i, 11).Value = "A supprimer" Or .Cells(i, 11).Value = "" Then Rows(i).EntireRow.Delete
Next i
End With
Dim fichier As Workbook
Dim onglet As Worksheet
Dim extrait As Worksheet
Dim derniere_ligne As Long
'identifier le fichier et l'onglet
Set fichier = ActiveWorkbook
Set onglet = fichier.Worksheets("bipage_moules")
Set extrait = fichier.Worksheets("Reparation")
'trouver la dernière ligne du tableau
derniere_ligne = extrait.Cells(Rows.Count, 1).End(xlUp).Row + 1
'copier coller les cellules
With extrait
.Cells(derniere_ligne, 1) = onglet.Cells(6, 3)
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub