Problème code copié collé

Bonjour,

Je suis nouveau sur vba, j'ai commencé à coder il y a peu et souhaite vraiment m'améliorer.

J'aurais besoin de votre aide afin de savoir si je peux améliorer mon code, mes macros sont super longues, et j'aimerais les rendre

plus efficiente. merci beaucoup pour votre aide.

Grosso modo, J'ai plusisuers fichier de calcul et je modifie certains paramètres afin d'avoir de nouveau résultat et je copie colle le resultat en valeurs, comment puis-je faire en sorte que cela aille plus vite? (sachant que je repete cet test beaucoup de fois dans une macro). voici quelques exemples:

exemple 1:

If Worksheets("RECAP").Range("A31") > 0 Then

Worksheets("RECAP").Range("B31").Copy

Worksheets("RECAP").Range("A101").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Worksheets("RECAP").Range("c78").Copy

Worksheets("RECAP").Range("A102").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Worksheets("RECAP").Range("A100:KIL615").Copy

Worksheets("MC").Range("A4136").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

End If

Application.CutCopyMode = False

Set laplage = Nothing

exemple 2 (le fichier Recap_V7 comprend beaucoup de formules):

Workbooks.Open Filename:="D:\Vitesse_vecteurs\Nouveau\DYNAMIQUE.xlsx"

Workbooks("DYNAMIQUE.xlsx").Activate

Worksheets("RECAP").Range("B18").Copy

Worksheets("RECAP").Range("H1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Worksheets("RECAP").Range("A1:DB3000").Copy

Workbooks("Analyse dynanique RECAP_v7.xlsb").Activate

Worksheets("1-10").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Set laplage = Nothing

Workbooks("DYNAMIQUE.xlsx").Activate

Worksheets("RECAP").Range("B29").Copy

Worksheets("RECAP").Range("H1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Worksheets("RECAP").Range("A1:DB3000").Copy

Workbooks("Analyse dynanique RECAP_v7.xlsb").Activate

Worksheets("11-210").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Set laplage = Nothing

exemple3

Workbooks.Open Filename:="D:\Vitesse_vecteurs\Nouveau\Analyse dynamique\Valeurs.xlsx"

Worksheets("01").Range("A1:KKK10000").ClearContents

Worksheets("02").Range("A1:KKK10000").ClearContents

Worksheets("03").Range("A1:KKK10000").ClearContents

Worksheets("04").Range("A1:KKK10000").ClearContents

Worksheets("05").Range("A1:KKK10000").ClearContents

Worksheets("06").Range("A1:KKK10000").ClearContents

Workbooks("ADRECAP_v7.xlsm").Activate

Worksheets("RECAP").EnableCalculation = False

Worksheets("01").Range("A1:KIL8000").Copy

Workbooks("Valeurs.xlsx").Activate

Worksheets("01").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

Set laplage = Nothing

Merci beaucoup pour vos conseils

Bonsoir

Une idée comme ceci :

Exemple 1 :

With Worksheets("RECAP")
If .Range("A31") > 0 Then
    .Range("B31").Copy
    .Range("A101").PasteSpecial Paste:=xlPasteValues
    .Range("c78").Copy
    .Range("A102").PasteSpecial Paste:=xlPasteValues
    .Range("A100:KIL615").Copy
    Worksheets("MC").Range("A4136").PasteSpecial Paste:=xlPasteValues
End If
Application.CutCopyMode = False
Set laplage = Nothing

Exemple 2 :

Workbooks.Open Filename:="D:\Vitesse_vecteurs\Nouveau\DYNAMIQUE.xlsx"
With Workbooks("DYNAMIQUE.xlsx").Worksheets("RECAP")
    .Range("B18").Copy
    .Range("H1").PasteSpecial Paste:=xlPasteValues
    .Range("A1:DB3000").Copy
    Workbooks("Analyse dynanique RECAP_v7.xlsb").Worksheets("1-10").Range("A1").PasteSpecial Paste:=xlPasteValues
    Set laplage = Nothing
    .Range("B29").Copy
    .Range("H1").PasteSpecial Paste:=xlPasteValues
    .Range("A1:DB3000").Copy
    Workbooks("Analyse dynanique RECAP_v7.xlsb").Worksheets("11-210").Range("A1").PasteSpecial Paste:=xlPasteValues
 Application.CutCopyMode = False
 Set laplage = Nothing
End With

Là je ne vois pas pourquoi vous mettez deux fois l'instruction Set laplage = Nothing

Exemple 3:

Workbooks.Open Filename:="D:\Vitesse_vecteurs\Nouveau\Analyse dynamique\Valeurs.xlsx"
Sheets(Array("01", "02", "03", "04", "05", "06")).Range("A1:KKK10000").ClearContents
With Workbooks("ADRECAP_v7.xlsm")
    .Worksheets("RECAP").EnableCalculation = False
    .Worksheets("01").Range("A1:KIL8000").Copy
End With
Workbooks("Valeurs.xlsx").Worksheets("01").Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Set laplage = Nothing

Cordialement

Merci beaucoup Dan!!!

Rechercher des sujets similaires à "probleme code copie colle"