Insérer une image dans un commentaire (exel)

Fermé
lebowski - 12 oct. 2008 à 17:36
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 31 mai 2012 à 22:59
Bonjour,
dans exel 2007, peut ton inserer une image (provenant de mon disque dur) dans le commentaire d'une cellule (qui n'a pas de fonction) ?

merçi de votre réponse.

15 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255
1 nov. 2008 à 20:07
Bonsoir lebowski et argixu,

Allez, j'ai pitié pour ta souris et je te propose une macro pour ajouter les images en commentaires.
- Saisir le répertoire de l'image 2 colonnes à gauche de la cellule destinée à avoir le commentaire,
- saisir le nom du fichier de l'image 1 colonne à gauche,
- sélectionner la plage des cellules recevant les commentaires
- lancer la macro

Sub AjoutImageCommentaire()
    Dim c As Range, img As String
    For Each c In Selection
        img = c.Offset(0, -2).Value & c.Offset(0, -1).Value
        On Error Resume Next
        c.AddComment
        c.Comment.Visible = True
        c.Comment.Shape.Select True
        Selection.ShapeRange.Fill.UserPicture img
        Selection.ShapeRange.LockAspectRatio = msoFalse
        c.Comment.Visible = False
    Next c
End Sub
exemple : ImgCommentaires.xls

eric
4
Utilisateur anonyme
12 oct. 2008 à 17:46
Bonjour

Insertion / Commentaires
Sélection de la boite du commentaire
Bouton droit / Format de commentaire / Clic sur flèche en face de couleur / Motifs et textures / onglet image / Sélection image : chercher le chemin / Verrouiller les proportions / OK / OK
1
Utilisateur anonyme
12 oct. 2008 à 17:53
oups... sous excel 2007 c'est :

Menu Révision / Nouveau commentaire
Sélection de la boite du commentaire
Bouton droit / Format de commentaire / -Onglet couleurs et traits- / Clic sur flèche en face de couleur / Motifs et textures / onglet image / Sélection image : chercher le chemin / Verrouiller les proportions / OK / OK
1
infiniment merci !!!!!!!!!!!!!

je pe enfin affiché des images de végétaux quand je séléctione un !

c manifique ! il me reste plu ka fére cela 2500 fois !
0
Utilisateur anonyme
1 nov. 2008 à 18:31
Ouahh !!! He ben, patience et courage pour toi ! Mais que ce sera zoli !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
1 nov. 2008 à 22:33
Bonsoir,

Géant Eric !! Je l’ai fait et même avec moi… la réfractaire aux macros…, ça marche nickel !!
Pauvre lebowski, il va attraper une tendinite… Pourvu qu’il revienne voir ton message !!
Un grand merci, encore une fois.

Bonne soirée.
0
jalé justement posez une interrogation sur les utilisations possibles de ma toute récente découverte : les macros

c bo la technologie !
je vé imédiatemeent irigé un autel aux dieux argixu et eric !

Et faire de la pub à tou mes amis de ce site merveilleux.
c'est une bible pour tout les déspéré de l'informatik .

Bref encore merci les gars.

je retourne à ma liste de plantes (taille, floraison,sol,climat,...).

Prochains objectifs : redimensionner les commentaires (comportant les foto) à la taille d'origine des photos.
faire une copie du fichier sur cd !!!!!!!!! (1 virus pourait engendrer un semtiment de suicide).
Pui enfin ralonger ma liste de végétaux d'ornement pour arriver à 5 000 espèces !!
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255
2 nov. 2008 à 09:42
Bonjour,

Tu peux fixer la taille du commentaire en ajoutant après c.Comment.Shape.Select True :
c.Comment.Shape.Height = 150 'hauteur
c.Comment.Shape.Width = 200 ' largeur

Mais il y a un pb, c'est que les images des commentaires sont intégrées au fichier excel, et il prendra une taille phénoménale si tu y mets 5000 images. Et le temps de chargement du fichier sera en conséquence...

Je te propose de faire autrement : fabriquer le commentaire lors du clic sur la cellule et de le détruire lors d'une autre sélection. Les images sont attendues dans un répertoire img qui doit être au même niveau que le fichier excel (chemin relatif pour pouvoir copier l'ensemble n'importe où, y compris sur un cd).
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim img As String
    [D:D].ClearComments
    If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
    If Target.Cells.Count <> 1 Then Exit Sub
    img = ".\img\" & Target.Value
    On Error Resume Next
    Target.AddComment
    Target.Comment.Visible = True
    Target.Comment.Shape.Select True
    Target.Comment.Shape.Height = 150 'hauteur
    Target.Comment.Shape.Width = 200 ' largeur
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Fill.UserPicture img
    Target.Comment.Visible = False
    On Error GoTo 0
End Sub

Exemple : ImgCommentaires.xls
Penser à créer le répertoire img pour tester...
eric
0
bonjour

pour le nouveau macro qui se déclanche seulement si on sélection la cellule, l'image associée n'apparait pas !

Alors que le dossier img comportant les images se situe bien à côté du fichier exel. Et que j'ai également nommé les cellules (en colonne D ).

