Avatar billede boro23 Forsker
22. januar 2013 - 17:38 Der er 2 kommentarer og
1 løsning

Redigere i gammel makro

Jeg har en fil hvori jeg indtaster et varenr. i celle A1, hvor der så fremkommer et billede i et kontrolelement.

Er det muligt at tilrette nedenstående makro til at vise et blankt kontrolelement, hvis der ikke findes et billede i foto databasen?

Problemet er at hvis billedet ikke findes, vises billedet fra forrige varenr. og det givet mig en del rod.


Option Explicit
Dim fname, ftype, ffolder, cell As String
Dim FSO As Object

Private Sub Worksheet_Change(ByVal Target As Range)

'Skriv mappe og filtype herunder:
ffolder = "P:\HER\Detail Planlægning\Produktionsplanlægning\Foodservice\Foto database (recept)\"
ftype = ".jpg"

'Vælg hvilken celle, der skal skrives filnavn i:
cell = "A1"


If Not Intersect(Target, Range(cell)) Is Nothing Then

Set FSO = CreateObject("Scripting.Filesystemobject")

fname = Range(cell).Value

'Billede indsættes når det er checket om filen eksisterer!
If FSO.fileexists(ffolder & fname & ftype) Then
Ark1.Image1.Picture = LoadPicture(ffolder & fname & ftype)
Else
MsgBox "Filen " & ffolder & fname & ftype & " eksisterer ikke.", vbCritical
End If

End If

End Sub
Avatar billede excelent Ekspert
23. januar 2013 - 09:13 #1
Opret et billede fx med forklarende tekst om problemet
som så kan indlæses når det billede du søger ikke findes
Navngi det fx NoPic eller lign. ret evt i koden til aktuel


Dim fname, ftype, ffolder, cell As String
Dim FSO As Object

Private Sub Worksheet_Change(ByVal Target As Range)

'Skriv mappe og filtype herunder:
ffolder = "P:\HER\Detail Planlægning\Produktionsplanlægning\Foodservice\Foto database (recept)\"
ftype = ".jpg"

'Vælg hvilken celle, der skal skrives filnavn i:
cell = "A1"

If Not Intersect(Target, Range(cell)) Is Nothing Then
Set FSO = CreateObject("Scripting.Filesystemobject")

fname = Range(cell).Value
noPic = "NoPic" '***

'Billede indsættes når det er checket om filen eksisterer!
If FSO.fileexists(ffolder & fname & ftype) Then
Ark1.Image1.Picture = LoadPicture(ffolder & fname & ftype)
Else
Ark1.Image1.Picture = LoadPicture(ffolder & noPic & ftype) '***
MsgBox "Filen " & ffolder & fname & ftype & " eksisterer ikke.", vbCritical
End If
End If

End Sub
Avatar billede boro23 Forsker
23. januar 2013 - 09:34 #2
Hej excelent

Virker perfekt, 1000 tak for hjælpen. Smider du lige et svar
Avatar billede excelent Ekspert
23. januar 2013 - 10:01 #3
velbekom
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester