Afficher image auto dans excel (=trombi)
missvai
-
wilfried_42 Messages postés 912 Statut Contributeur -
wilfried_42 Messages postés 912 Statut Contributeur -
Bonjour,
j ai une base de donnee hommes sur excel
je l ai retraitee avec une table dynamique qui s organise comme suit :
En col A las liste des noms
de la colonne B a K une liste d infos sur chacune de ces personnes
je voudrais en colonne L un rectangle ou apparaisse automatiquement la photo de la personne de la meme ligne (automatiquement, car seolon l actualisation de la table d, le nom peut changer dans la meme ligne)
c est possible sous excel?
Merci d avance!,
j ai une base de donnee hommes sur excel
je l ai retraitee avec une table dynamique qui s organise comme suit :
En col A las liste des noms
de la colonne B a K une liste d infos sur chacune de ces personnes
je voudrais en colonne L un rectangle ou apparaisse automatiquement la photo de la personne de la meme ligne (automatiquement, car seolon l actualisation de la table d, le nom peut changer dans la meme ligne)
c est possible sous excel?
Merci d avance!,
A voir également:
- Afficher image auto dans excel (=trombi)
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Afficher le 0 devant un nombre dans excel - Guide
- Image iso - Guide
2 réponses
Bonjour
regarde ce Code pour afficher des images dans une cellule
utilisation : =Image(A1) ou si chemin différents : =Image(A1;"C:\Mes Documents\Mes Images")
ou encore : =Si(A1>"";Image(A1);"")
ou encore : =image(RechercheV(A1;Feuil2:A1:B100;2;FAUX))
plus : j'ai oublié de préciser que la taille de l'image s'adapte à la taille de la cellule où se trouve la formule, si cette cellule est fusionnée avec d'autres cellules, elle s'adapte automatiquement au bloc fusionné
regarde ce Code pour afficher des images dans une cellule
Public Function Image(img_nom As Variant, Optional chemin As String = "") As String
' Declaration des variables
Dim ref As Range, Sh As Shape, drap As Boolean
' ref : la cellule qui provoque la fonction
' sh : les shapes
' Drap : drapeau definissant si la shape est trouvée
Application.Volatile ' defini une fonction qui se recalcule automatiquement
' teste le type de variable soit une cellule soit une valeur alphanumerique
Select Case TypeName(img_nom)
Case "Range" ' c'est une reference cellule
Image = img_nom.Value
Case "String" ' c'est une valeur alphanumerique
Image = img_nom
Case Else ' c'est une erreur
Image = "#VALEUR"
Exit Function
End Select
' le chemin est un parametre optionnel, s'il est omis, la valeur est le chemin du classeur
If chemin = "" Then chemin = ThisWorkbook.Path
' le chemin ne se termine pas forcemment par \ je le rajoute
If Right(chemin, 1) <> "\" Then chemin = chemin & "\"
Set ref = Application.Caller ' affectaction à ref de la cellule qui lance la fonction
If ref.MergeCells = True Then Set ref = Range(ref.MergeArea.Address)
drap = False ' initialisation du drapeau
For Each Sh In ref.Worksheet.Shapes ' je passe en revue toute les shapes
' je teste son nom construite plus bas pour savoir si c'est la bonne shappe
If "Img-" & ref.Address = Left(Sh.Name, Len(ref.Address) + 4) Then drap = True: Exit For
Next
If drap = True Then ' c'est la bonne shape
' je teste maintenant si c'est la meme que celle de la formule pour ne pas refaire le traitement
' Le gain de temps n'est pas negligeable
If "Img-" & ref.Address & "-" & Image = Sh.Name Then GoTo fin ' egalité parfaite, je sors
End If
On Error Resume Next ' controle d'erreur, si la shape n'existe pas encore, l'instruction suivante provoque une erreur
Sh.Delete ' je detruits la shap
If Image = "" Then Exit Function ' la valeur est à "" alors pas de shape à affecter
' j'inserre la shape, avec l'image en lui mettant les tailles necessaires pour la cellule
Set Sh = ref.Worksheet.Shapes.AddPicture(chemin & Image, True, True, ref.Left, ref.Top, ref.Width, ref.Height)
Sh.Name = "Img-" & ref.Address & "-" & Image ' je definis son nom pour la trouver plus tard
fin:
Image = "Img" & ref.Address ' j'affecte un nom pour resultat
End Function
utilisation : =Image(A1) ou si chemin différents : =Image(A1;"C:\Mes Documents\Mes Images")
ou encore : =Si(A1>"";Image(A1);"")
ou encore : =image(RechercheV(A1;Feuil2:A1:B100;2;FAUX))
plus : j'ai oublié de préciser que la taille de l'image s'adapte à la taille de la cellule où se trouve la formule, si cette cellule est fusionnée avec d'autres cellules, elle s'adapte automatiquement au bloc fusionné
re:
bilou a fait fort : le copier coller
https://www.developpez.net/forums/d648561/logiciels/microsoft-office/excel/macros-vba-excel/images-inserees-automatiquement-excel/#post3811623
bilou a fait fort : le copier coller
https://www.developpez.net/forums/d648561/logiciels/microsoft-office/excel/macros-vba-excel/images-inserees-automatiquement-excel/#post3811623