Avatar billede jath08ac Forsker
20. oktober 2017 - 11:14 Der er 4 kommentarer og
1 løsning

Fejl ved visning af billeder i Userform

Hej.

Jeg har nedenstående koder, som viser nogle billeder, afhængig af hvad du har valgt i ListBox1. Mit problem er, at hvis der ikke er nogle billeder i den angivet mappe med det navn der fremgår af listbox1, så gå koden i fejl.

Er det muligt, at lave koden sådan, at hvis der ikke er nogle billeder i mappen med det navn der fremgår af listbox1, så vises nogle foruddefinerede billeder, som også vil ligge i mappen?'

pft

If ListBox1.ListIndex <> -1 Then
                Ima1.Picture = LoadPicture( _
                "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_1.jpg")
                On Error GoTo NoCanDo
                Ima2.Picture = LoadPicture( _
                "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_2.jpg")
                On Error GoTo NoCanDo
                Ima3.Picture = LoadPicture( _
                "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_3.jpg")
                On Error GoTo NoCanDo
                Ima4.Picture = LoadPicture( _
                "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_4.jpg")
                On Error GoTo NoCanDo
                Exit Sub
                End If
Avatar billede claes57 Ekspert
20. oktober 2017 - 11:53 #1
on error skal først, og efter koden nulstiller du on error så den virker normalt

On Error GoTo NoCanDo
If ListBox1.ListIndex <> -1 Then
                Ima1.Picture = LoadPicture( _
                "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_1.jpg")
                Ima2.Picture = LoadPicture( _
                "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_2.jpg")
                Ima3.Picture = LoadPicture( _
                "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_3.jpg")
                Ima4.Picture = LoadPicture( _
                "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_4.jpg")
End If
On Error
Exit Sub
Avatar billede jath08ac Forsker
21. oktober 2017 - 13:05 #2
Men hvad skal jeg gøre, hvis jeg gerne vil have, at den skal vises et bestemt billede, f.eks. et billede hvor der står "Intet billede", i stedet for at den exit sub?
Avatar billede claes57 Ekspert
21. oktober 2017 - 13:37 #3
ret linje 2 med nopic = "J:\Sted\Afdeling\Kunder\nopic.jpg" til der, hvor dummy ligger

If ListBox1.ListIndex <> -1 Then
    nopic = "J:\Sted\Afdeling\Kunder\nopic.jpg"
    filnavn = "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_1.jpg"
    If Dir(filnavn) = "" Then
        Ima1.Picture = LoadPicture(nopic)
    Else
        Ima1.Picture = LoadPicture(filnavn)
    End If
    filnavn = "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_2.jpg"
    If Dir(filnavn) = "" Then
        Ima2.Picture = LoadPicture(nopic)
    Else
        Ima2.Picture = LoadPicture(filnavn)
    End If
    filnavn = "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_3.jpg"
    If Dir(filnavn) = "" Then
        Ima3.Picture = LoadPicture(nopic)
    Else
        Ima3.Picture = LoadPicture(filnavn)
    End If
    filnavn = "J:\Sted\Afdeling\Kunder\" & ListBox1.Value & "_4.jpg"
    If Dir(filnavn) = "" Then
        Ima4.Picture = LoadPicture(nopic)
    Else
        Ima4.Picture = LoadPicture(filnavn)
    End If
End If
Avatar billede claes57 Ekspert
21. oktober 2017 - 16:14 #4
hvis du vil, så kan du lege med at rette ned igennem (giver kortere kode)
    If Dir(filnavn) = "" Then
        Ima1.Picture = LoadPicture(nopic)
    Else
        Ima1.Picture = LoadPicture(filnavn)
    End If
til
    If Dir(filnavn) = "" Then filnavn = nopic
    Ima1.Picture = LoadPicture(filnavn)
Avatar billede Jan Hansen Ekspert
22. oktober 2017 - 04:58 #5

If ListBox1.ListIndex <> -1 Then
    Dim PathName As String, Nopic As String, FileName As String, iCount As Integer
   
    PathName = "J:\Sted\Afdeling\Kunder\" 'Sti til filer
    Nopic = PathName & "nopic.jpg" ' Navn på Standard billede
   
    For iCount = 1 To 4
        FileName = PathName & ListBox1.Value & "_" & iCount & ".jpg"
        If Dir(FileName) = "" Then
            Ima1.Picture = LoadPicture(Nopic)
        Else
            Ima1.Picture = LoadPicture(FileName)
        End If
    Next iCount
End If
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

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