OVH Cloud OVH Cloud

VBA & Copie de " Plage mobile "

3 réponses
Avatar
Golem13
Bonjour.


Je cherche à copier en VBA une "plage mobile", du moins à simplifier un des
exemples ci dessous.



===================================================
1)
Pour copier les valeurs d'une " plage fixe ", d'une feuille à une autre je
passe par :


Worksheets("Feuille2").Range("c1:v100").Value =
Worksheets("Feuille1").Range("c1:v100").Value



===================================================
2)
Pour des " plages Variables "je passe par :

Worksheets("feuille1").Select
Range(Cells(lignedebut,3), Cells(lignefin, 22)).Select
Application.CutCopyMode = False
Selection.Copy

Worksheets("feuille2").Select
Range("c2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False


Un peu long mais qui marche

==================================================
3)

Serait'il possible de simplifier l'exemple 2 , dans le style de code ci
dessous.
(code qui ne marche pas , pas encore)

Worksheets("feuille2").Range("c2").Value =
Worksheets("feuille1").Range(Cells(lignedebut, 3), Cells(lignefin,
22)).Value


Merci pour tout exemple .

@+

3 réponses

Avatar
michdenis
Bonjour Golem13,

Pour copier la plage variable de la feuille 1 vers la première cellule (c2)
de la plage en Feuille2

Worksheets("feuille1").Range(Cells(lignedebut, 3), Cells(lignefin,22)).Copy _
Worksheets("feuille2").Range("c2")


Salutations!



"Golem13" a écrit dans le message de news:chsuth$14m$
Bonjour.


Je cherche à copier en VBA une "plage mobile", du moins à simplifier un des
exemples ci dessous.



================================================== 1)
Pour copier les valeurs d'une " plage fixe ", d'une feuille à une autre je
passe par :


Worksheets("Feuille2").Range("c1:v100").Value Worksheets("Feuille1").Range("c1:v100").Value



================================================== 2)
Pour des " plages Variables "je passe par :

Worksheets("feuille1").Select
Range(Cells(lignedebut,3), Cells(lignefin, 22)).Select
Application.CutCopyMode = False
Selection.Copy

Worksheets("feuille2").Select
Range("c2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Application.CutCopyMode = False


Un peu long mais qui marche

================================================= 3)

Serait'il possible de simplifier l'exemple 2 , dans le style de code ci
dessous.
(code qui ne marche pas , pas encore)

Worksheets("feuille2").Range("c2").Value Worksheets("feuille1").Range(Cells(lignedebut, 3), Cells(lignefin,
22)).Value


Merci pour tout exemple .

@+
Avatar
Daniel.M
Golem13,

================================================== > 2)
Pour des " plages Variables "je passe par :

Worksheets("feuille1").Select
Range(Cells(lignedebut,3), Cells(lignefin, 22)).Select
Application.CutCopyMode = False
Selection.Copy

Worksheets("feuille2").Select
Range("c2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
Application.CutCopyMode = False



Worksheets("feuille2").Range("C2") _
.Resize(1 + lignefin - lignedebut, 1 + 22 - 3) = _
Worksheets("feuille1").Cells(lignedebut, 3) _
.Resize(1 + lignefin - lignedebut, 1 + 22 - 3)

Bien sûr l'expression 1+22-3 peut être simplifiée par 20 mais l'exemple se veut
pédagogique.

Salutations,

Daniel M.

Avatar
Golem13
Bonjour .

Merci beaucoup pour les exemples .


@ +