Personel bilgileri için bir userform hazırlamaya çalışıyorum.
listboxtaki personel isimlerinden birine tıklanınca textboxlara bilgileri geliyor.
ayrıca listboxun tıklama olayındaki şu kod ile Foto klasöründen tcsi ile aynı olan fotoğraf yükleniyor.
listboxta personellere tıklandıkça bilgiler ve resim uygun olarak geliyor, eğer tc isimli jpg bulunamazsa yine foto klasöründeki 00.jpg gösteriliyor.
resmi olmayan yada yeni personel kaydı için imagea çift tıklandığında seçilen resmi tc.jpg olarak foto klasörüne otomatik kaydetsin diye image doubleclick olayına şu kodu ekledim.
Bunun üzerine farkettim ki image nesnesine tıklandıktan sonra listleden başka isim seçildiğinde textboxlar değişiyor ama image değişmiyor tıklandığı hali ile kalıyor. Formun ilk açıldığındaki LoadPicture="" tıklandı ise boş, bulunamayan bir resim tıklandı ise 00.jpg, yada hangi personel resmi ise tıklanan bundan sonraki seçimlerde o gösterilmeye devam ediyor. Aslında kodlar arkada düzgün çalışmaya devam ediyor muhtemelen çünkü kls.FileExists(ThisWorkbook.Path & "\Foto\" & bulr)=false durumunda çift tıkladığımda imageda başka bir resim görüntüleniyor olsa da 00.jpg varmış gibi davranmaya devam ediyor.
Tıklamadan sonra image nesnesi userform tekrar açılana kadar update olmuyor tıklandığı hali ile kalıyor. image'ın tıklama yada çift tıklama kodlarını silsem bile durum değişmiyor.
listboxtaki personel isimlerinden birine tıklanınca textboxlara bilgileri geliyor.
ayrıca listboxun tıklama olayındaki şu kod ile Foto klasöründen tcsi ile aynı olan fotoğraf yükleniyor.
Kod:
Set kls = CreateObject("Scripting.FileSystemObject")
buld = pertc & ".jpg"
varmıd = kls.FileExists(ThisWorkbook.Path & "\Foto\" & buld)
If varmıd = True Then
perfoto.Picture = LoadPicture(ThisWorkbook.Path & "\Foto\" & buld)
Else
perfoto.Picture = LoadPicture(ThisWorkbook.Path & "\Foto\00.jpg")
End If
resmi olmayan yada yeni personel kaydı için imagea çift tıklandığında seçilen resmi tc.jpg olarak foto klasörüne otomatik kaydetsin diye image doubleclick olayına şu kodu ekledim.
Kod:
Private Sub perfoto_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Set kls = CreateObject("Scripting.FileSystemObject")
bulr = pertc.Value & ".jpg"
varmır = kls.FileExists(ThisWorkbook.Path & "\Foto\" & bulr)
If varmır = True Then
Cancel = True
Exit Sub
Else
If MsgBox("Hazırladığınız resmi seçip eklemek istiyor musunuz?", vbQuestion + vbYesNo, "Resim Ekleme") = vbNo Then Exit Sub
Dim evn As Variant
evn = Application.GetOpenFilename("Resim Dosyaları (*.jpg", 0, "Resim dosyası", "Open", False)
If evn = False Then Exit Sub
Personel.perfoto.Picture = LoadPicture(env)
SavePicture Personel.perfoto.Picture, ThisWorkbook.Path & "\Foto\" & bulr
End If
End Sub
Bunun üzerine farkettim ki image nesnesine tıklandıktan sonra listleden başka isim seçildiğinde textboxlar değişiyor ama image değişmiyor tıklandığı hali ile kalıyor. Formun ilk açıldığındaki LoadPicture="" tıklandı ise boş, bulunamayan bir resim tıklandı ise 00.jpg, yada hangi personel resmi ise tıklanan bundan sonraki seçimlerde o gösterilmeye devam ediyor. Aslında kodlar arkada düzgün çalışmaya devam ediyor muhtemelen çünkü kls.FileExists(ThisWorkbook.Path & "\Foto\" & bulr)=false durumunda çift tıkladığımda imageda başka bir resim görüntüleniyor olsa da 00.jpg varmış gibi davranmaya devam ediyor.
Tıklamadan sonra image nesnesi userform tekrar açılana kadar update olmuyor tıklandığı hali ile kalıyor. image'ın tıklama yada çift tıklama kodlarını silsem bile durum değişmiyor.
Ekli dosyalar
Son düzenleme:
