Comment améliorer la vitesse du code macro VBA?

Je n'ai pas beaucoup d'expérience avec l'écriture de macros, et donc besoin de l'aide de la communauté pour le problème suivant rencontrés:

Ma macro copie une plage de valeurs saisies dans une plage verticale dans une feuille de calcul, puis colle les valeurs horizontalement (transpose) dans une autre feuille de calcul. Il serait, en théorie, coller les valeurs de la première feuille de la première ligne de la deuxième feuille de calcul qui n'ont pas de contenu. Depuis les cinq premières lignes du contenu, il colle les valeurs de la sixième ligne.
Le problème que j'ai avec l'exécution de la macro, c'est que j'ai l'impression que c'est trop lent et je tiens donc à courir plus vite.

J'ai la même macro de faire la même chose mais au lieu de cela colle les valeurs d'une autre feuille de calcul à la première ligne, et il fonctionne parfait.

Ma meilleure supposition est donc que la deuxième macro est lent car il doit commencer à coller sur la sixième ligne et il peut y avoir de contenu sur les 5 premières lignes qui prennent beaucoup de temps pour que la macro passer à travers (il y a beaucoup de références de cellule à d'autres classeurs) pour déterminer où la ligne suivante pour le collage doit être. C'est ma meilleure supposition bien et depuis je ne sais rien à propos des macros, je ne peux pas dire à coup sûr que le problème est.

Par la présente, je vous fournir le code de ma macro et espère sincèrement que quelqu'un peut me dire qu'est-ce que faire de ma macro de ralentir et de me fournir une solution quant à la façon de le faire fonctionner plus rapidement. Je pense qu'une solution pourrait potentiellement être que la macro ne doit pas considérer les cinq premières lignes de données et commencer à coller immédiatement sur la ligne 6 pour la première entrée. Ensuite, sur la ligne 7, la prochaine fois, et etc. Ce pourrait être une solution mais je ne sais pas comment écrire le code d'une manière qu'il le ferait.

Merci de prendre le temps et de m'aider à trouver une solution, voici le code:

Sub Macro1()
Application.ScreenUpdating = False

    Dim historyWks As Worksheet
    Dim inputWks As Worksheet

    Dim nextRow As Long
    Dim oCol As Long

    Dim myCopy As Range
    Dim myTest As Range

    Dim lRsp As Long

    Set inputWks = wksPartsDataEntry
    Set historyWks = Sheet11

      'cells to copy from Input sheet - some contain formulas
      Set myCopy = inputWks.Range("OrderEntry2")

      With historyWks
          nextRow = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
      End With

      With inputWks
          Set myTest = myCopy.Offset(0, 2)

          If Application.Count(myTest) > 0 Then
              MsgBox "Please fill in all the cells!"
              Exit Sub
          End If
      End With

      With historyWks
          With .Cells(nextRow, "A")
              .Value = Now
              .NumberFormat = "mm/dd/yyyy hh:mm:ss"
          End With
          .Cells(nextRow, "B").Value = Application.UserName
          oCol = 3
          myCopy.Copy
          .Cells(nextRow, 3).PasteSpecial Paste:=xlPasteValues, Transpose:=True
          Application.CutCopyMode = False
      End With

      'clear input cells that contain constants
      With inputWks
        On Error Resume Next
           With myCopy.Cells.SpecialCells(xlCellTypeConstants)
                .ClearContents
                Application.GoTo .Cells(1) ', Scroll:=True
           End With
        On Error GoTo 0
      End With

Application.ScreenUpdating = True
End Sub

source d'informationauteur Miles