OVH Cloud OVH Cloud

Copier Coller

7 réponses
Avatar
Guy72
Bonjour à tous,
Dans la feuille1, j'ai un tableau avec des cellules contenant des chiffres.
Dans la feuille2, j'ai aussi un tableau avec des cellules vides.
Je copie la cellule A1 de la feuille2 dans la cellule C3 de la feuille1
Je copie la cellule B1 de la feuille2 dans la cellule H3 de la feuille1
Je copie la cellule C1 de la feuille2 dans la cellule M3 de la
feuille1.................
Et ainsi de suite jusqu'à :
Je copie la cellule I9 de la feuille2 dans la cellule AQ43 de la feuille1.
J'ai fais une macro mais cela me prend environ 15 pages.

Sheets("feuil2").Select.
Range("A1").Select.
Selection.Copy.
Sheets("feuil1").Select.
Range("C3:E5").Select.
ActiveSheet.Paste.
Sheets("feuil2").Select.
Range("B1").Select.
Application.CutCopyMode = False.
Selection.Copy.
Sheets("feuil1").Select.
Range("H3:J5").Select.
ActiveSheet.Paste.
etc..........................................................

Et en plus je vois à l'éxcécution le passage d'une feuille à l'autre 81
fois.
Y a t'il une possibilité de simplifié la macro?
--
Cordialement
Guy

7 réponses

Avatar
Youky
Bonjour Guy
au plus simple
[Feuil1!C3] = [Feuil2!A1]
et ainsi de suite
ou
ici Feuil1 n'est pas le nom de l'onglet mais le nom que tu apercois en
fentre projet
Feuil1.[C3] = Feuil2.[A1]
et ainsi de suite
ou encore
Feuil1.Range("C3") = Feuil2.Range("A1")
à toi de choisir
Youky
"Guy72" a écrit dans le message de news:

Bonjour à tous,
Dans la feuille1, j'ai un tableau avec des cellules contenant des
chiffres.

Dans la feuille2, j'ai aussi un tableau avec des cellules vides.
Je copie la cellule A1 de la feuille2 dans la cellule C3 de la feuille1
Je copie la cellule B1 de la feuille2 dans la cellule H3 de la feuille1
Je copie la cellule C1 de la feuille2 dans la cellule M3 de la
feuille1.................
Et ainsi de suite jusqu'à :
Je copie la cellule I9 de la feuille2 dans la cellule AQ43 de la feuille1.
J'ai fais une macro mais cela me prend environ 15 pages.

Sheets("feuil2").Select.
Range("A1").Select.
Selection.Copy.
Sheets("feuil1").Select.
Range("C3:E5").Select.
ActiveSheet.Paste.
Sheets("feuil2").Select.
Range("B1").Select.
Application.CutCopyMode = False.
Selection.Copy.
Sheets("feuil1").Select.
Range("H3:J5").Select.
ActiveSheet.Paste.
etc..........................................................

Et en plus je vois à l'éxcécution le passage d'une feuille à l'autre 81
fois.
Y a t'il une possibilité de simplifié la macro?
--
Cordialement
Guy




Avatar
Antoine
Bonjour,

Tout à fait :

En restant dans la même syntaxe :
remplacer par :
Sheets("feuil2").Range("A1").Copy
Sheets("feuil1").Range("C3:E5").Select
ActiveSheet.Paste

Pour ce qui est de l'affichage, mettre en début de programme :
Application.ScreenUpdating = false
et éventeullement en fin de programme :
Application.ScreenUpdating = True

Antoine

"Guy72" a écrit dans le message de news:

Bonjour à tous,
Dans la feuille1, j'ai un tableau avec des cellules contenant des
chiffres.
Dans la feuille2, j'ai aussi un tableau avec des cellules vides.
Je copie la cellule A1 de la feuille2 dans la cellule C3 de la feuille1
Je copie la cellule B1 de la feuille2 dans la cellule H3 de la feuille1
Je copie la cellule C1 de la feuille2 dans la cellule M3 de la
feuille1.................
Et ainsi de suite jusqu'à :
Je copie la cellule I9 de la feuille2 dans la cellule AQ43 de la feuille1.
J'ai fais une macro mais cela me prend environ 15 pages.

Select.
Range("A1").Select.
Selection.Copy.
Sheets("feuil1").Select.
Range("C3:E5").Select.
ActiveSheet.Paste.
Sheets("feuil2").Select.
Range("B1").Select.
Application.CutCopyMode = False.
Selection.Copy.
Sheets("feuil1").Select.
Range("H3:J5").Select.
ActiveSheet.Paste.
etc..........................................................

Et en plus je vois à l'éxcécution le passage d'une feuille à l'autre 81
fois.
Y a t'il une possibilité de simplifié la macro?
--
Cordialement
Guy



Avatar
Francois L
Bonjour à tous,
Dans la feuille1, j'ai un tableau avec des cellules contenant des chiffres.
Dans la feuille2, j'ai aussi un tableau avec des cellules vides.
Je copie la cellule A1 de la feuille2 dans la cellule C3 de la feuille1
Je copie la cellule B1 de la feuille2 dans la cellule H3 de la feuille1
Je copie la cellule C1 de la feuille2 dans la cellule M3 de la
feuille1.................
Et ainsi de suite jusqu'à :
Je copie la cellule I9 de la feuille2 dans la cellule AQ43 de la feuille1.
J'ai fais une macro mais cela me prend environ 15 pages.



