Microsoft 365 Insérer une image

AnthO56

XLDnaute Nouveau
Bonjour,

Je suis sur un projet professionnel, j'ai un fichier de création de Devis. J'y ai déjà apporté beaucoup de modifications afin de l'adapter à mes besoins.

Cependant, dans mon cahier des charges j'ai besoin d'insérer une Images d'illustration de chaque produit (dans la base produits) dernière colonne.
Evidemment, cette image doit être reportée dans les Devis générés (Devis EN et Devis FR).

Si une personne bien aimable serait disponible pour m'aider dans cette démarche.

Je joins donc une version du fichier. Je ne parviens pas à le joindre (trop volumineux)

"lien supprimé, site à risque" Avec toutes mes excuses je ne savais pas que Uptobox était aussi risqué.

Voici le fichier hébergé sur mon compte One-Drive.


En vous remerciant.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour,

Soit tu connais le nom de la Shape Image dans la Base produits.
VB:
Dim Image as Shape
Set Image = ThisWorkbook.Worsheets("Base produits").Shapes(<nom image>)

Soit tu ne connais pas le nom de la Shape Image dans la Base produits mais tu connais la cellule dans laquelle l'image se trouve.
VB:
Dim Image as Shape
Set Image = ImageEnCellule(ThisWorkbook.Worsheets("Base produits").Range(<cellule source de l'image>))

VB:
'--------------------------------------
'Recherche d'une image dans une cellule
'--------------------------------------
Private Function ImageEnCellule(Cellule As Range) As Shape
    Dim oShape As Shape

    For Each oShape In Cellule.Parent.Shapes
        If oShape.Type = msoPicture Then
            If oShape.TopLeftCell.Address = Cellule.Address Then
                Set ImageEnCellule = oShape
                Exit Function
            End If
        End If
    Next
    Set ImageEnCellule = Nothing
End Function

Ensuite tu la copies où il faut, par exemple positionnée dans une cellule.
VB:
If Not Image Is Nothing Then
    Image.Copy
    ThisWorkbook.Worsheets("DEVIS FR").Range(<cellule destination de l'image>).Select
    ThisWorkbook.Worsheets("DEVIS FR").Paste
End If
 

James007

XLDnaute Barbatruc

AnthO56

XLDnaute Nouveau
Bonjour,

Soit tu connais le nom de la Shape Image dans la Base produits.
VB:
Dim Image as Shape
Set Image = ThisWorkbook.Worsheets("Base produits").Shapes(<nom image>)

Soit tu ne connais pas le nom de la Shape Image dans la Base produits mais tu connais la cellule dans laquelle l'image se trouve.
VB:
Dim Image as Shape
Set Image = ImageEnCellule(ThisWorkbook.Worsheets("Base produits").Range(<cellule source de l'image>))

VB:
'--------------------------------------
'Recherche d'une image dans une cellule
'--------------------------------------
Private Function ImageEnCellule(Cellule As Range) As Shape
    Dim oShape As Shape

    For Each oShape In Cellule.Parent.Shapes
        If oShape.Type = msoPicture Then
            If oShape.TopLeftCell.Address = Cellule.Address Then
                Set ImageEnCellule = oShape
                Exit Function
            End If
        End If
    Next
    Set ImageEnCellule = Nothing
End Function

Ensuite tu la copies où il faut, par exemple positionnée dans une cellule.
VB:
If Not Image Is Nothing Then
    Image.Copy
    ThisWorkbook.Worsheets("DEVIS FR").Range(<cellule destination de l'image>).Select
    ThisWorkbook.Worsheets("DEVIS FR").Paste
End If

Bonjour,

Merci beaucoup pour cette aide.

As tu eu l'occasion de voir comment est composé mon fichier ? J'avoue avoir besoin d'un peu plus de précisions.

En fait, dans l'onglet "base produits" j'ai une liste de produits avec une référence par ligne (liste non exhaustive) elle est à compléter (environ 120 références). En dernière colonne, je souhaiterais y mettre une image correspondant à chaque référence produit.

Dans l'onglet "base devis" c'est là que je rentre les quantités désirées pour chaque produit ainsi que le client ect... Ce qui génère le devis en Français dans l'onglet "Devis FR" et en Anglais dans l'onglet "Devis EN"

C'est dans ces deux derniers onglets (Devis FR et Devis EN) que les images de la colonne "images" correspondant à chaque produit de l'onglet "base produits" doivent venir aussi s'intégrer.

En clair, même avec le code donné je ne vois pas comment m'y prendre pour l'adapter à mon fichier.

Bien cordialement.
 

AnthO56

XLDnaute Nouveau
Bonjour à tous

Attention quand même avec Uptobox qui se sert de notre ordi pour générer de la cryptomonnaie!

Bonjour,

Merci de l'info.

J'avoue avoir opté pour la facilité étant donné que mon fichier était trop volumineux pour être intégré directement sur le forum.

Cela dit, je peux le mettre sur one drive si cela est plus convenable.

Cordialement.
 

MJ13

XLDnaute Barbatruc
Sinon, essaie un autre comme transfernow ou OneDrive, pourquoi pas. :)

Je viens de faire un test avec transfernow que je retirerai après le test. Bon, après le test, par contre Windows smart screen empêche le téléchargement!

Du coup, essaie avec Onedrive, Microsoft devrait l'accepter. ;)

Tu peux aussi supprimer ce qui n'est pas indispensable dans ton fichier pour qu'il diminue de taille et que tu puisses le télécharger sur le site.

Et retire le lien dans ton premier message, sinon, c'est David qui va le faire.

Dernier test en désactivant smartcreen sur mon PC. Et là, avec transfernow, cela fonctionne. Ensuite je remets SmartScreen sur mon PC.
 
Dernière édition:

AnthO56

XLDnaute Nouveau
Sinon, essaie un autre comme transfernow ou OneDrive, pourquoi pas. :)

Je viens de faire un test avec transfernow que je retirerai après le test. Bon, après le test, par contre Windows smart screen empêche le téléchargement!

Du coup, essaie avec Onedrive, Microsoft devrait l'accepter. ;)

Tu peux aussi supprimer ce qui n'est pas indispensable dans ton fichier pour qu'il diminue de taille et que tu puisses le télécharger sur le site.

Et retire le lien dans ton premier message, sinon, c'est David qui va le faire.

Dernier test en désactivant smartcreen sur mon PC. Et là, avec transfernow, cela fonctionne. Ensuite je remets SmartScreen sur mon PC.
Dès que je suis de retour à la maison, j'héberge le fichier sur One Drive.

Merci à toi.
 

Dudu2

XLDnaute Barbatruc
Bonjour

En clair, même avec le code donné je ne vois pas comment m'y prendre pour l'adapter à mon fichier.

Il y a si peu de choses à adapter et c'est tellement simple que je ne vois vraiment pas comment t'aider davantage. Désolé.
Il va falloir que tu fasses le tout petit effort nécessaire. Ou alors fais-toi aider sur place par quelqu'un qui connait un peu le VBA.
Bonne chance.
D.
 

AnthO56

XLDnaute Nouveau
Bonjour

En clair, même avec le code donné je ne vois pas comment m'y prendre pour l'adapter à mon fichier.

Il y a si peu de choses à adapter et c'est tellement simple que je ne vois vraiment pas comment t'aider davantage. Désolé.
Il va falloir que tu fasses le tout petit effort nécessaire. Ou alors fais-toi aider sur place par quelqu'un qui connait un peu le VBA.
Bonne chance.
D.

Ce qui est évident pour certains ne l'est pas forcément pour d'autres.

Merci quand même du temps que tu as bien voulu me consacrer.

Bonnes fêtes de fin d'année.

Cordialement.
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Bonjour à tous

Voici un extrait de ton fichier pour insérer une image dans la cellule contenant la référence de l'image (nom de dossier et nom de fichier).

J'utilise aussi la Windows Images acquisition librarie (Wiaut2.dll).

Ensuite, à toi de voir comment l'exploiter.

Par contre, qelque chose m'échappe, je ne comprend as pourquoi ton fichier est si lourd, il devrait faire moins de 1 Mo.
 

Pièces jointes

  • Test_Ins_Img.xlsm
    33.5 KB · Affichages: 15
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 164
Membres
103 149
dernier inscrit
Deepkneec