Que faire pour accélérer macro

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

chich

XLDnaute Occasionnel
Bonjour,

que faire pour accélérer ma macro

Sub ToggleButton3_Click()
Application.ScreenUpdating = False
ActiveCell.FormulaR1C1 = "10:00"
SELECTION.Copy
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
If Not ActiveCell.HasFormula And IsDate(ActiveCell.Text) Then _
If ActiveCell < 1 Then Cancel = True: ActiveCell = Format(ActiveCell + 14 / 48, "hh:mm")
ActiveCell.Offset(0, 3).Select
Load UserForm1
End Sub
 
Bonjour à tous,
Peut-être ceci :

Code:
Sub ToggleButton3_Click()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
ActiveCell.FormulaR1C1 = "10:00"
SELECTION.Copy
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
If Not ActiveCell.HasFormula And IsDate(ActiveCell.Text) Then _
If ActiveCell < 1 Then Cancel = True: ActiveCell = Format(ActiveCell + 14 / 48, "hh:mm")
ActiveCell.Offset(0, 3).Select
Load UserForm1
Application.Calculation = xlCalculationAutomatic
End Sub

Bonne journée !
 
Bonjour à tous,
Peut-être ceci :

Code:
Sub ToggleButton3_Click()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
ActiveCell.FormulaR1C1 = "10:00"
SELECTION.Copy
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
If Not ActiveCell.HasFormula And IsDate(ActiveCell.Text) Then _
If ActiveCell < 1 Then Cancel = True: ActiveCell = Format(ActiveCell + 14 / 48, "hh:mm")
ActiveCell.Offset(0, 3).Select
Load UserForm1
Application.Calculation = xlCalculationAutomatic
End Sub

Bonne journée !
re
Merci pour votre interet
Encore plus lent
 
Bonjour,

il y a bien des trucs inutiles comme les .select, copier une valeur que tu viens de mettre (que tu connais donc) pour la coller à nouveau à coté etc, mais tout ça c'est peanuts devant le ActiveWorkbook.Save
Pose-toi la question de savoir si cette enregistrement est bien indispensable.
Si oui, à part t'acheter un SSD pas beaucoup de solution.
eric
 
Bonjour,

il y a bien des trucs inutiles comme les .select, copier une valeur que tu viens de mettre (que tu connais donc) pour la coller à nouveau à coté etc, mais tout ça c'est peanuts devant le ActiveWorkbook.Save
Pose-toi la question de savoir si cette enregistrement est bien indispensable.
Si oui, à part t'acheter un SSD pas beaucoup de solution.
eric
Bonjour
merci pur votre interet
l'enregistrement n'est pas une obligation pour les .select je ne sais pas comment les contourner
 
Bonjour à tous,

@chich
Il est toujours plus "interprétable" de mettre un fichier avec un exemple sur une plage de ce que l'on veut faire parce que si vous dites que le code est lent avec le choix de deux cellules, c'est, pure hypothèse, qu'il doit y avoir une sélection bien plus longue qu'une ACTIVECELL.
Donc, en retirant l'usage des USF, et en se concentrant sur la partie uniquement de code, on peut contourner le SELECT, surtout si vous travaillez sur une ACTIVECELL.

Par exemple, et pour seul besoin de ce contournement.
--------
Sub heure()
ActiveCell.Value = 10 / 24
ActiveCell.NumberFormat = "h:mm"
If ActiveCell.NumberFormat = "h:mm" Then
ActiveCell.Offset(0, 1).NumberFormat = "h:mm"
ActiveCell.Offset(0, 1).Value = ActiveCell + 7 / 24
End If
End Sub
------

cdlt
zebanx
 
- 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
745
Réponses
4
Affichages
544
Retour