• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

kosullu combobox ve resim ekleme..

Katılım
9 Aralık 2006
Mesajlar
41
Excel Vers. ve Dili
Office 2003
Herkese selamlar,

Bir çalışmaya ihtiyacım var, forumdaki konulara baktım ancak ihtiyacımı çözebilmiş değilim.. ( Belki de doğru kelimeleri aratamadım.. )

Ekteki dosyada birinci combobox'ta iller, ikincide ise ilçeler var.. Öncelikle aynı il, birden fazla gözükmemeli combobox'ta.. İkinci combobox'a ise sadece ilk combobox'ta seçtiğim ilin ilçeleri gelsin istiyorum..

Veee, asıl büyük sorun.. İkinci combobox'ta seçtiğim ilçenin bir resmini, belirlenen aralıktaki hücrelere C: folderının altındaki bir klasörden getirebilir mi?

Yardımlarınız ve desteğiniz için şimdiden çok teşekkür ederim,

gandomYeni Başlamış İleti: 13Kayıt: 09 Kas 2009 12:37
 

Ekli dosyalar

Merhaba
Resimleri gönderebilir misiniz_?
Birde resimlerin bulunduğu url'yi söylerseniz dosyanızı yapıp göndereyim.
 
Merhabalar,
Yuzlerce resim var :))
Siz sadece yol ismi ve dosya ismi icin kodu yazsaniz, olmaz mi?

İlginiz icin tekrar tesekkurler
 
tabi bunun tamamının excel ortamında olması gerekiyor..
yani userform kullanılmayacak.. Benide düşündüren bu, acaba yapılabilir mi?
 
Merhaba,

Ekteki dosyayı inceleyiniz. Biraz değişiklik yaptım.
Resim için Image nesnesini kullandım.
Resim yolunu Sheet2 sayfasında B7 hücresine yazdım, siz burayı değiştirebilirsiniz.

Her ne kadar Combobox diye sorunuzu belirttiysenizde kullandığınız combobox değildi, onları Combobox ile değiştirdim.

Resim adlarını ilçe adı ve sonu .jpg olarak düşündüm.


Sheet2 deki kodlar aşağıdaki gibidir.

Kod:
Private Sub ComboBox1_Change()
    
    Dim c   As Range, _
        Adr As String, _
        ShD As Worksheet
    
    Set ShD = Sheets("data")
    ComboBox2.Clear
    With ShD.Range("C:C")
        Set c = .Find(ComboBox1.Value, LookIn:=xlValues)
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                ComboBox2.AddItem c.Offset(0, 1).Value
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    End With
    
End Sub


Kod:
Private Sub ComboBox2_Change()
    On Error Resume Next
    Image1.Picture = LoadPicture(Range("B7").Value & ComboBox2.Value & ".jpg")
    If Err.Number > 0 Then Image1.Picture = LoadPicture("")
End Sub

Kod:
Private Sub Worksheet_Activate()
    ComboBox1.ListFillRange = "Data!B3:B84"
    ComboBox1.Value = ""
    
End Sub
 

Ekli dosyalar

Merhaba
batuhangs
İyi Çalışmalar
Sitedeki Arkadaşların
Daha Evvel Hazırladığı
Bir Uygulama Arşivimde VArdı
Umarım İşinize YArar
İyi Çalışmalar.
 
Son düzenleme:
Merhaba,

Ekteki dosyayı inceleyiniz. Biraz değişiklik yaptım.
Resim için Image nesnesini kullandım.
Resim yolunu Sheet2 sayfasında B7 hücresine yazdım, siz burayı değiştirebilirsiniz.

Her ne kadar Combobox diye sorunuzu belirttiysenizde kullandığınız combobox değildi, onları Combobox ile değiştirdim.

Resim adlarını ilçe adı ve sonu .jpg olarak düşündüm.


Sheet2 deki kodlar aşağıdaki gibidir.

Kod:
Private Sub ComboBox1_Change()
    
    Dim c   As Range, _
        Adr As String, _
        ShD As Worksheet
    
    Set ShD = Sheets("data")
    ComboBox2.Clear
    With ShD.Range("C:C")
        Set c = .Find(ComboBox1.Value, LookIn:=xlValues)
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                ComboBox2.AddItem c.Offset(0, 1).Value
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    End With
    
End Sub


Kod:
Private Sub ComboBox2_Change()
    On Error Resume Next
    Image1.Picture = LoadPicture(Range("B7").Value & ComboBox2.Value & ".jpg")
    If Err.Number > 0 Then Image1.Picture = LoadPicture("")
End Sub

Kod:
Private Sub Worksheet_Activate()
    ComboBox1.ListFillRange = "Data!B3:B84"
    ComboBox1.Value = ""
    
End Sub

Necdet Bey,

Tek kelimeyle muhteşem, emeğinize sağlık..

Küçük 1-2 sorunum kaldı.. Combobox 2'deki ilçe adını benim bir hücreye de yazdırmam lazım, çünkü oradan düşeyara ile bağlantılar yapacağım.. Mesela bunu Data F2 hücresine götürebilir miyiz ?
 
Merhaba,

İsteğinizi aslında siz de yapabilirdiniz.

