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

pjthedj 5 Messages postés dimanche 11 décembre 2005Date d'inscription 4 août 2009 Dernière intervention - 31 juil. 2009 à 16:47 - Dernière réponse : pjthedj 5 Messages postés dimanche 11 décembre 2005Date d'inscription 4 août 2009 Dernière intervention
- 4 août 2009 à 14:05
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.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
us_30 2117 Messages postés lundi 11 avril 2005Date d'inscription 14 mars 2016 Dernière intervention - 4 août 2009 à 12:44
3
Merci
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.

Merci us_30 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de us_30
us_30 2117 Messages postés lundi 11 avril 2005Date d'inscription 14 mars 2016 Dernière intervention - 3 août 2009 à 17:24
1
Merci
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.
Commenter la réponse de us_30
us_30 2117 Messages postés lundi 11 avril 2005Date d'inscription 14 mars 2016 Dernière intervention - 1 août 2009 à 14:58
Commenter la réponse de us_30
pjthedj 5 Messages postés dimanche 11 décembre 2005Date d'inscription 4 août 2009 Dernière intervention - 3 août 2009 à 15:49
0
Merci
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.
Commenter la réponse de pjthedj
pjthedj 5 Messages postés dimanche 11 décembre 2005Date d'inscription 4 août 2009 Dernière intervention - 3 août 2009 à 18:45
0
Merci
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...
Commenter la réponse de pjthedj
us_30 2117 Messages postés lundi 11 avril 2005Date d'inscription 14 mars 2016 Dernière intervention - 3 août 2009 à 22:28
0
Merci
Euh... Tu as comme code quelque chose comme :

ActiveSheet.Shapes("Picture 1").Select

Est-ce bien cela ?

Amicalement,
Us.
Commenter la réponse de us_30
pjthedj 5 Messages postés dimanche 11 décembre 2005Date d'inscription 4 août 2009 Dernière intervention - 4 août 2009 à 00:57
0
Merci
C'est exact, j'ai cela comme code si j'enregistre une macro toute simple et que je sélectionne une photo...
Commenter la réponse de pjthedj
pjthedj 5 Messages postés dimanche 11 décembre 2005Date d'inscription 4 août 2009 Dernière intervention - 4 août 2009 à 14:05
0
Merci
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.
Commenter la réponse de pjthedj

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.