Excel

Fermé
accro.a.lordi Messages postés 16 Date d'inscription dimanche 19 juillet 2009 Statut Membre Dernière intervention 5 février 2010 - 5 févr. 2010 à 11:50
 Utilisateur anonyme - 5 févr. 2010 à 16:29
Bonjour,

Je dois insérer des photos dans un classeur Excel, mais je ne trouve pas la solution pour qu'une photo choisie garde la taille de la cellule.

Dois-je redimensionner mes photos au préalable?
Cela aurait l'inconvénient de devoir redimensionner chaque photo une par une, ce qui prendrait des heures. De plus, je ne sais pas comment déterminer les dimensions, car les cellules sous Excel ont une unité de mesure particulière.

Y a-t-il un moyen pour que les photos gardent la dimension de la cellule?

Y a-t-il un moyen (macro…) pour appliquer des dimensions à plusieurs photos sans devoir réaliser cette opération avec un programme sur chaque photo une par une?

Comment déterminer les dimensions vu les unités de mesure dans Excel?

Y a-t-il moyen de dire à Excel d'aller chercher une photo en partant d'une référence sur plusieurs feuilles (pas la même référence et la même photo sur les feuilles bien sûr)?

Désolé pour mon cafouillage mais je suis super stressé, car je dois réaliser ce travail rapidement.

Je vous remercie pour votre aide.

7 réponses

accro.a.lordi Messages postés 16 Date d'inscription dimanche 19 juillet 2009 Statut Membre Dernière intervention 5 février 2010
5 févr. 2010 à 12:38
Bonjour,

Désolé d'insister mais quelqu'un peut-il m'aider?

Je vous remercie d'avance.
0
Utilisateur anonyme
5 févr. 2010 à 12:41
Alors, dans l'ordre :

Tu ne dois pas redimensionner tes photos avant de les importer, mais redimensionner l'image contenant ta photo une fois que tu l'as importée dans Excel.

Pour que les photos que tu insères soient aux dimensions de la cellule, il te faut d'abord lire les dimensions de ta cellule et les appliquer à ton image, (et tu t'en fous de l'unité de Excel, puisque ta cellule et ta photo utilisent la meêm unité)

Le plus simple, c'est de dimensionner ta photo juste après l'avoir insérée, ça t'évite de faire une routine complexe pour reprendre toutes tes photos déjà présentes.

Pour chaque feuille, tu vas lire la cellule contenant la référence à ta photo (Path complet et nom de fichier), puis tu utilises la commande :
Range(CelluleOuTuVasMettreTaPhoto).Select
ActiveSheet.Pictures.Insert(référenceàtaphoto).Select
Selection.ShapeRange.Width = ActiveCell.Width
Selection.ShapeRange.Height = ActiveCell.Height

Voilà. A ta dispo pour plus de détails.
0
accro.a.lordi Messages postés 16 Date d'inscription dimanche 19 juillet 2009 Statut Membre Dernière intervention 5 février 2010
5 févr. 2010 à 13:35
Bonjour Manugeo,

Tout d'abord, je te remercie pour ta réponse.

Si je dois redimensionner chaque photo après l'avoir importée, je ne vois pas trop l'utilité d'appliquer la commande que tu as décrite puisque je devrais quand même les redimensionner manuellement.

J'ai essayé ta macro mais j'ai une erreur:

Sub Macro1()
Range("E1").Select
ActiveSheet.Pictures.Insert("C1").Select
Selection.ShapeRange.Width = ActiveCell.Width
Selection.ShapeRange.Height = ActiveCell.Height
End Sub

L'erreur se produit à la ligne suivante:
ActiveSheet.Pictures.Insert("C1").Select

En C1 j'ai indiqué "40" qui est le numéro de la photo à aller chercher. Je suppose qu'il faut lui indiquer le chemin mais comment réaliser cette opération.

Il faudrait vraiment que j'apprenne les macros, elles sont vraiment intéressantes.
0
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 139
5 févr. 2010 à 14:13
bonjour,

En C1, tu ne dois pas mettre que "40", tu doit mettre le chemin complet d'ou se trouve l'image

par exemple --> D:\My Documents\Mes images\mon_image_1.jpg
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
5 févr. 2010 à 14:15
La procédure que je t'ai indiqué permet d'insérer la photo et de la redimensionner.
En voici le détail :
Range("E1").select = sélectionne la cellule E1 dans laquelle tu vas insérer la photo
ActiveSheet.Pictures.Insert("C1").Select = insère la photo
c'est normal que ça ne marche pas : Pour insérer la photo correctement, ce n'est pas "C1" que tu dois indiquer, mais le chemin complet d'accès à la photo (Ex : "C:\Photos\Photos40.jpg"). Si tu veux, tu peux indiquer ce chemin dans la cellule C1, et mettre dans ta ligne de commande ActiveSheet.Pictures.Insert(range("C1").value).Select
Selection.ShapeRange.Width = ActiveCell.Width et
Selection.ShapeRange.Height = ActiveCell.Height = appliquent à ton image les dimensions de la cellule

Voilà comment, en une seule procédure, insérer et dimensionner ta photo !
0
accro.a.lordi Messages postés 16 Date d'inscription dimanche 19 juillet 2009 Statut Membre Dernière intervention 5 février 2010
5 févr. 2010 à 16:17
Bonjour snow_frog,

Je m'en doutais un peu, mais je ne savais pas comment traduire cela en programmation (rire).

Bonjour Manugeo,

Ta macro fonctionne la hauteur est bien respectée par rapport à celle de la cellule mais pas la largeur. De plus, ta macro n'est applicable que sur une feuille pas sur plusieurs à la fois.

Néanmoins, elle est quand même très pratique et au moins je comprends le fonctionnement de cette macro (rire).

Je te remercie.
0
Utilisateur anonyme
5 févr. 2010 à 16:29
Ce code ne s'applique effectivement que sur une feuille à la fois. Tu peux le faire tourner sur toutes les feuilles de ton classeur en utilisant par exemple :

Dim MaFeuille as Sheet

For Each MaFeuille In ActiveWorkbook.Sheets
Sheets(MaFeuille.Name).Select
Range("E1").select
ActiveSheet.Pictures.Insert(range("C1").value).Select
Selection.ShapeRange.Width = Range("E1").Width
Selection.ShapeRange.Height = Range("E1").Height

Next

Pour l'histoire de la largeur, essaye en indiquant la largeur de référence à range("C1") à la place de ActiveCell...
0