ke s pa s til ?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255
2 nov. 2008 à 15:19
Je ne sais pas, je viens de retester c'est ok...
Le code est à coller dans le code de la feuille, pas dans un module. Teste avec le fichier exemple d'abord...
Dans un répertoire tu dois avoir le fichier excel et un sous-répertoire nommé 'img' avec tes images.
Le nom complet du fichier Hiver.jpg doit être dans la cellule, le triangle rouge indicateur de commentaire doit apparaitre au clic et le curseur souris doit être sur la cellule pour voir l'image.
Après On Error Resume Next ajoute
MsgBox (img)
une fenetre avec .\img\Hiver.jpg (par exemple) doit apparaitre au clic
eric
0
j'ai testé avec ton exemple (en respectant la création du sous-répertoire)
j'ai bien rentré la macro modifié dans la feuille 1 (dans microsoft visual basic)

une fenêtre apparait au clic

mais le commentaire ne comporte pas d'image !

?????????????????

Si tu ne peut pas m'aider, c'est pas trop grave !
Car g compris le fonctionnement de la macro "ajout image et commentaire".

J'associerai donc une photos aux genres et non aux espéces ! il y aura moins de photos donc se sera moins long à charger.

merci encore de ton aide.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255 > lebowski
2 nov. 2008 à 18:20
une fenêtre apparait au clic
Le but de cette fenetre est d'y lire le fichier (avec son chemin relatif) qui doit être chargé pour voir si correspond bien à un fichier présent.
Si c'est ok l'image doit s'afficher et tu peux supprimer cette ligne ensuite
0
mike > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
19 déc. 2008 à 11:50
y a t il une erreur ds la macro pour le chemin relatif ?
pour moi ça ne marche pas non plus;
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
19 déc. 2008 à 12:29
Bonjour tous, Eric,
Peut-être une cause de la défaillance ?
dim Chemin as string
    Chemin = ThisWoorkbook.Path
    img =Chemin &  "\img\" & Target.Value


Le directory actif n'est pas nécessairement celui de l'appli.
A+
0
peut tu donner le code complet intégré svp?
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
19 déc. 2008 à 13:40
Comme Eric ne semble pas être en ligne je me permet de continuer...
Pour être certain que tu est dans le bon répertoir;
Si tu a un répertoir disting pour ton appli ex: E:\MonAppli et que tu a créer un sous-répertoir img la fonction path convient.
Si tu à créer le répertoir ailleur, genre E:\img c'est la deuxième solution.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim img As String, Chemin as String
    [D:D].ClearComments
    If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
    If Target.Cells.Count <> 1 Then Exit Sub
    'Solution 1
    Chemin = Application.path & "\img\"
    'Solution 2
    Chemin = "E:\img\"
    img = Chemin & Target.Value
    On Error Resume Next
    Target.AddComment
    Target.Comment.Visible = True
    Target.Comment.Shape.Select True
    Target.Comment.Shape.Height = 150 'hauteur
    Target.Comment.Shape.Width = 200 ' largeur
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Fill.UserPicture img
    Target.Comment.Visible = False 'Pour enlever l'édition
    Target.Comment.Visible = True
    On Error GoTo 0
End Sub

L'emploi de chemin relatif est asser difficile à maitriser, il faudrait employer les fonctions CHDrivre et CHDir pour être sûr qu'ont est dans le bon.
A+
0
Mais comment fait on pour rajoutter cette ligne de code sur la même feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("e:e")) Is Nothing _
Then Target.Offset(0, 4).Value = Date
End Sub



ça me donne nom "ambigu"
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191 > Mike
21 déc. 2008 à 12:20
Si je comprend bien, tu veux mettre la date et qu elle ne change plus ?, si oui...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 1 And Target.Count = 1 Then
        If Target.Offset(0, 4) = "" Then
            Target.Offset(0, 4) = Date
        End If
    End If
End Sub

A+
0
mike > lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020
22 déc. 2008 à 10:27
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim img As String
[D:D].ClearComments
If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
If Target.Cells.Count <> 1 Then Exit Sub
Dim Chemin As String
Chemin = ThisWorkbook.Path
img = Chemin & "\img\" & Target.Value
On Error Resume Next
Target.AddComment
Target.Comment.Visible = True
Target.Comment.Shape.Select True
Target.Comment.Shape.Height = 150 'hauteur
Target.Comment.Shape.Width = 120 ' largeur
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Fill.UserPicture img
Target.Comment.Visible = False
On Error GoTo 0
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
If Target.Offset(0, 4) = "" Then
Target.Offset(0, 4) = Date
End If
End If
End Sub



le fait que je met ces lignes de codes dans vba j'ai un message "nom ambigu détecté" , que faudrait t il modifier?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255 > mike
22 déc. 2008 à 10:39
Bonjour,

tu as 2 sub et un seul end sub, c'est sûrement dû à ça...
Si tu dois compléter un code n'ajoute que le code qui t'interesse, sans le sub et le end sub,
ou bien laisse-les séparés et appelle l'autre pas call nom_du_sub

