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
Utilisateur anonyme - 5 févr. 2010 à 16:29
A voir également:
- Excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
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
5 févr. 2010 à 12:38
Bonjour,
Désolé d'insister mais quelqu'un peut-il m'aider?
Je vous remercie d'avance.
Désolé d'insister mais quelqu'un peut-il m'aider?
Je vous remercie d'avance.
Utilisateur anonyme
5 févr. 2010 à 12:41
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.
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.
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
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.
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.
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
5 févr. 2010 à 14:15
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 !
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 !
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
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.
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.
Utilisateur anonyme
5 févr. 2010 à 16:29
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...
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...