OVH Cloud OVH Cloud

copier une image

6 réponses
Avatar
LarryBiro
Bonsoir à tous,

Voilà je voudrais copier une image (par macro) et la coller dans une
cellule.
Le probleme est que je voudrais que l'image soit centrée (horizontalement et
verticalement) dans la cellule, e je n'y arrive pas.

merci d'avance pour les réponses

Thierry

6 réponses

Avatar
MichDenis
Si tu as une image au nom de "denis" dans
ta feuille nommée "Feuil2" et que tu voudrais
qu'elle occupe toute la plage de cellules B2:D6.
tu peux essayer les procédures suivantes :

Tu peux modifier le nom des objets selon ceux
de ton application

'----------------------------
Sub TestMonImage()

InsérerImage "Feuil2", Range("b5:D6"), "denis"

End Sub
'----------------------------
Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Shapes(NomImage).OLEFormat.Object
End With
With Image
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'-----------------------------





"LarryBiro" a écrit dans le message de news:
456606e2$0$429$
Bonsoir à tous,

Voilà je voudrais copier une image (par macro) et la coller dans une
cellule.
Le probleme est que je voudrais que l'image soit centrée (horizontalement et
verticalement) dans la cellule, e je n'y arrive pas.

merci d'avance pour les réponses

Thierry
Avatar
LarryBiro
Merci pour la réponse, mais cela n'est pas exactement ce que je recherche.

j'ai la macro suivante

Sheets("Photos").Select
ActiveSheet.Shapes(photo_joueur).Copy
Sheets("comparer").Select
Range("B7").Select
ActiveSheet.Paste

Je voudrais donc que la photo soit collée au centre de la cellule B7
(verticalement et horizontalement).
or avec ma macro la photo se trouve n'importe ou dans la cellule, elle est
meme parfois en dehors de la cellule.....................

Merci d'avance pour les réponses




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

Si tu as une image au nom de "denis" dans
ta feuille nommée "Feuil2" et que tu voudrais
qu'elle occupe toute la plage de cellules B2:D6.
tu peux essayer les procédures suivantes :

Tu peux modifier le nom des objets selon ceux
de ton application

'----------------------------
Sub TestMonImage()

InsérerImage "Feuil2", Range("b5:D6"), "denis"

End Sub
'----------------------------
Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Shapes(NomImage).OLEFormat.Object
End With
With Image
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'-----------------------------





"LarryBiro" a écrit dans le message de news:
456606e2$0$429$
Bonsoir à tous,

Voilà je voudrais copier une image (par macro) et la coller dans une
cellule.
Le probleme est que je voudrais que l'image soit centrée (horizontalement
et
verticalement) dans la cellule, e je n'y arrive pas.

merci d'avance pour les réponses

Thierry





Avatar
Garette
Bonjour,

Tu veux que l'image soit contrée dans la cellule, donc elle est plus petite
en largeur et hauteur que la cellule ?
Avatar
Garette
Re-Bonjour,

Le code suivant centre le Rectangle 1 dans la cellule active.
Le rectanglre doit etre plus peti que la cellule.

Sub CentreRectangle()
With ActiveSheet.Shapes("Rectangle 1")
.Left = ActiveCell.Left + (ActiveCell.Width - .Width) / 2
.Top = ActiveCell.Top + (ActiveCell.Height - .Height) / 2
.Placement = xlMoveAndSize 'En cas de modification de la
largeur/hauteur des cellules le rectangle garde la taille de la zone
End With
End Sub
Avatar
Garette
Si l'opération doit s'effectuer sur des cellules fusionnées ou sur plusieurs
cellules, le code ci-dessous est plus adapté.

Sub CentreRectangle2()
With ActiveSheet.Shapes("Rectangle 1")
.Left = Selection.Left + (Selection.Width - .Width) / 2
.Top = Selection.Top + (Selection.Height - .Height) / 2
.Placement = xlMoveAndSize
End With
End Sub
Avatar
bertrouf
Bonjour,
J'ai cherché cette propriété là, il y a quelques temps, et j'ai fini par me
résoudre à faire un copier coller du tableau dans word. En effet, les images
dans les tableaux sont considérées comme des caractères, donc adaptées à la
cellule, centrables, etc.
Et dans Word, on peut importer les macros aussi.
Si ça aide...
Bertrouf



Bonsoir à tous,

Voilà je voudrais copier une image (par macro) et la coller dans une
cellule.
Le probleme est que je voudrais que l'image soit centrée (horizontalement et
verticalement) dans la cellule, e je n'y arrive pas.

merci d'avance pour les réponses

Thierry