Insérer une image déjà dans le fichier Excel dans une UserForm [Résolu]

Signaler
Messages postés
5
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
4 août 2009
-
Messages postés
5
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
4 août 2009
-
Bonjour,

Je crois que tout est dit dans l'objet de mon message. Je n'ai pas l'habitude de poster des messages, je m'en sors souvent avec l'aide VBA et les réponses déjà existantes sur les forums, mais là je bloque.
Je souhaite insérer automatiquement (par le code) une image déjà insérée dans le fichier excel. La commande "LoadPicture" ne semble traiter que les fichiers d'image sur le DD ce qui me pose problème en cas d'utilisation de ce fichier sur plusieurs PC (et donc de plusieurs arborescence).

Est-ce que cela est possible ? Bien que cela ne me semble pas hors du commun comme demande, je finis par douter...

Merci de votre aide.

8 réponses

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonjour,

Voilà un problème pas facile...

J'ai trouvé une solution, en passant par un graphique temporaire pour l'enregistrement d'une image. En effet, il n'existe pas de propriété pour l'enregistrement direct d'une image contenu dans Excel... Le code à adapter enregistre toutes les images de la feuil1 :

Sub SaveAllPictures()
    
    Dim Pict As Picture
    Dim Chemin As String
    
    For Each Pict In Worksheets("Feuil1").Pictures
        
        Pict.CopyPicture
        With Worksheets("Feuil1")
            With .ChartObjects.Add(0, 0, Pict.Width, Pict.Height).Chart
                .Paste
                Chemin = ThisWorkbook.Path & "" & Pict.Name & ".PNG"
                .Export Filename:=Chemin, FilterName:="PNG"
            End With
                .ChartObjects(.ChartObjects.Count).Delete
        End With
    
    Next Pict
End Sub



Il reste dans l'userform1 à charger les images, avec LoadPicture et le chemin+nom correspondant.

C'est donc la même astuce que sur le lien proposé plus haut : http://www.vbfrance.com/codes/EXEMPLE-AFFICHAGE-GRAPHIQUE-DANS-USERFORM-POUR-VBA-EXCEL_37702.aspx

Amicalement,
Us.
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Pas clair... Où sont les images ? Sur le DD ou dans Excel ? comment et où sont elles insérées dans Excel ?

Dire : "Les photos sont repris "shapes" dans une macro..." est un peu obscure... Est-ce que tu veux dire que tu utilises le menu Insertion>images>A partir du fichier ? et ensuite, dans une Userform, tu voudrais la voir apparaître ? Si oui, alors, utiliser directement LoadPicture que tu disais est la solution... en clair je ne vois pas où est ta problématique ?

Amicalement,
Us.
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Messages postés
5
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
4 août 2009

Bonjour,

Merci pour ta réponse, j'ai bien essayer avec les exemples repris dans l'exemple, mais cela fonctionne avec des objets de type graphique, et non des photos comme cela est le cas dans mon exemple.

Les photos sont repris "shapes" dans une macro...

Si vous pouvez m'aider dans cette démarche, je suis preneur.

Pierre.
Messages postés
5
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
4 août 2009

Excuse-moi, je suis pas super clair...
Les photos sont sur une feuille du fichier Excel (pas sur le DD).
Je souhaite pouvoir donner ce fichier à n'importe qui avec les photos déjà insérées sur les feuilles.
Ainsi, une macro lancerait une UserForm avec une des photos reprise sur la UserForm (en fonction de plusieurs paramètres), etc...

Espérant avoir été un peu plus clair...
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Euh... Tu as comme code quelque chose comme :

ActiveSheet.Shapes("Picture 1").Select

Est-ce bien cela ?

Amicalement,
Us.
Messages postés
5
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
4 août 2009

C'est exact, j'ai cela comme code si j'enregistre une macro toute simple et que je sélectionne une photo...
Messages postés
5
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
4 août 2009

Salut,

Je te remercie car cela fonctionne et c'est effectivement un bon palliatif à ce que je souhaitais atteindre...
Dommage qu'il n'existe pas de fonction plus simple et plus directe...

Bien à toi,

Pierre.