Bonjour,

C'est un problème de boucle...
Si j'ai bien compris ce qui suit doit le faire !

Sub test()

For i = 1 To 9
For j = 1 To 9
k = (i * 5) - 2
l = (j * 5) - 2

Sheets("Feuil1").Cells(k, l).Value = Sheets("Feuil2").Cells(i, j).Value
Next
Next
End Sub

--
François L

Avatar
Guy72
Re :
Il doit y avoir autre chose avec [Feuil1!C3] = [Feuil2!A1] ?


--
Cordialement
Guy
"Youky" a écrit dans le message de news:
44cc65cc$0$849$
Bonjour Guy
au plus simple
[Feuil1!C3] = [Feuil2!A1]
et ainsi de suite
ou
ici Feuil1 n'est pas le nom de l'onglet mais le nom que tu apercois en
fentre projet
Feuil1.[C3] = Feuil2.[A1]
et ainsi de suite
ou encore
Feuil1.Range("C3") = Feuil2.Range("A1")
à toi de choisir
Youky
"Guy72" a écrit dans le message de news:

Bonjour à tous,
Dans la feuille1, j'ai un tableau avec des cellules contenant des
chiffres.

Dans la feuille2, j'ai aussi un tableau avec des cellules vides.
Je copie la cellule A1 de la feuille2 dans la cellule C3 de la feuille1
Je copie la cellule B1 de la feuille2 dans la cellule H3 de la feuille1
Je copie la cellule C1 de la feuille2 dans la cellule M3 de la
feuille1.................
Et ainsi de suite jusqu'à :
Je copie la cellule I9 de la feuille2 dans la cellule AQ43 de la
feuille1.
J'ai fais une macro mais cela me prend environ 15 pages.

Sheets("feuil2").Select.
Range("A1").Select.
Selection.Copy.
Sheets("feuil1").Select.
Range("C3:E5").Select.
ActiveSheet.Paste.
Sheets("feuil2").Select.
Range("B1").Select.
Application.CutCopyMode = False.
Selection.Copy.
Sheets("feuil1").Select.
Range("H3:J5").Select.
ActiveSheet.Paste.
etc..........................................................

Et en plus je vois à l'éxcécution le passage d'une feuille à l'autre 81
fois.
Y a t'il une possibilité de simplifié la macro?
--
Cordialement
Guy








Avatar
Guy72
Re :
Je ne sais pas.
C'est le problème de copier des cellules qui ce suivent dans une feuille et
de les coller à des cellules qui ne se suivent pas dans une autre feuille.
Cordialement
Guy

"Francois L" a écrit dans le message de news:

Bonjour à tous,
Dans la feuille1, j'ai un tableau avec des cellules contenant des
chiffres.
Dans la feuille2, j'ai aussi un tableau avec des cellules vides.
Je copie la cellule A1 de la feuille2 dans la cellule C3 de la feuille1
Je copie la cellule B1 de la feuille2 dans la cellule H3 de la feuille1
Je copie la cellule C1 de la feuille2 dans la cellule M3 de la
feuille1.................
Et ainsi de suite jusqu'à :
Je copie la cellule I9 de la feuille2 dans la cellule AQ43 de la
feuille1.
J'ai fais une macro mais cela me prend environ 15 pages.



Bonjour,

C'est un problème de boucle...
Si j'ai bien compris ce qui suit doit le faire !

Sub test()

For i = 1 To 9
For j = 1 To 9
k = (i * 5) - 2
l = (j * 5) - 2

Sheets("Feuil1").Cells(k, l).Value = Sheets("Feuil2").Cells(i, j).Value
Next
Next
End Sub

--
François L



Avatar
Francois L
Re :
Je ne sais pas.
C'est le problème de copier des cellules qui ce suivent dans une feuille et
de les coller à des cellules qui ne se suivent pas dans une autre feuille.
Cordialement


Re,

Teste la macro que je t'ai envoyé, je crois vraiment que cela fait ce
que tu veux. Regarde l'exemple avec cette macro.

http://cjoint.com/?hEkZWUgzAp

Le vrai problème n'est pas la syntaxe mais de faire une boucle pour
éviter les 15 pages.

--
François L

Avatar
Guy72
Re :
Effectivement c'était un problème de boucle.
Quand j'ai fait le premier test avant le dossier.
J'avais changé les noms des feuilles, je pensais qu'il fallait mettre en 1er
la feuille émettrice et en 2ème la feuille réceptrice (comme le copier
coller classique) et non c'est l'inverse.
Je te remercie encore
Cordialement
Guy

"Francois L" a écrit dans le message de news:

Re :
Je ne sais pas.
C'est le problème de copier des cellules qui ce suivent dans une feuille
et de les coller à des cellules qui ne se suivent pas dans une autre
feuille.
Cordialement


Re,

Teste la macro que je t'ai envoyé, je crois vraiment que cela fait ce que
tu veux. Regarde l'exemple avec cette macro.

http://cjoint.com/?hEkZWUgzAp

Le vrai problème n'est pas la syntaxe mais de faire une boucle pour éviter
les 15 pages.

--
François L