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!,
Configuration: Windows XP Firefox 3.0.4
2 réponses
-
Bonjour
regarde ce Code pour afficher des images dans une cellulePublic 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