image nesnesine alt klasörden veri

Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
image nesnesine veri alırken c:\resim klasöründen alıyorum
istediğim c:\resim e ait tüm alt klasörlerde de araması
Kod:
Image1.Picture = LoadPicture("C:\resim\" & ComboBox1.Value & ".jpg")
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
image nesnesine veri alırken c:\resim klasöründen alıyorum
istediğim c:\resim e ait tüm alt klasörlerde de araması
Kod:
Image1.Picture = LoadPicture("C:\resim\" & ComboBox1.Value & ".jpg")
Verdiğiniz kod bir arama/bulma kodu değil. Sadece nesneye resim yükleme ile alakalı ...

Ne yapmak istediğinizi biraz daha açık izah ediniz.
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
şöyle hocam

comboboxtan seçtiğim isimlerle aynı isimleri taşıyan resimleri forma getiriyorum bunda problem yok

yanlız resim klasörü içine alt klasörler açmam lazım ve bunlarıda formda görüntülemem lazım
kullandığım kodlar bunlar

Kod:
Private Sub ComboBox1_Change()
On Error Resume Next
 Image1.Picture = LoadPicture("C:\resim\" & ComboBox1.Value & ".jpg")
Set s1 = Sheets("ÜRÜN")

sat = ComboBox1.ListIndex + 2
TextBox1 = s1.Cells(sat, "b")
TextBox7 = s1.Cells(sat, "c")
TextBox8 = s1.Cells(sat, "d")
TextBox9 = s1.Cells(sat, "e")
TextBox10 = s1.Cells(sat, "f")
Label7 = s1.Cells(sat, "a")
Label8 = s1.Cells(sat, "b")
End Sub

Private Sub CommandButton1_Click()
ComboBox1.Value = ""
Image1.Picture = LoadPicture("")
TextBox1.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
End Sub
Private Sub UserForm_Activate()
ComboBox1.RowSource = "ÜRÜN!A2:A" & WorksheetFunction.CountA(Worksheets("ÜRÜN").Range("A2:A65536")) + 1
End Sub

Private Sub userform_Initialize()
TextBox11.Text = [a1]
TextBox12.Text = [b1]
TextBox13.Text = [c1]
TextBox14.Text = [d1]
TextBox15.Text = [e1]
TextBox16.Text = [f1]
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Anladığım kadarıyla; Userforma bir adet daha combo koymalısınız. Ben buna "Combobox2" dedim. Combobox2 sizin alt klasörleri de belirlemenizi sağlayacak.

Aşağıdaki kodları bu hazırlık işleminden sonra kendinize adapte edebilirsiniz.

Kod:
Private Sub ComboBox2_Change()
With ComboBox2
    If .ListIndex > 0 Then
       .Text = Mid(.Text, 5, Len(.Text) - 5)
       Image1.Picture = LoadPicture("C:\resim\" & .Text & "\" & ComboBox1.Value & ".jpg")
    Else
       Image1.Picture = LoadPicture("C:\resim\" & ComboBox1.Value & ".jpg")
    End If
End With
End Sub
[COLOR=green]'---------------------------------------------------------[/COLOR]
Private Sub UserForm_Initialize()
Dim FSO As Object
Dim kls As Object
Dim baslangic_resim_klasoru As String
baslangic_resim_klasoru = "C:\resim\"
Set FSO = CreateObject("Scripting.FileSystemObject")
With ComboBox2
     .AddItem "Resim"
      For Each kls In FSO.GetFolder(baslangic_resim_klasoru).SubFolders
          .AddItem "|---" & kls.Name
      Next
     .ListIndex = 0
End With
Set FSO = Nothing
End Sub
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
dosya ekte

hocam dediğiniz gibi yaptım

olmadı

tam olarak istediğim

c:\resim\1018.jpg dosyasını combobox1 e "1018" yazdığımda bulduğu gibi
c:\resim\a\1020.jpg dosyası için combobox1 e "1020" yazdığımda çıkması

yani alt klasörlerde de bulması
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
O zaman; Combobox'ın kodunu aşağıdaki gibi değiştirin.

Kod:
Private Sub ComboBox1_Change()
[COLOR=red]Dim kls As String
kls = "C:\ff\"
With Application.FileSearch
    .NewSearch
    .LookIn = kls
    .Filename = ComboBox1 & ".jpg"
    .SearchSubFolders = True
    .Execute
    If .FoundFiles.Count > 0 Then
        Image1.Picture = LoadPicture(.FoundFiles(1))
    End If
End With
[/COLOR]On Error Resume Next
Set s1 = Sheets("ÜRÜN")
sat = ComboBox1.ListIndex + 2
TextBox1 = s1.Cells(sat, "b")
TextBox7 = s1.Cells(sat, "c")
TextBox8 = s1.Cells(sat, "d")
TextBox9 = s1.Cells(sat, "e")
TextBox10 = s1.Cells(sat, "f")
Label7 = s1.Cells(sat, "a")
Label8 = s1.Cells(sat, "b")
End Sub
 
Katılım
20 Aralık 2006
Mesajlar
939
Excel Vers. ve Dili
türkçe
hocam harika

tam olarak istediğim buydu


saygılar hürmetler
 
Katılım
8 Ekim 2004
Mesajlar
317
Excel Vers. ve Dili
EXCEL 2003 TÜRKÇE
Selamlarımla;

Bu konu üzerinnden hareketle aşağdaki kodu biraz geliştirerek kendi programıma uyarlamak istiyorum. Bu kod ilgili dizindeki resimi bulup İmage nesnesine getiriyor. Eğer ComboBoxta aranan resim ilgili dizinde bulunamazsa hata veriyor. Burada ben Şunu istiyorum. Eğer ComboBox ta aranan resim ilgili dizinde yok ise İmage nesnesi boş olarak gelsin. Örneğin bir resim arattırıldı ve bulundu diyelim. İkinci bir resim arattırılırken ikinci aranan resim varsa image nesnesine gelsin yok ise image nesnesini boşaltısın

Image1.Picture = LoadPicture("C:\resim\" & ComboBox1.Value & ".jpg")

Yardımcı olursanız sevinirim​
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Selamlarımla;​


Bu konu üzerinnden hareketle aşağdaki kodu biraz geliştirerek kendi programıma uyarlamak istiyorum. Bu kod ilgili dizindeki resimi bulup İmage nesnesine getiriyor. Eğer ComboBoxta aranan resim ilgili dizinde bulunamazsa hata veriyor. Burada ben Şunu istiyorum. Eğer ComboBox ta aranan resim ilgili dizinde yok ise İmage nesnesi boş olarak gelsin. Örneğin bir resim arattırıldı ve bulundu diyelim. İkinci bir resim arattırılırken ikinci aranan resim varsa image nesnesine gelsin yok ise image nesnesini boşaltısın​

Image1.Picture = LoadPicture("C:\resim\" & ComboBox1.Value & ".jpg")​


Yardımcı olursanız sevinirim​
Tek satırlık resim yükleme kodunuzu; şu şekilde revize ediniz.

Kod:
On Error Resume Next
Image1.Picture = LoadPicture("C:\resim\" & ComboBox1.Value & ".jpg")
If Err.Number <> 0 Then
    Image1.Picture = LoadPicture()
End If
On Error GoTo 0
 
Katılım
8 Ekim 2004
Mesajlar
317
Excel Vers. ve Dili
EXCEL 2003 TÜRKÇE
Selamlarımla;
Soruma verdiğiniz cevap istediğim cevap olmuş.Teşekkür etmek için Karşı mesaj yazmak için geç kaldım kusuruma bakmayın. Sağlıcakla kalın
 
Üst