OVH Cloud OVH Cloud

collage objet dans cellule

7 réponses
Avatar
Ged
Bonjour,
j'ai créé des formes que j'ai groupé et que j'ai positionné au centre d'une
cellule puis-je, en vba, copier et coller ce groupe au centre d'une cellule
(sur une autre feuille) de dimensions différentes ? Si oui, comment ?

7 réponses

Avatar
garnote
Salut Ged,

Un exemple :
Sélectionne ton groupe et appelle cette macro.

Sub CentrerImageDansCellule()
Selection.Copy
Sheets("Feuil3").Select
Range("E8").Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Range("E8").Select
End Sub

Serge


"Ged" a écrit dans le message de news:
Bonjour,
j'ai créé des formes que j'ai groupé et que j'ai positionné au centre d'une
cellule puis-je, en vba, copier et coller ce groupe au centre d'une cellule
(sur une autre feuille) de dimensions différentes ? Si oui, comment ?



Avatar
Ged
Bonjour Garnote et merci pour ta réponse.
J'ai essayé mais la macro plante sur "Set c = s.TopLeftCell" et plus
exactement sur "c=".
Le message d'erreur est le suivant "Erreur de compilation : Objet requis".

Si tu as une idée je suis preneur.




Salut Ged,

Un exemple :
Sélectionne ton groupe et appelle cette macro.

Sub CentrerImageDansCellule()
Selection.Copy
Sheets("Feuil3").Select
Range("E8").Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Range("E8").Select
End Sub

Serge


"Ged" a écrit dans le message de news:
Bonjour,
j'ai créé des formes que j'ai groupé et que j'ai positionné au centre d'une
cellule puis-je, en vba, copier et coller ce groupe au centre d'une cellule
(sur une autre feuille) de dimensions différentes ? Si oui, comment ?








Avatar
garnote
Bonjour,

Curieux, ma macro fonctionne pourtant très bien au Québec :
J'ai groupé un certain nombre de formes, j'ai sélectionné
le groupe et j'ai appelé la macro. Tout ça sous Excel 2003.

Bizz

Serge


"Ged" a écrit dans le message de news:
Bonjour Garnote et merci pour ta réponse.
J'ai essayé mais la macro plante sur "Set c = s.TopLeftCell" et plus
exactement sur "c=".
Le message d'erreur est le suivant "Erreur de compilation : Objet requis".

Si tu as une idée je suis preneur.




Salut Ged,

Un exemple :
Sélectionne ton groupe et appelle cette macro.

Sub CentrerImageDansCellule()
Selection.Copy
Sheets("Feuil3").Select
Range("E8").Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Range("E8").Select
End Sub

Serge


"Ged" a écrit dans le message de news:
Bonjour,
j'ai créé des formes que j'ai groupé et que j'ai positionné au centre d'une
cellule puis-je, en vba, copier et coller ce groupe au centre d'une cellule
(sur une autre feuille) de dimensions différentes ? Si oui, comment ?










Avatar
Ged
Bonjour Garnote, tu as raison c'est curieux, mais c'est peut-être du au reste
de la macro.

