XL 2016 import image/photo dans classeur

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Avec l'aide de mapomme et l'insertion d'un code complémentaire prise dans le forum .... un grand merci au passage :)

J'ai pu adapter les codes pour importer une image ou photo dans un classeur en redimensionnant en hauteur/largeur
en respectant les proportions.

Utilité de cette action :
Pour tout nouveau client, nous demandons qu'il importe sa photo dans le classeur que nous lui envoyons.
(classeur joint pour l'exemple)

Donc, forcément, quand notre nouveau client va nous retourner son classeur avec sa photo, nous allons l'ouvrir
sur notre ordi (donc différent du sien) et il est important que la photo y soit (c'est le but LOL).

J'ai donc voulu tester si une photo importée à partir d'un ordi est bien présente quand on ouvre le même classeur sur un autre ordi.
Apparemment il y a un souci : la photo n'est pas affichée et à la place, j'ai un message comme indiqué dans le classeur joint.

je cherche et je n'arrive pas trouver le pourquoi ... ça dépasse mes petites connaissances.
Auriez-vous la solution ?

Avec mes remerciements,
Je vous souhaite un très beau WE,
Amicalement,
lionel,
 

Pièces jointes

  • import_photo.xlsm
    39.5 KB · Affichages: 17

job75

XLDnaute Barbatruc
Bonjour Lionel,

Dans le fichier zippé joint on utilise une image ActiveX et cette macro :
VB:
Sub import_photo()
Dim fichier As Variant
With Feuil1.Image1 'nom de l'image ActiveX à adapter
    .PictureSizeMode = fmPictureSizeModeZoom
    fichier = Application.GetOpenFilename(".jpg,*.jpg,.gif,*.gif,.jpeg,*.jpeg", , "Choisissez la photo") ' choix nom du fichier
    If fichier <> False Then .Picture = LoadPicture(fichier)
End With
End Sub
A+
 

Pièces jointes

  • import_photo(1).zip
    45.2 KB · Affichages: 10

Usine à gaz

XLDnaute Barbatruc
Bon,jour Gérard,

Merci encore une fois d'être là.
Le classeur 2 importe bien l'image mais je n'y connais rien en image activeX.
J'ai besoin :
- de mettre la photo en dans la cellule L12 (cellule fusionnée),
- de la renommer "votre photo",
- de la redimensionner en respectant les proportions,
- de pouvoir la remplacer par une autre du même nom si elle ne convient pas (choix des Clients et surtout des Clientes) :),
Rien que ça LOL,

Je vais voir sur le net ce qu'est une image active X en espérant que je comprenne.

Merci aussi pour les 2 jolies filles :)
@-
lionel,
 

Usine à gaz

XLDnaute Barbatruc
Re- bonjour Gérard,

J'ai compris que je peux modifier l'emplacement en mode création (LOL. pas trop dur même pour moi).

Ce qui est impressionnant :
L'image est redimensionnée et centrée automatiquement est je ne comprends pas pourquoi ???

C'est sûr : ça va m"empêcher de dormir ce truc.

Mais merci Gérard, ça marche d'enfer :)
lionel,
 

Usine à gaz

XLDnaute Barbatruc
Re-Gérard,

je reviens sur le fil (dernière fois, je pense LOL),

Si le Client ne sélectionne pas d'image après avoir lancé ou relancé le code (il annule),
Dans ce cas, je voudrais que l'image "disparaisse" et je ne vois pas comment faire.

Encore un p'tit coup d'code pour m'aider ?

Vraiment un grand merci (je n'ai pas fini de le dire :)),
lionel,
 

Usine à gaz

XLDnaute Barbatruc
LOL non ça marche pas il supprime bien mais ne me l'affiche plus quand je sélectionne une photo :
VB:
Option Explicit

Sub import_photo()
Dim fichier As Variant
With Feuil1.Image1 'nom de l'image ActiveX à adapter
    .PictureSizeMode = fmPictureSizeModeZoom
    fichier = Application.GetOpenFilename(".jpg,*.jpg,.gif,*.gif,.jpeg,*.jpeg", , "Choisissez la photo") ' choix nom du fichier
    If fichier <> False Then .Picture = LoadPicture(fichier)
'    If fichier = False Then
'    ActiveSheet.Pictures("Image1").Visible = False
'    End If
End With
End Sub

Je continue à chercher :)
 

Usine à gaz

XLDnaute Barbatruc
C'est bon, j'ai trouvé LOL
Code:
Option Explicit

Sub import_photo()
Dim fichier As Variant
With Feuil1.Image1 'nom de l'image ActiveX à adapter
    .PictureSizeMode = fmPictureSizeModeZoom
    fichier = Application.GetOpenFilename(".jpg,*.jpg,.gif,*.gif,.jpeg,*.jpeg", , "Choisissez la photo") ' choix nom du fichier
    If fichier <> False Then .Picture = LoadPicture(fichier)
    ActiveSheet.Pictures("Image1").Visible = True
    If fichier = False Then
    ActiveSheet.Pictures("Image1").Visible = False
    End If
End With
End Sub
 

job75

XLDnaute Barbatruc
Pour effacer le contenu d'une image ActiveX il faut utiliser LoadPicture(""), fichier (3) :
VB:
Sub import_photo()
Dim fichier As Variant
With Feuil1.Image1 'nom de l'image ActiveX à adapter
    .PictureSizeMode = fmPictureSizeModeZoom
    fichier = Application.GetOpenFilename(".jpg,*.jpg,.gif,*.gif,.jpeg,*.jpeg", , "Choisissez la photo") ' choix nom du fichier
    .Picture = LoadPicture(IIf(fichier = False, "", fichier))
End With
End Sub
A+
 

Pièces jointes

  • import_photo(3).zip
    44.4 KB · Affichages: 19

Discussions similaires

Réponses
2
Affichages
376

Membres actuellement en ligne

Statistiques des forums

Discussions
314 486
Messages
2 110 107
Membres
110 666
dernier inscrit
Yaya123