[VBA] Pb insertion image via macro

micaub

XLDnaute Nouveau
Bonjour à tous.

Je cherche à insérer une image (que l'utilisateur va sélectionner lui-même) dans des cases de mon tableur excel. Je sais bien que de nombreux topics ont déjà été postés sur le sujet (je les ai d'ailleurs quasiment tous épluchés), mais j'en suis arrivé à un point où je ne comprend pas ce que j'ai mal effectué dans ma programmation, pourtant relativement simple...:confused:

J'ai un Usf avec un bouton "insérer". Une fois l'image sélectionné, il faut valider le Usf et l'image doit se mettre automatiquement dans la 1ère ligne vide du classeur.

Voici des extraits de mon code (je ne peux hélas envoyer le fichier dans son ensemble ; en plus d'être assez volumineux, il comporte certaines données confidentielles...).

Private Sub BoutonInserer_Click()
Dim Photo As Variant
Photo = Application.GetOpenFilename("Fichiersbmp/gif/jpg/tiff,*.bmp;*.gif;*.jpg;*.jpeg;*.tiff")
If Photo = False Then Exit Sub 'pour le cas où l'utilisateur clique sur annuler
ImgVue.Picture = LoadPicture(Photo)
BoutonInserer.Caption = "Modifier"
End Sub
________________________________________________________________


Private Sub BoutonValider_Click()

num = Sheets("Garniture").Range("B65536").End(xlUp).Row + 1

Range("E" & num).Value = ActiveSheet.Pictures.Insert(Photo).Select




A chaque fois que je clique sur valider, un sublime "Erreur validation 1004 Impossible de lire la propriété Insert de la classe Pictures" apparait... Ai-je mal rédigé une formule ?

D'avance merci pour vos réponses.

Cordialement.

MA

PS : Par la suite, je t'enterai de redimensionner l'image dans la cellule, mis de nombreux topics en parle déjà et je devrai y arriver facilement. Sinon, le cas échéant, je vous solliciterai à nouveau si ça ne vous dérange pas :eek:
 

MichelXld

XLDnaute Barbatruc
Re : [VBA] Pb insertion image via macro

Bonsoir


Remplace

Code:
num = Sheets("Garniture").Range("B65536").End(xlUp).Row + 1
 
Range("E" & num).Value = ActiveSheet.Pictures.Insert(Photo).Select
par

Code:
Dim Shp As Shape
Dim Photo As String
Dim Num As Long
 
Num = Sheets("Garniture").Range("B65536").End(xlUp).Row + 1
 
'expression.AddPicture(FileName, LinkToFile, SaveWithDocument, _
    Left, Top, Width, Height)
Set Shp = Feuil1.Shapes.AddPicture(Photo, _
    msoFalse, _
    msoCTrue, _
    Sheets("Garniture").Range("E" & Num).Left, _
    Sheets("Garniture").Range("E" & Num).Top, _
    Sheets("Garniture").Range("E" & Num).Width, _
    Sheets("Garniture").Range("E" & Num).Height)

bonne soirée
michel
 

micaub

XLDnaute Nouveau
Re : [VBA] Pb insertion image via macro

Merci beaucoup Michel.

Il y a du progrès par rapport à ce que j'avais fait : j'arrive à insérer une photo dans mon fichier Excel.

Ceci dit, il y a encore un léger bémol. En effet, pour que le code fonctionne, il a fallu que je mette
Code:
Photo = Application.GetOpenFilename("Fichiers bmp/gif/jpg/tiff,*.bmp;*.gif;*.jpg;*.jpeg;*.tiff")
à l'intérieur du Sub BoutonValider_Click().
En effet, lorsque je le laissais au sein du Sub BoutonVue_Click(), il n'arrivait pas à lire le fichier photo (ce qui a mon avis est dû au fait que Photo devait être détruit lors du End Sub).
N'y aurait-il donc pas un moyen de préserver Photo dans un autre Sub afin que je puisse sélectionner le fichier image avant de cliquer sur le bouton Valider ?

J'espère que j'ai été assez clair dans mes explications. Merci encore du temps que vous avez bien voulu me consacrer.

Cordialement.

MA
 

MichelXld

XLDnaute Barbatruc
Re : [VBA] Pb insertion image via macro

bonjour

N'y aurait-il donc pas un moyen de préserver Photo dans un autre Sub afin que je puisse sélectionner le fichier image avant de cliquer sur le bouton Valider ?
Déclare la variable 'Photo' en tête de module, avant la première procédure :

Code:
Dim Photo As Variant
V. Les niveaux de variables


bon après midi
michel
 

micaub

XLDnaute Nouveau
Re : [VBA] Pb insertion image via macro

C'est parfait : tout ceci comble mes attentes au plus haut point. :)

Encore merci Michel et au plaisir.

Cordialement.

MA
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas