Bonjour,
J'ai un bout de macro qui me semble long à s'exécuter, plus de 10 secondes...![Frown :( :(](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
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
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