eric
0
mike > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
22 déc. 2008 à 11:44
je voudrais bien le code complet de la solution svp c plus facile pour moi ? (j'obtiens sois nom ambigu sois la 2eme ligne de code ne marche pas)
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255
19 déc. 2008 à 19:42
Bonsoir tout le monde,

Je me demande si le pb n'est pas dû à un bug sur excel 2007.
Je viens de tester ta version lermite. Sur 2003 c'est ok, sur 2007 rien ne s'affiche...
Il y en avait déjà un qui empêchait l'affichage d'une image dans un objet image si c'était une adresse internet de fournie. J'ai l'impression qu'il y en un de plus pour les commentaires, et là même les images locales ne s'affichent pas...

Ne pas s'axer sur le chemin relatif, dans ma version il fallait le chemin complet c:\img\collines.jpg dans la cellule.
Cette notion est apparue lorsque je lui ai conseillé
Après On Error Resume Next ajoute
MsgBox (img)
une fenetre avec .\img\Hiver.jpg (par exemple) doit apparaitre au clic

pour qu'il contrôle le repertoire des images, là excel n'affiche que le chemin relatif

Ca serait bien que ceux qui ont des pb confirme leur version excel

eric
0
Utilisateur anonyme
19 déc. 2008 à 21:44
Bonsoir tout le monde,

Est-ce que je peux intervenir. J'avais gardé le fichier d'Eric
Mais c'est pour dire que justement je n'ai pas de problème !! Sur excel 2003 et sur 2007.

Pourtant, le chemin ne respecte pas ses consignes :
- Le fichier excel est sur D:\MES DOCUMENTS\CCM (dossier mes documents qui part automatiquement sur une partition D, suite à un récent plantage de mon micro)
- Les images que je remonte sont sous sur C:\Documents and Settings\Argitxu\Mes images\ Chemin que j'ai mis dans le fic excel en colonne A sur 4 lignes avec le \ à la fin et le nom du fichier image en B : toto.jpg.

En lançant la macro sur C1-C4, mes images s'affichent sans souci.
Je viens de rajouter le MsgBox (img) à la macro, et en lançant il me demande bien de confirmer pour chacune des 4 lignes ce message : C:\Documents and Settings\Argitxu\Mes images\ . et tout remonte.
Et en rajoutant encore le c.Comment.Shape...qque chose....pour caler la hauteur, c'est toujours bon sur les 2 versions d'excel.

Bon, c'était au cas où... suis pas sûre que ça vous aide à trouver ;-)
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255
20 déc. 2008 à 00:30
Bé oui Argixu, tu peux intervenir, et tu as bien fait :-)

Du coup je me suis repenché sur le fichier que j'avais mis au post 8 car j'avais un peu oublié ce que j'avais fait...
En fait j'avais mis 2 versions :

- une avec les images stockées dans le fichier. Se sert des colonnes A, B et C pour le résultat. Une fois la macro appelée par le bouton on peut supprimer A:B. C'est la macro qui est dans le module.

- une seconde version avec les images hors fichier (dans un répertoire .\img\ sous-répertoire au niveau du fichier .xls), et c'est celle là qui pose effectivement problème. Celle-ci ne se sert que des noms de fichiers mis en colonne D. C'est la macro qui est dans la feuille.
Et comme l'a justement remarqué lermite le pb vient bien du chemin relatif que l'on corrige en remplaçant avec
img = ThisWorkbook.Path & "\img\" & Target.Value

la version corrigée ImgCommentaires.xls qui marche sur 2003 et 2007

Bonne nuit à tous
eric
0
Utilisateur anonyme
20 déc. 2008 à 16:57
Bonjour,
Eric, tu as bien compris. En fait je voulais dire à Mike que le fichier marchait bien. Mais, misère ! j’avais fait les choses à moitié. Dans le fichier que j’avais gardé sur mon disque, je ne me rappelais plus que j’avais enlevé la colonne D (peut-être pour tester plus vite), celle justement qui vous a posé souci. Donc excuses, un coup pour rien ;-)
Du coup, je l’ai essayée cette fois-ci ta dernière solution 2 en D, avec tout comme tu as dit : Un dossier avec le xls et son sous-dossier \img\ qui est excellente !
Et qui marche aussi avec le dossier copié sur clé USB pour l’emporter.

Encore Bravo et merci Eric et bien sûr aussi à Lermite et Mike.
Bonnes fêtes à vous tous.
0
Salut tout le monde, le sujet est vieux, certes, mais toujours utile !
C'est pourquoi j'ai utilisé le premier code fourni, ça marche. Mon problème c'est que mes commentaires sont des cases d'une base de données que j'utilise pour un tableau croisé dynamique. Mais le commentaire n'est pas transporté dans le tableau...
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255
31 mai 2012 à 22:59
Bonjour,

Les commentaires ne sont jamais emmenés d'une cellule vers un TCD.
Une cellule de ton TCD ne correspond pas forcément (et même presque jamais sinon ton TCD n'a aucun intérêt) à une cellule unique de la base.

eric
0