Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2012, 10h51   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 76
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 76
Points : 14
Points : 14
Par défaut Problème d'insertion d'une image

Bonjour,

Je veux ajouter une image dans la première case de mon fichier Excel. J'essaye de faire ça mais ça ne fonctionne pas :

Code :
xlApp.Worksheets("Synthèse actions").Cells(1, 1).Pictures.Insert(cheminImage)
J'ai essayé sans le Cells(1, 1) ça ne marche pas non plus.

Le chemin est pourtant bon et aucune image dans le fichier Excel. Comment puis-je faire ?
J'ai essayé différents codes sur internet et j'ai retrouvé fréquemment le même code que le mien mais ça ne marche pas.

Cordialement,
Marin d'Eau Douce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 12h45   #2
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Bonjour,

Pour un autre sujet (voir exemple #12), le code suivant permet de faire une insertion d'image à une certaine plage de la feuille courante.

Charge l'image <filename> dans la plage de cellule <r>, et lui donne le nom <PictName>

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub LoadPict(PictName As String, filename As String, r As Range)
    If DoesPictExist(PictName) Then
        ActiveSheet.Pictures(PictName).Delete
    End If
 
    With ActiveSheet.Pictures.Insert(filename)
        .Name = PictName
        .Left = r.Left + 1
        .Top = r.Top
        .Width = r.Cells(1, r.Columns.Count).Left - r.Left + r.Columns(1).Width - 1
        .Height = r.Cells(r.Rows.Count, 1).Top - r.Top + r.Rows(r.Rows.Count).Height
    End With
End Sub
Fonction vérifiant l'existance d'une image de même nom dans le classeur.
Code :
1
2
3
4
5
6
7
8
9
10
11
Private Function DoesPictExist(PictName As String) As Boolean
    DoesPictExist = False
 
    Dim p As Object
    For Each p In Pictures
        If p.Name = PictName Then
            DoesPictExist = True
            Exit For
        End If
    Next p
End Function
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 13h13   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 76
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 76
Points : 14
Points : 14
Bonjour,

J'ai trouvé la solution à mon problème. Je voulais insérer une image PNG et Excel n'accepte pas ce format. En revanche avec un JPG ça marche. C'est bizarre car en VBA Access je pouvais gérer les PNG.

J'ai du coup une autre question, la taille de mon image est réduite, savez-vous comment lui donner sa taille réelle ?

Cordialement,
Marin d'Eau Douce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 13h24   #4
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Re.

Citation:
la taille de mon image est réduite, savez-vous comment lui donner sa taille réelle ?
En mettant en commentaire les lignes 10 et 11 (Width et Height)
de la fonction LoadPict envoyé précédemment.

Ou bien si une autre fonction est utilisée, en insérant l'image dans la feuille,
Code :
Worksheets("Synthèse actions").Pictures.Insert(cheminImage)
et pas dans une cellule.
Code :
Worksheets("Synthèse actions").Cells(1, 1).Pictures.Insert(cheminImage)
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h04.


 
 
 
 
Partenaires

Hébergement Web