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

coller une image automatiquement: taille et emplacement

16 réponses
Avatar
Greg
Bonjour,

Est-il possible de créer une macro qui permette de coller automatiquement
une image du presse papier à des dimensions précises:
http://cjoint.com/?lCoNgOceS5

Je souhaite coller en A6, ou dans une fenêtre aux mêmes dimensions, un
document qui conserverait ses proportions et exploiterait toute la largeur
ou toute la hauteur (selon le document).


Pouvez-vous m'aider?

Merci

Greg

10 réponses

1 2
Avatar
isabelle
bonjour Greg,

With ActiveSheet.Pictures.Insert("C:Mes imagesMonImage.gif")
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With

isabelle

Greg a écrit :
Bonjour,

Est-il possible de créer une macro qui permette de coller
automatiquement une image du presse papier à des dimensions précises:
http://cjoint.com/?lCoNgOceS5

Je souhaite coller en A6, ou dans une fenêtre aux mêmes dimensions, un
document qui conserverait ses proportions et exploiterait toute la
largeur ou toute la hauteur (selon le document).


Pouvez-vous m'aider?

Merci

Greg


Avatar
michdenis
Bonjour Greg,

L'image avant d'être dans le presse-papier existait quelque part !

Par exemple, pour récupérer une image d'un site Web
A ) Pour trouver son adresse, un clic droit sur l'image
Menu contextuel -> Propriété -> et tu récupères L'URL
que tu colles dans la procédure suivante :

B )Lorsque ton image est arrivé dans ta feuille de calcul,
cette image est devenu un simple contrôle dont tu peux
adapter les dimensions à celle d'une étendue de cellules.

'------------------------
Sub test()
Dim Sh As Picture
With ActiveSheet
With .Pictures
Set Sh =
.Insert("http://i.msdn.microsoft.com/cc540221.S_Somasegar(en-us,MSDN.10).jpg")
End With
Sh.Top = Range("b5").Top
Sh.Left = .Range("B5").Left
Sh.Width = .Range("B5:D5").Width
Sh.Height = .Range("B5:B12").Height
End With
End Sub
'------------------------



"Greg" a écrit dans le message de groupe de discussion :

Bonjour,

Est-il possible de créer une macro qui permette de coller automatiquement
une image du presse papier à des dimensions précises:
http://cjoint.com/?lCoNgOceS5

Je souhaite coller en A6, ou dans une fenêtre aux mêmes dimensions, un
document qui conserverait ses proportions et exploiterait toute la largeur
ou toute la hauteur (selon le document).


Pouvez-vous m'aider?

Merci

Greg
Avatar
Greg
Bonjour Isabelle et Mich et merci pour vos propositions,

- Est-il possible à partir de la proposition d'Isabelle de lancer une macro
qui permettrait de choisir l'image dans un dossier consacré (genre
"parcourir")? On double-cliquerait alors sur l'image pour la sélectionner et
elle s'insèrerait automatiquement en lieu et place aux dimensions voulues.

Cela vous parait-il possible?

Merci

Greg






"isabelle" a écrit dans le message de
news:
bonjour Greg,

With ActiveSheet.Pictures.Insert("C:Mes imagesMonImage.gif")
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With

isabelle

Greg a écrit :
Bonjour,

Est-il possible de créer une macro qui permette de coller automatiquement
une image du presse papier à des dimensions précises:
http://cjoint.com/?lCoNgOceS5

Je souhaite coller en A6, ou dans une fenêtre aux mêmes dimensions, un
document qui conserverait ses proportions et exploiterait toute la
largeur ou toute la hauteur (selon le document).


Pouvez-vous m'aider?

Merci

Greg




Avatar
FdeCourt
Salut,

Avec l'instruction :
Application.GetOpenFilename(, , , , True) :


Sub Macro2()
monFichier = Application.GetOpenFilename("Fichier
image,*.bmp;*.jpg;*.jpeg", , "Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With

End Sub


Cordialement,

F.
Avatar
Greg
Génial!

Merci beaucoup!


"FdeCourt" a écrit dans le message de
news:
Salut,

Avec l'instruction :
Application.GetOpenFilename(, , , , True) :


Sub Macro2()
monFichier = Application.GetOpenFilename("Fichier
image,*.bmp;*.jpg;*.jpeg", , "Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With

End Sub


Cordialement,

F.


Avatar
Greg
Re!

Juste une dernière chose: peut-on créer une macro qui indique le chemin par
défaut qu'il faut emprunter pour ouvrir le dossier dans lequel se trouve les
images? Si possible, je souhaite qu'il soit possible de le faire sans
rentrer dans le code (ce fichier s'adresse à des débutants, simples
utilisateurs d'excel)...

Merci

Greg


"FdeCourt" a écrit dans le message de
news:
Salut,

Avec l'instruction :
Application.GetOpenFilename(, , , , True) :


Sub Macro2()
monFichier = Application.GetOpenFilename("Fichier
image,*.bmp;*.jpg;*.jpeg", , "Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With

End Sub


Cordialement,

F.


Avatar
isabelle
bonjour Greg,

oui avec ChDir,

Sub Macro1()
ChDir "C:zaza"
monFichier =
Application.GetOpenFilename("Fichierimage,*.bmp;*.jpg;*.jpeg", ,
"Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With
End Sub

isabelle

Greg a écrit :
Re!

Juste une dernière chose: peut-on créer une macro qui indique le
chemin par défaut qu'il faut emprunter pour ouvrir le dossier dans
lequel se trouve les images? Si possible, je souhaite qu'il soit
possible de le faire sans rentrer dans le code (ce fichier s'adresse à
des débutants, simples utilisateurs d'excel)...

Merci

Greg


"FdeCourt" a écrit dans le message de
news:
Salut,

Avec l'instruction :
Application.GetOpenFilename(, , , , True) :


Sub Macro2()
monFichier = Application.GetOpenFilename("Fichier
image,*.bmp;*.jpg;*.jpeg", , "Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With

End Sub


Cordialement,

F.





Avatar
Greg
Merci Isabelle,

Je me suis certainment mal expliqué sur ce que j'attendais.

Dans le code que tu proposes, il faut rentrer le chemin dans le code.
Personnellement, je souhaitais que ce chemin puisse être défini par défaut
par l'utilisateur.
Macro 1 (à partir du fichier sélectionné dans un répertoire, la macro colle
en lieu et place aux bonnes dimensions): celle qui fait le boulot. CA, c'est
OK, impec, nickel!
Macro 2: celle qui indique à la macro 1 le chemin par défaut. Bref, une
sorte de macro, qui agit sur une autre.

Je ne suis peut-être toujours pas clair.... :-o(




"isabelle" a écrit dans le message de
news:
bonjour Greg,

oui avec ChDir,

Sub Macro1()
ChDir "C:zaza"
monFichier =
Application.GetOpenFilename("Fichierimage,*.bmp;*.jpg;*.jpeg", ,
"Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With
End Sub

isabelle

Greg a écrit :
Re!

Juste une dernière chose: peut-on créer une macro qui indique le chemin
par défaut qu'il faut emprunter pour ouvrir le dossier dans lequel se
trouve les images? Si possible, je souhaite qu'il soit possible de le
faire sans rentrer dans le code (ce fichier s'adresse à des débutants,
simples utilisateurs d'excel)...

Merci

Greg


"FdeCourt" a écrit dans le message de
news:
Salut,

Avec l'instruction :
Application.GetOpenFilename(, , , , True) :


Sub Macro2()
monFichier = Application.GetOpenFilename("Fichier
image,*.bmp;*.jpg;*.jpeg", , "Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With

End Sub


Cordialement,

F.







Avatar
FdeCourt
Pas sur de comprendre la.....
Comment veux tu que la micro sache quel chemin proposé si a un moment
tu ne lui indique pas ?
Avec Application.GetOpenFilename("Fichierimage,*.bmp;*.jpg;*.jpeg", ,
"Choisissez votre fichier", , False) tu permets à l'utilisateur de
choisir son fichier n'importe ou sur l'ordinateur (ou le réseau).

Quel chemin d'accès supplémentaire veux tu lui indiquer ?
Si tu souhaite que la boite de dialogue s’ouvre avec un chemin par
défaut, il faut bien lui indiquer lequel (mes documents par défaut je
crois).
ChDir "C:zaza" > fonctionne pour indiquer ce chemin comme chemin par
défaut.
ChDir ThisWorkbook.path va choisir comme chemin par défaut le dossier
du classeur

Cordialement,

F.
Avatar
isabelle
bonjour Greg,

si tu recherche le répertoire du fichier en cour,

x = ThisWorkBook.Path

isabelle

Greg a écrit :
Merci Isabelle,

Je me suis certainment mal expliqué sur ce que j'attendais.

Dans le code que tu proposes, il faut rentrer le chemin dans le code.
Personnellement, je souhaitais que ce chemin puisse être défini par
défaut par l'utilisateur.
Macro 1 (à partir du fichier sélectionné dans un répertoire, la macro
colle en lieu et place aux bonnes dimensions): celle qui fait le
boulot. CA, c'est OK, impec, nickel!
Macro 2: celle qui indique à la macro 1 le chemin par défaut. Bref,
une sorte de macro, qui agit sur une autre.

Je ne suis peut-être toujours pas clair.... :-o(




"isabelle" a écrit dans le message de
news:
bonjour Greg,

oui avec ChDir,

Sub Macro1()
ChDir "C:zaza"
monFichier =
Application.GetOpenFilename("Fichierimage,*.bmp;*.jpg;*.jpeg", ,
"Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With
End Sub

isabelle

Greg a écrit :
Re!

Juste une dernière chose: peut-on créer une macro qui indique le
chemin par défaut qu'il faut emprunter pour ouvrir le dossier dans
lequel se trouve les images? Si possible, je souhaite qu'il soit
possible de le faire sans rentrer dans le code (ce fichier s'adresse
à des débutants, simples utilisateurs d'excel)...

Merci

Greg


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

Salut,

Avec l'instruction :
Application.GetOpenFilename(, , , , True) :


Sub Macro2()
monFichier = Application.GetOpenFilename("Fichier
image,*.bmp;*.jpg;*.jpeg", , "Choisissez votre fichier", , False)
With ActiveSheet.Pictures.Insert(monFichier)
.Placement = xlFreeFloating
.PrintObject = True
.Locked = False
With .ShapeRange
.LockAspectRatio = msoFalse
.Top = Range("A6:C7").Top
.Left = Range("A6:C7").Left
.Width = Range("A6:C7").Width
.Height = Range("A6:C7").Height
End With
End With

End Sub


Cordialement,

F.










1 2