Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro couper coller

7 réponses
Avatar
fran25
Bonsoir,

J'aimerai a la fin d'une macro ajouter un "simple" couper-coller de 4 plages
de cellules d'une feuille sur une autre mais la macro me prend que la
premiere ? certainement simple mais ...

With Worksheets("Plan 1")
Range("N3:R50").Cut
Sheets("Plan 2").Select
Range("N3").Select
ActiveSheet.Paste
End With

With Worksheets("Plan 1")
Range("S3:S20").Copy
Sheets("Plan 2").Select
Range("S3").Select
ActiveSheet.Paste
End With

With Worksheets("Plan 1")
Range("S24:S32").Copy
Sheets("Plan 2").Select
Range("S24").Select
ActiveSheet.Paste
End With
With Worksheets("Plan 1")
Range("S36:S50").Copy
Sheets("Plan 2").Select
Range("S36").Select
ActiveSheet.Paste
End With

7 réponses

Avatar
Daniel.C
Bonjour.

A partir du premier Coller, la feuille active est la feuille PLan 2. Si
tu mets :
Range("S3:S20").Copy
La plage copiée est celle de la plage active (Plan 2)
Il faut donc mettre :
Sheets("Plan 1").Range("S3:S20").Copy
ou, puisque tu as codé :
With Worksheets("Plan 1")
tu mets simplement :
.Range("S3:S20").Copy
Le point devant Range signifie que tu te réfères à "Worksheets("Plan
1")"

Daniel

Bonsoir,

J'aimerai a la fin d'une macro ajouter un "simple" couper-coller de 4 plages
de cellules d'une feuille sur une autre mais la macro me prend que la
premiere ? certainement simple mais ...

With Worksheets("Plan 1")
Range("N3:R50").Cut
Sheets("Plan 2").Select
Range("N3").Select
ActiveSheet.Paste
End With

With Worksheets("Plan 1")
Range("S3:S20").Copy
Sheets("Plan 2").Select
Range("S3").Select
ActiveSheet.Paste
End With

With Worksheets("Plan 1")
Range("S24:S32").Copy
Sheets("Plan 2").Select
Range("S24").Select
ActiveSheet.Paste
End With
With Worksheets("Plan 1")
Range("S36:S50").Copy
Sheets("Plan 2").Select
Range("S36").Select
ActiveSheet.Paste
End With
Avatar
Daniel.C
Tu peux d'ailleurs améliorer les performances de ton code en ôtant un
maximum de "select" :

Sub test()
With Worksheets("Plan 1")
.Range("N3:R50").Cut
Sheets("Plan 2").Select
Range("N3").Select
ActiveSheet.Paste
.Range("S3:S20").Copy Range("S3")
.Range("S24:S32").Copy Range("S24")
.Range("S36:S50").Copy Range("S36")
End With
End Sub

Cordialement.
Daniel

Bonjour.

A partir du premier Coller, la feuille active est la feuille PLan 2. Si tu
mets :
Range("S3:S20").Copy
La plage copiée est celle de la plage active (Plan 2)
Il faut donc mettre :
Sheets("Plan 1").Range("S3:S20").Copy
ou, puisque tu as codé :
With Worksheets("Plan 1")
tu mets simplement :
.Range("S3:S20").Copy
Le point devant Range signifie que tu te réfères à "Worksheets("Plan 1")"

Daniel

Bonsoir,

J'aimerai a la fin d'une macro ajouter un "simple" couper-coller de 4
plages de cellules d'une feuille sur une autre mais la macro me prend que
la premiere ? certainement simple mais ...

With Worksheets("Plan 1")
Range("N3:R50").Cut
Sheets("Plan 2").Select
Range("N3").Select
ActiveSheet.Paste
End With

With Worksheets("Plan 1")
Range("S3:S20").Copy
Sheets("Plan 2").Select
Range("S3").Select
ActiveSheet.Paste
End With

