Macro copier coller une plage [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
mardi 15 décembre 2015
Statut
Membre
Dernière intervention
15 décembre 2015
-
Messages postés
9760
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
5 mai 2021
-
Bonjour je m'adresse à vous les spécialiste ou amateur du VBA
j'ai un petit problème, j'ai un fichier excel qui contient plusieur feuilles je voudrai copier une plage des cellules (a7:a20) et sauter 34 lignes puis copier la plage (a41:a54) etc.... jusu'au la ligne 17000.
j'ai reussi à faire une macro dont les détails ci-après, cette macro est tres lente dans son execution puisque je n'ai pas pu copier la plage, j'ai copier ligne par ligne
c'est très long ....
merci pour votre aide
Public Sub m1()
h = 2
For I = 7 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m2()
h = 3
For I = 8 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m3()
h = 4
For I = 9 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m4()
h = 5
For I = 10 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m5()
h = 6
For I = 11 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m6()
h = 7
For I = 12 To 1700 Step 34
Sheets("bltar").Range("D" & I).copy
Sheets("valtar").Range("B" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m7()
h = 8
For I = 13 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub

Public Sub m8()
h = 9
For I = 14 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub


Public Sub m9()
h = 10
For I = 15 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m10()
h = 11
For I = 16 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m11()
h = 12
For I = 17 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m12()
h = 13
For I = 18 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub

Public Sub m13()
h = 14
For I = 19 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub
Public Sub m14()
h = 15
For I = 20 To 1700 Step 34
Sheets("bltar").Range("A" & I).copy
Sheets("valtar").Range("D" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("b" & I).copy
Sheets("valtar").Range("G" & h).PasteSpecial Paste:=xlValues
Sheets("bltar").Range("E" & I).copy
Sheets("valtar").Range("H" & h).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
h = h + 14
Next
End Sub

Sub mymacros()
m1
m2
m3
m4
m5
m6
m7
m8
m9
m10
m11
m12
m13
m14
End Sub

2 réponses

Messages postés
9760
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
5 mai 2021
2 105
Bonjour

Pour copier les plages A7:A20, ..... en un coup

Application.ScreenUpdating = False
For I = 7 To 1700 Sheets("bltar").Range("A" & I & ":A" & I + 13).Copy
etc ...

Next I
Application.ScreenUpdating = False
End Sub

RQ. Application.ScreenUpdating = False
decactive la maj de l'écran (ça réduit le temps d'exécution)

Cdlmnt
Messages postés
2
Date d'inscription
mardi 15 décembre 2015
Statut
Membre
Dernière intervention
15 décembre 2015

merci beaucoup !
ça bien marché !!!
exécution en 10 sec au lieu de 3 minutes
très bien
Messages postés
9760
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
5 mai 2021
2 105
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

Cdlmnt