Bonjour,
J'utilise une fonction pour afficher une image d'un répertoire /Photo/NOM PRÉNOM.jpg
Elle fonctionne très bien si je remplis les cellules pour le NOM/PRÉNOM, mais lorsque ce résultat est donné par une formule Excel bug, relance et charge l'image correctement.
Ensuite il ne veux plus afficher la moindre image avant d'être relancé.
Je fait appel à cette fonction par :
Mais si E5 et E6 son une formule, Excel bug.
Par contre manuellement ça fonctionne très bien.
D'où pourrai venir ce désagrément ?
Merci,
J'utilise une fonction pour afficher une image d'un répertoire /Photo/NOM PRÉNOM.jpg
Elle fonctionne très bien si je remplis les cellules pour le NOM/PRÉNOM, mais lorsque ce résultat est donné par une formule Excel bug, relance et charge l'image correctement.
Ensuite il ne veux plus afficher la moindre image avant d'être relancé.
Code:
Function AfficheImage(NomImage, Optional rep)
Application.Volatile
If IsMissing(rep) Then rep = ThisWorkbook.Path & "\Photo\"
Set adr = Application.Caller
Set adr2 = Range(adr.Address).MergeArea
temp = NomImage & "_" & adr.Address
Existe = False
For Each s In adr.Worksheet.Shapes
If s.Name = temp Then Existe = True
Next s
If Not Existe Then
For Each k In adr.Worksheet.Shapes
p = InStr(k.Name, "_")
If Mid(k.Name, p + 1) = adr.Address Then k.Delete
Next k
If Dir(rep & NomImage) = "" Then
AfficheImage = "Photo"
Else
Set myShell = CreateObject("Shell.Application")
If TypeName(rep) = "Range" Then
Set myFolder = myShell.Namespace(rep.Value)
Else
Set myFolder = myShell.Namespace(rep)
End If
Set myFile = myFolder.Items.Item(NomImage)
Taille = myFolder.GetDetailsOf(myFile, 26)
H = Val(Split(Taille, "x")(1))
L = Val(Split(Taille, "x")(0))
echH = adr2.Height / H
EchL = adr2.Width / L
If L * echH > adr2.Width Then ech = EchL Else ech = echH
H = H * ech
L = L * ech - 2
Set s = adr.Worksheet.Shapes.AddPicture(rep & NomImage, True, True, adr.Left, adr.Top, L, H)
s.Name = NomImage & "_" & adr.Address
AfficheImage = ""
End If
End If
End Function
Je fait appel à cette fonction par :
Code:
=AfficheImage($E$5 & " " & $E$6 & ".jpg")
Mais si E5 et E6 son une formule, Excel bug.
Par contre manuellement ça fonctionne très bien.
D'où pourrai venir ce désagrément ?
Merci,