Kod:
Private Sub ComboBox2_Change()
    
    On Error Resume Next
    Image1.Picture = LoadPicture(Range("B7").Value & ComboBox2.Value & ".jpg")
    If Err.Number > 0 Then Image1.Picture = LoadPicture("")
   [COLOR=red] Sheets("data").Range("F2") = ComboBox2.Value
[/COLOR]    
End Sub
 
Merhaba,

İsteğinizi aslında siz de yapabilirdiniz.

Kod:
Private Sub ComboBox2_Change()
    
    On Error Resume Next
    Image1.Picture = LoadPicture(Range("B7").Value & ComboBox2.Value & ".jpg")
    If Err.Number > 0 Then Image1.Picture = LoadPicture("")
   [COLOR=red] Sheets("data").Range("F2") = ComboBox2.Value
[/COLOR]    
End Sub



Ekledim, herkese çok ama çok çok teşekkürler..

İyi haftasonları..
 
bu yazacagım biraz lükse kaçacak ama ben bu combobox ların boyutları ile nasıl oynayabilirim?

:)
 
Necdet Bey, şimdi resimleri denedim ama resimlerde gelmiyor :(
 
Merhaba,

Tasarım modunu seçtiğinizde boyutları değiştirebilirsiniz.

Resimler konusunda ise sanırım bir yanlışlık yapıyorsunuz. Belki yolu belirtirken ben kontrol etmedim yolun sonunda ters slash olmalı C:\Resimler\ gibi

Denemelerimde şunu gördüm seçtiğiniz ilçe örneğin Ayvalık ise ve resim de AYVALIK.jpg ise sorun yaratıyor, çünkü küçük ve büyük I dan kaynaklanıyor. O yüzden ilçe adı ile bire bir örtüşen resim adı kullanırsanız sorun olmayacaktır.
 
Necdet Bey,

Ters Slash zaten ama B7 deki yol hiç değişmiyor..

Sanırım burada bir yanlışlık var ama nedir bilemedim..
 
bende combobox içindeki verilerde boşluklar var..
Mesela "abc de" ilçesine ait resmi getirmiyor ama sadece abc yi getiriyor..

Bundan olabilir mi?
 
Necdet Bey,

Ters Slash zaten ama B7 deki yol hiç değişmiyor..

Sanırım burada bir yanlışlık var ama nedir bilemedim..

Yolu sabit düşündüm, tüm resimler aynı dizin içindedir diye, sizin uygulamanız nasıl?
 
ben dizini açtım zaten
C'nin altında resimler diye bir folder açtım..

Ama dediğim gibi dosya adında arada boşluk olunca çalışmıyor.. Birde resmi belirtilen yere döşemiyor, belirtilen yerin ortasına koyuyor..

Aslında şöyle yapsak daha iyi olmaz mı?

Ben c dizini altında resimler adında bir folder açtım..

Bir hücreye sadece 2. combobox içindeki ilçeyi yazdıralım.. O ilçe ile aynı isimde bir jpeg dosyasıda resimler folderının içinde olsun.. Biz direk kodu yazarken dizini gösterelim..

Ne dersiniz?

Teşekkürler..
 
Ama dediğim gibi dosya adında arada boşluk olunca çalışmıyor.. Birde resmi belirtilen yere döşemiyor, belirtilen yerin ortasına koyuyor..

Bilgisayar açısından "Ahmet" ile "Ah met" aynı şey değildir. Bu durumda resim gelmemesi zaten doğal bir şey.

Resmin yani Image nesnesinin özelliklerine girerseniz PictureSizeMode içinde 3 seçenek vardır, ben orijinal boyutta ortalansın istedim. resmi yay derseniz görüntünün ne kadar kötü olacağını siz düşünün.

Bunlar benim için sorun olan şeyler değil, kodlar çalışıyor, resimler geliyor.
 
Bilgisayar açısından "Ahmet" ile "Ah met" aynı şey değildir. Bu durumda resim gelmemesi zaten doğal bir şey.

Resmin yani Image nesnesinin özelliklerine girerseniz PictureSizeMode içinde 3 seçenek vardır, ben orijinal boyutta ortalansın istedim. resmi yay derseniz görüntünün ne kadar kötü olacağını siz düşünün.

Bunlar benim için sorun olan şeyler değil, kodlar çalışıyor, resimler geliyor.

Ok, yardımlarınızla hallettim, çok teşekkürler..
Yanlız bu resimleri döşemem lazım.. ( Resimler ona göre seçilecektir.. ) Bu Image nesnesinin özelliklerine nereden girebilirim? Birde combobox ların boyutlarını nereden değiştirebilirim..

Bunun haricinde dosya benim için 10 numara oldu.. Umarım birçok arkadaşta bu kodlardan faydalanır..

Teşekkürler..
 
Bilgilerinizde 2003 sürüm ofis kullandığınız belirtilmiş. Benim şu an kullandığım 2010. o yüzden yardımcı olamayacağım.

Makro bölümünün ikonlarını göstertmeniz gerekir. Orada tasarım modunu görürsünüz. Aklımda kalanla anca bu kadar yardımcı olabiliyorum. Biraz araştırın. Malum 2006 yılından beri bu forumdasınız.
 
Geri
Üst