Optimiser prg en VBA

  • Initiateur de la discussion Didier MAUCOTEL
  • Date de début
D

Didier MAUCOTEL

Guest
Salut le Forum,

Voici quelques lignes de VBA qui permettent de copier des cellules d'une feuille vers une autre en fonction de la ligne où l'on exécute le double click.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim x As Integer
x = Target.Range("A1").Row
Worksheets("Fiche").Select

Worksheets("Fichier Source").Range(Cells(x, 10), Cells(x, 10)).Copy
Worksheets("Fiche").Range("B8").PasteSpecial xlPasteFormats
Worksheets("Fiche").Range("B8") = Worksheets("Fichier Source").Range(Cells(x, 10), Cells(x, 10))

Worksheets("Fichier Source").Range(Cells(x, 11), Cells(x, 11)).Copy
Worksheets("Fiche").Range("C8").PasteSpecial xlPasteFormats
Worksheets("Fiche").Range("C8") = Worksheets("Fichier Source").Range(Cells(x, 11), Cells(x, 11))

Worksheets("Fichier Source").Range(Cells(x, 12), Cells(x, 12)).Copy
Worksheets("Fiche").Range("D8").PasteSpecial xlPasteFormats
Worksheets("Fiche").Range("D8") = Worksheets("Fichier Source").Range(Cells(x, 12), Cells(x, 12))

Application.CutCopyMode = False
End Sub


Il y a en tout plus d'une centaine de cellules à copier et je trouve cela un peu long lors de l'exécution.

Y a t'il un moyen d'écrire cela de manière plus conforme ? (je n'arrive pas à réduire la syntaxe "Range(Cells(x, 12), Cells(x, 12)" de façon à copier des paquets de cellules contigues).

Merci d'avance pour vos propositions...


Didier
 
A

Arnaud

Guest
salut,

si toutes tes cellules que tu copie se suivent tu peut faire une boucle.
par exemple pour les lignes que tu a écrit cela donne :

Dim x As Integer
x = Target.Range("A1").Row
Worksheets("Fiche").Select

For i = 2 To 4
Worksheets("Fichier Source").Range(Cells(x, 10), Cells(x, 10)).Copy
Worksheets("Fiche").Cells("8," & i).PasteSpecial xlPasteFormats
Worksheets("Fiche").Range("8," & i) = Worksheets("Fichier Source").Range(Cells(x, i + 8), Cells(x, i + 8))
Next i

donc je c pas si c adaptable a ton cas....cela dépend d'ou et vers ou tu copie.
enfin j'ai pas tester mais je le sens bien comme ça ^^
 

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi