Macro copier coller une plage

Résolu/Fermé
rached2014 Messages postés 2 Date d'inscription mardi 15 décembre 2015 Statut Membre Dernière intervention 15 décembre 2015 - 15 déc. 2015 à 13:48
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 15 déc. 2015 à 22:30
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
A voir également:

2 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 15/12/2015 à 15:14
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
0
rached2014 Messages postés 2 Date d'inscription mardi 15 décembre 2015 Statut Membre Dernière intervention 15 décembre 2015
15 déc. 2015 à 22:08
merci beaucoup !
ça bien marché !!!
exécution en 10 sec au lieu de 3 minutes
très bien
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
15 déc. 2015 à 22:30
De rien

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

Cdlmnt
0