If Worksheets(TOTO).Cells(8, 1) = "biais" And
Worksheets(TOTO).Cells(9.1) = "1" Then
Windows("TEST.xls").Activate
Sheets("ENTREE DONNEES").Select
ActiveSheet.Shapes("Group
1423").Select
Selection.Copy
Windows("AUTRE PAGE".xls").Activate
Sheets("EP4).Select
Cells(9,1).Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Cells(9,1).Select

En espérant que ça peut vous aider à m'aider ;)



Bonjour,

Curieux, ma macro fonctionne pourtant très bien au Québec :
J'ai groupé un certain nombre de formes, j'ai sélectionné
le groupe et j'ai appelé la macro. Tout ça sous Excel 2003.

Bizz

Serge


"Ged" a écrit dans le message de news:
Bonjour Garnote et merci pour ta réponse.
J'ai essayé mais la macro plante sur "Set c = s.TopLeftCell" et plus
exactement sur "c=".
Le message d'erreur est le suivant "Erreur de compilation : Objet requis".

Si tu as une idée je suis preneur.




Salut Ged,

Un exemple :
Sélectionne ton groupe et appelle cette macro.

Sub CentrerImageDansCellule()
Selection.Copy
Sheets("Feuil3").Select
Range("E8").Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Range("E8").Select
End Sub

Serge


"Ged" a écrit dans le message de news:
Bonjour,
j'ai créé des formes que j'ai groupé et que j'ai positionné au centre d'une
cellule puis-je, en vba, copier et coller ce groupe au centre d'une cellule
(sur une autre feuille) de dimensions différentes ? Si oui, comment ?















Avatar
Ged
Oups, milles excuse Garnote, ta macro fonctionne trés bien, c'est juste que
la variable c était défini pour autre chose dans ma macro.

Encore un grand merci


Bonjour Garnote, tu as raison c'est curieux, mais c'est peut-être du au reste
de la macro.

If Worksheets(TOTO).Cells(8, 1) = "biais" And
Worksheets(TOTO).Cells(9.1) = "1" Then
Windows("TEST.xls").Activate
Sheets("ENTREE DONNEES").Select
ActiveSheet.Shapes("Group
1423").Select
Selection.Copy
Windows("AUTRE PAGE".xls").Activate
Sheets("EP4).Select
Cells(9,1).Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Cells(9,1).Select

En espérant que ça peut vous aider à m'aider ;)



Bonjour,

Curieux, ma macro fonctionne pourtant très bien au Québec :
J'ai groupé un certain nombre de formes, j'ai sélectionné
le groupe et j'ai appelé la macro. Tout ça sous Excel 2003.

Bizz

Serge


"Ged" a écrit dans le message de news:
Bonjour Garnote et merci pour ta réponse.
J'ai essayé mais la macro plante sur "Set c = s.TopLeftCell" et plus
exactement sur "c=".
Le message d'erreur est le suivant "Erreur de compilation : Objet requis".

Si tu as une idée je suis preneur.




Salut Ged,

Un exemple :
Sélectionne ton groupe et appelle cette macro.

Sub CentrerImageDansCellule()
Selection.Copy
Sheets("Feuil3").Select
Range("E8").Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Range("E8").Select
End Sub

Serge


"Ged" a écrit dans le message de news:
Bonjour,
j'ai créé des formes que j'ai groupé et que j'ai positionné au centre d'une
cellule puis-je, en vba, copier et coller ce groupe au centre d'une cellule
(sur une autre feuille) de dimensions différentes ? Si oui, comment ?

















Avatar
Ged
J'ai parlé trop vite, apparement tant que tu reste dans la même feuille c'est
ok, mais dés que tu colles dans une feuille différente ça ne fonctionne plus.


Oups, milles excuse Garnote, ta macro fonctionne trés bien, c'est juste que
la variable c était défini pour autre chose dans ma macro.

Encore un grand merci


Bonjour Garnote, tu as raison c'est curieux, mais c'est peut-être du au reste
de la macro.

If Worksheets(TOTO).Cells(8, 1) = "biais" And
Worksheets(TOTO).Cells(9.1) = "1" Then
Windows("TEST.xls").Activate
Sheets("ENTREE DONNEES").Select
ActiveSheet.Shapes("Group
1423").Select
Selection.Copy
Windows("AUTRE PAGE".xls").Activate
Sheets("EP4).Select
Cells(9,1).Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Cells(9,1).Select

En espérant que ça peut vous aider à m'aider ;)



Bonjour,

Curieux, ma macro fonctionne pourtant très bien au Québec :
J'ai groupé un certain nombre de formes, j'ai sélectionné
le groupe et j'ai appelé la macro. Tout ça sous Excel 2003.

Bizz

Serge


"Ged" a écrit dans le message de news:
Bonjour Garnote et merci pour ta réponse.
J'ai essayé mais la macro plante sur "Set c = s.TopLeftCell" et plus
exactement sur "c=".
Le message d'erreur est le suivant "Erreur de compilation : Objet requis".

Si tu as une idée je suis preneur.




Salut Ged,

Un exemple :
Sélectionne ton groupe et appelle cette macro.

Sub CentrerImageDansCellule()
Selection.Copy
Sheets("Feuil3").Select
Range("E8").Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Range("E8").Select
End Sub

Serge


"Ged" a écrit dans le message de news:
Bonjour,
j'ai créé des formes que j'ai groupé et que j'ai positionné au centre d'une
cellule puis-je, en vba, copier et coller ce groupe au centre d'une cellule
(sur une autre feuille) de dimensions différentes ? Si oui, comment ?



















Avatar
garnote
Salut Ged,

Chez moi tout est correct quand je change de feuille.
Il me faudrait voir ton classeur.
Tu peux me l'envoyer à cette adresse :

Sub Adresse()
Dim code()
Dim em As String
Dim i As Byte
code = Array(10559, 9359, 12946, 12050, 12271, 13406, _
10151, 2551, 4046, 13874, 10975, 9950, 10151, 12271, _
13406, 12946, 12271, 12050, 2066, 9751, 9359)
For i = LBound(code) To UBound(code)
em = em & Chr(Sqr(code(i) + 50))
Next i
MsgBox em, vbOKOnly, " Mon adresse"
End Sub

Sub CentrerImageDansCellule()
Worksheets("Feuil1").Shapes("Groupe 6").Copy
Sheets("Feuil3").Select
Range("E8").Select
ActiveSheet.Paste
Set s = Selection
Set c = s.TopLeftCell
LC = c.Left
TC = c.Top
HC = c.Height
WC = c.Width
HI = s.Height
WI = s.Width
s.Left = (2 * LC + WC - WI) / 2
s.Top = (2 * TC + HC - HI) / 2
Range("E8").Select
End Sub

Serge