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

D

dalbator

Guest
Bonjour,

J'ai un bout de macro qui me semble long à s'exécuter, plus de 10 secondes...🙁

Avez-vous une idée de comment faire pour réduire ce temps ?
😕

Pour information, je refait plusieurs fois les copier coller, car j'ai des cellules fusionnées... Et donc le copier coller ne fonctionne pas si on prends d'autres cellules.

Merci d'avance. Car 10 secondes, c'est vraiment long d'autant que j'ai déjà supprimé des parties de code...

Sub modifier()
Application.ScreenUpdating = False
If Feuil11.Cells(1, 9).Value <> "" Then
sortie = True
Feuil12.Select
'copie du bloc 1 & 2
Feuil11.Range("b2:h29").Copy
Feuil12.Range("b2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'copie du bloc 3
Feuil11.Range("i1:l6").Copy
Feuil12.Range("i1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'copie de la case fusionnée du bloc 3
Range("j7").Copy
Feuil12.Range("j7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'copie du bloc 3 suite
Feuil11.Range("j11:l18").Copy
Feuil12.Range("j10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'copie de la case fusionnée du bloc 3
Feuil11.Range("j19").Copy
Feuil12.Range("j19").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'copie du bloc 3 fin
Feuil11.Range("j21:l26").Copy
Feuil12.Range("ji21").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'copie de la dernière case fusionnée du bloc 3
Feuil11.Range("j27").Copy
Feuil12.Range("j27").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'n°id
Feuil12.Cells(50, 1).Value = Feuil12.Cells(9, 1).Value
sortie = False

Else
Z = MsgBox("Il manque le n° ID de cette fiche. Merci de la reselectionner", vbCritical, "Erreur")
Feuil1.Select
End If

Application.ScreenUpdating = True

End Sub
 
Re : lenteur Excel

Bonjour dalbator,

On peut sans doute améliorer, mais 10 secondes c'est quoi par rapport à ce que tu demandes à ta macro de faire. (peut-être aussi le pc....)

N'ayant pas ton fichier en main, difficile d'en dire plus.

mais en tout état de cause à comparer avec le même travail à la main.....

Bon après-midi.

Jean-Pierre
 
Re : lenteur Excel

Salut Dalbator 😉

Pourquoi faire du copier/coller ?
Mieux vaut faire
Code:
'copie du bloc 1 & 2
'Feuil11.Range("b2:h29").Copy
'Feuil12.Range("b2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
feuil12.Range("b2:h29").Value = feuil11.Range("b2:h29").Value
Identique pour le reste

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
791
Réponses
18
Affichages
597
Réponses
2
Affichages
398
Réponses
17
Affichages
1 K
  • Question Question
Microsoft 365 Erreur de format
Réponses
5
Affichages
597
Retour