Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Insertion d'une image d'après condition

B

Bouba

Guest
Bonjour,

Est-il possible d'insérer une image dans une cellule d'après une condition sans passer par un formulaire ?

Exemple:

En A1 est écrit Cheval donc l'image du cheval doit s'afficher en A2
Puis en B1 est écrit Chien donc l'image du Chien doit s'afficher en B2
Puis en C1 est écrit Chat donc l'image du Chat doit s'afficher en C2
Ainsi de suite....

mERCI 0 VOUS
 
M

michel

Guest
bonjour Bouba

j'ai oublié d'envoyer une partie de mon message ...;o(

dans l'exemple , il n'y a que deux images , mais tu peux en ajouter autant que tu veux ( dans le meme repertoire que le classeur) . les images doivent etre au format bmp. tu peux modifier la macro si tu preferes les formats jpg .

le nom que tu saisies dans la cellule doit correspondre au nom d'un fichier image pour qu'il s'affiche dans la cellule de droite

bon samedi
Michel
 
B

Bouba

Guest
Boujour Michel,

Pardonnez le retard dans ma reponse mais je croyais que personne n'avait trouvé. Je vais donc essayer de m'attacher cette macro à mon projet excel. Seulement je ne maîtrise pas bien le language VBA donc je risque d'avoir de nouveau besoin de vos conseils.

D'ici là.

Merci
 
B

Bouba

Guest
Re Bonjour,


Michel, voici un exemple concret de ce que j'aimerais. En selectionnant un critère dans le menu déroulant, j'aimerais que son image s'affiche automatiquement dans la case réservée à cet effet.

Ce que vous me proposez par ailleurs est très interessant mais je ne maîtrise pas du tout les arborescences. De plus si l'on désire changer de critère (passer du chien au chat par exemple), l'image du chien reste sous celle du chat. N'est-il pas possible de supprimer automatiquement celle du chien pour mettre celle du chat.

Merci à vous
 

Pièces jointes

  • Exemple.zip
    44.1 KB · Affichages: 136
  • Exemple.zip
    44.1 KB · Affichages: 140
  • Exemple.zip
    44.1 KB · Affichages: 142
M

michel

Guest
bonjour bouba

je comprends ce que tu veux faire , mais ma version d'excel (97) ne permets pas de gérer les évenementiels des listes déroulantes ..;o( ... je ne peux donc pas tester la nouvelle version

sinon en gardant le même principe de macro : fichiers images dans le même répertoire et nommés de façon identique à la liste déroulante ( attention aux majuscules ) ,la procédure ci dessous lègèrement modifiée devrait fonctionner .
J'ai aussi intégré dans la procédure , la suppression de l'ancienne image

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Val As String
Dim MyCell As Range
Dim MyPicture As Picture
Dim Pict

On Error GoTo errorhandler
Application.ScreenUpdating = False

Val = Target.Value

With Application.FileSearch
.NewSearch
.FileName = ".bmp"
.LookIn = ThisWorkbook.Path
.SearchSubFolders = False
.Execute msoSortByFileName, msoSortOrderAscending

If .Execute > 0 Then
Set MyCell = Target.Offset(1, 0)
MyCell.Select

For Each Pict In ActiveSheet.DrawingObjects ' supprimer ancienne image dans cellule
If Pict.Height = MyCell.Height And Pict.Width = MyCell.Width Then Pict.Delete
Next

Set MyPicture = ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Val & ".bmp")
With MyPicture.ShapeRange
.LockAspectRatio = msoFalse
.Height = MyCell.Height
.Width = MyCell.Width
End With
MyCell.Select
End If

End With
Application.ScreenUpdating = True
Exit Sub

errorhandler:
Application.ScreenUpdating = True
Exit Sub
End Sub



je suis désolé de ne pouvoir mieux t'aider

bonne soirée
Michel
 
M

michel

Guest
rebonsoir bouba

pour la suppression de l'ancienne image c'est plutot ...

For Each Pict In ActiveSheet.DrawingObjects ' supprimer ancienne image dans cellule
If Pict.Left = MyCell.Left And Pict.Top = MyCell.Top Then Pict.Delete Next



bonne soirée
michel
 
B

Bouba

Guest
Bonsoir Michel,

Merci à vous c'est parfait.
Pourriez simplement me préciser 2 petites choses :
- Lorsque je veux mettre 2 images du chat par exemple mais dans des cellules différentes, l'image préalablement affichée dans la première s'efface : Pourquoi ?
- Est-il possible de configurer la macro de telle façon que l'image s'affiche dans des cellules fusionnées car pour l'instant l'image ne s'affiche que dans la première de toutes les cellules fusionnées ?
 
M

michel

Guest
rebonsoir bouba

pour les cellules fusionnées je ne sais pas trop , mais pour la premiere question ,normalement tu dois pouvoir insérer plusieurs fois la meme image dans des cellules différentes ( à moins que j'ai mal compris ta question)
as tu pris en compte le message de 18h45 , car je m'étais trompé dans la macro pour effacer l'ancienne image qui peut eventuellement etre affichée sur la cellule cible


bonne soirée
Michel
 

Discussions similaires

Réponses
68
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…