With Worksheets("Plan 1")
Range("S24:S32").Copy
Sheets("Plan 2").Select
Range("S24").Select
ActiveSheet.Paste
End With
With Worksheets("Plan 1")
Range("S36:S50").Copy
Sheets("Plan 2").Select
Range("S36").Select
ActiveSheet.Paste
End With
Avatar
Modeste
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :

Tu peux d'ailleurs améliorer les performances de ton code en ôtant un
maximum de "select" :

Sub test()
With Worksheets("Plan 1")
.Range("N3:R50").Cut
Sheets("Plan 2").Select
Range("N3").Select
ActiveSheet.Paste
.Range("S3:S20").Copy Range("S3")
.Range("S24:S32").Copy Range("S24")
.Range("S36:S50").Copy Range("S36")
End With
End Sub



;o))) un maximum de Select on a dit !!!


Sub test()
Dim source As Worksheet, cible As Worksheet
Set source = Worksheets("Plan 1")
Set cible = Worksheets("Plan 2")
Application.CutCopyMode = True
source.Range("N3:R50").Cut
With cible
.Paste Destination:=.Range("N3")
source.Range("S3:S20").Copy .Range("S3")
source.Range("S24:S32").Copy .Range("S24")
source.Range("S36:S50").Copy .Range("S36")
End With
Set source = Nothing
Set cible = Nothing
End Sub
Avatar
Daniel.C
Bonjour Modeste.

Je ne sais pas faire avec "cut". Je suis preneur, si tu as une
solution.

Daniel

Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :

Tu peux d'ailleurs améliorer les performances de ton code en ôtant un
maximum de "select" :

Sub test()
With Worksheets("Plan 1")
.Range("N3:R50").Cut
Sheets("Plan 2").Select
Range("N3").Select
ActiveSheet.Paste
.Range("S3:S20").Copy Range("S3")
.Range("S24:S32").Copy Range("S24")
.Range("S36:S50").Copy Range("S36")
End With
End Sub



;o))) un maximum de Select on a dit !!!


Sub test()
Dim source As Worksheet, cible As Worksheet
Set source = Worksheets("Plan 1")
Set cible = Worksheets("Plan 2")
Application.CutCopyMode = True
source.Range("N3:R50").Cut
With cible
.Paste Destination:=.Range("N3")
source.Range("S3:S20").Copy .Range("S3")
source.Range("S24:S32").Copy .Range("S24")
source.Range("S36:S50").Copy .Range("S36")
End With
Set source = Nothing
Set cible = Nothing
End Sub
Avatar
michdenis
Bonjour Daniel,

| Je ne sais pas faire avec "cut". Je suis preneur, si tu as une solution.

Ceci ne serait-il pas suffisant ?

'---------------------------------
Sub test()
With Worksheets("Plan 1")
.Range("N3:R50").Cut Worksheets("Plan 2").Range("N3")
.Range("S3:S20").Cut Worksheets("Plan 2").Range("S3")
.Range("S24:S32").Cut Worksheets("Plan 2").Range("S24")
.Range("S36:S50").Cut Worksheets("Plan 2").Range("S36")
End With
End Sub
'---------------------------------
Avatar
Daniel.C
Bonjour Denis.
Il me semblait avoir essayé il y a longtemps et avoir pris une erreur
dans les dents. J'étais resté là-dessus. Je serais un peu moins bête ce
soir, grâce à toi.
Cordialement.
Daniel

Bonjour Daniel,

Je ne sais pas faire avec "cut". Je suis preneur, si tu as une solution.



Ceci ne serait-il pas suffisant ?

'---------------------------------
Sub test()
With Worksheets("Plan 1")
.Range("N3:R50").Cut Worksheets("Plan 2").Range("N3")
.Range("S3:S20").Cut Worksheets("Plan 2").Range("S3")
.Range("S24:S32").Cut Worksheets("Plan 2").Range("S24")
.Range("S36:S50").Cut Worksheets("Plan 2").Range("S36")
End With
End Sub
'---------------------------------
Avatar
michdenis
| Il me semblait avoir essayé

C'est ça, lorsque les connaissances s'accumulent, certaines
interfèrent avec l'acquisition de nouvelles... Tu as un
heureux problème !
;-)