• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Foto met Vba koppelen

Status
Niet open voor verdere reacties.

Excel01

Gebruiker
Lid geworden
13 nov 2011
Berichten
129
Ik heb een userform gemaakt om gegevens vanuit sheet Data te zien.
Ik wil op de userform ook foto's kunnen zien van geselecteerde klant. Maar dat wil niet lukken.

Textbox1 = naam van de klant. Ik wil dus als de Texbox1 naam van de klant verschijnt dat er naast de foto van hem/haar verschijnt. in een map foto's heb ik foto's van de klanten staan.

Ik heb deze code geprobeerd maar wil niet werken. Iemand een idee?
Code:
Private Sub Image1 ()
Image1.Visible = True
'TextBox1.ClearContents
'TextBox1.Select
Image1.Picture = LoadPicture("")
End Sub

Private Sub Userform1_SelectionChange(ByVal Target As Range)
Static OldCell As Range
If Target.Address = "Textbox1" Then
'Image1_Click
Exit Sub
ElseIf Target.Address = TextBox1 & ActiveCell.Row Then
TextBox1.Value = ActiveCell.Value
Image1.Visible = True
'Image1.Top = ActiveCell.Top
'Image1.Left = ActiveCell.Offset(0, 5).Left
End If

On Local Error Resume Next
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Images" & TextBox1.Value & ".jpg")
If Err Then Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Images\NoPic.jpg")

If Not OldCell Is Nothing Then
    OldCell.Interior.ColorIndex = xlColorIndexNone
End If
If Target.Address = TextBox1 & ActiveCell.Row Then
Target.Interior.ColorIndex = 6
Set OldCell = Target
End If
End Sub
 

Bijlagen

  • VBA foto.xls
    43 KB · Weergaven: 37
Laatst bewerkt:
Dat gaat veel makkelijker als je ook je document plaatst.
Gebruik tevens codetags als je code plaatst.
 
Maak van je Textbox een Combobox, zet ColumCount op 2, BoundColumn op 2 en ColumnWidths op 0 pt;50 pt en gebruik dan onderstaande.
Code:
Private Sub UserForm_Initialize()
    ComboBox1.List = Sheets("Klanten").Cells(1).CurrentRegion.Offset(1).Value
End Sub

Private Sub ComboBox1_Change()
    On Local Error Resume Next
    Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Images\" & ComboBox1.Value & ".jpg") 'afbeeldingen staan in C:\foto
    If Err Then Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Images\NoPic.jpg")
End Sub
 
Laatst bewerkt:
Hallo Bakkertje
Je bedoelt dat ik deze instellingen via een code moet wijzigen?

ColumCount op 2, BoundColumn op 2 en ColumnWidths op 0 pt;50 pt

zo iets ?

Next
With ComboBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "0;50"

dit werkt niet. Misschien kan jij mij op weg helpen.
 
Zie bijlage.
 

Bijlagen

  • VBA foto.xls
    61 KB · Weergaven: 68
Bakkertje bedankt.

Het werkt maar zou graag ipv combox Tekstbox. Ik wil namelijk zelf klantnummer kunnen intypen. Een ander ding nu wordt naam van de klant geselecteerd ipv klantnummer.
Ik heb zelf van alles gewijzigd maar dan krijg ik foutmeldingen.
Kan jij misschien helpen.
Alvast bedankt,
 
Texbox1 naam van de klant verschijnt

zelf klantnummer kunnen intypen

Welke van de twee zal het nu zijn ?

Een combobox heeft het voordeel dat je enkel de nummers toont die ook daadwerkelijk ingevoerd zijn en daarmee fouten kunnen voorkomen worden (geen foute of niet bestaande nummers inbrengen mogelijk)
 
Wat ik bedoel is dat in je eerste post je spreekt van klantnaam invoeren en nu plotseling spreek je van klantnummer invoeren dus welke zal het zijn ?
Want hoe is de naam van je foto's ? Klantnaam of klantnummer ?
 
Oh sorry ik had de vraag verkeerd begrepen.

De foto's zijn opgeslagen met klantnummer.

In dit voorbeeld is de klantnummer 20123.jpg

Klantnummers worden opgeslagen in Kolom 1 (in dit voorbeeld Kolom A2)
 
Code:
Private Sub TextBox1_AfterUpdate()
    On Local Error Resume Next
    Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Images\" & TextBox1.Value & ".jpg") 'afbeeldingen staan in C:\foto
    If Err Then Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Images\NoPic.jpg")
End Sub
 
Het staat al in de code van @Warme bakkertje.
'NoPic' veranderen in 'Leeg'.
 
Ik had eerder gereageerd dat de code werkt. Maar ik mis nog aantal dingen die ik graag er in wil hebben.
Ik gebruik deze code in Access. Hoe kan ik deze code aanpassen zodat deze ook in userform Excel ook werkt.
Ik heb van alles geprobeerd maar wil niet werken in Userform.

Code:
private sub form_current ()
me.filter on = true
dim schek as string, pad as string
image1.picture ="c:\foto"& "\"& form
if right (pad,1) <>"\"then pad = pad & "\"
schek = form.picture(image1.picture & image1.value & ".jpg")
if schek = "" then
image1 = pad & "leeg.jpg"
else
image = pad & textbox1,value & ".jpg"
end if
end sub
 
Zet de drie coderegels van @Wb in de userform initialize, en verander het pad in wat je nu gebruikt.

Plaats anders het bestand met het form erin.
 
Laatst bewerkt:
Indien textbox1 de juiste tekst bevat, druk Tabtoets.
 

Bijlagen

  • VBA foto tst.xlsb
    20,6 KB · Weergaven: 59
De code is dezelfde als die in bestand die ik gepost heb. Ik zie geen verschil?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan