Doğrulama listesinde arama

Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Merhaba,

Doğrulama listesi yaptım fakat aşağı açılan menüyü açtığımda birkaç kelime yazarak ilgili stok kartına benzeyenleri listelemiyor. Bu durumu nasıl sağlarım acaba bilen varsa yardımcı olursa çok sevinirim.

Selamlar,,
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Bilen vardır muhakkak, yardımcı olmaya da çalışırlar.
Veri Doğrulama ile yaptığınız açılır menüye nasıl birkaç kelime yazdınız onu anlamadım.

Dosyanız ekleyebilir misiniz ?
 
Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Merhaba,

Mesela doğrulama ile ilgili bir liste tanımladık. Liste çok satırlı ve geniş. Kullanıcı "1000W" yazdığı anda başı "1000W ile başlayan stok kartlarını getirmeli veya hücre içinde tavsiye etmelidir. B6 hücresinde denemenizi rica ederim. Umarım anlatabilmişimdir.

Selamlar,

Örnek ektedir.
 

Ekli dosyalar

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Fuat Bey, sayfaya bir ComboBox ilave edin, adına Emre yazın ve ComboBox'ın verileri alacağı alanı seçip, alan adını "veri" yapın.

Kod:
Dim nvE As Object

Private Sub Emre_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   If KeyCode = 13 Then
      nvE.Visible = False
      ActiveCell.Offset(1, 0).Select
   End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   On Error Resume Next
   Set nvE = ActiveSheet.OLEObjects("Emre")
   On Error GoTo 0
   If nvE Is Nothing Then
      With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
                                      Width:=Target.Width, _
                                      Height:=Target.Height)
         .Name = "Emre"
      End With
      Set nvE = ActiveSheet.OLEObjects("Emre")
   End If

   Set Target = Intersect(Target, Range("B:B"))
   If Target Is Nothing Then
      nvE.Visible = False
      nvE.LinkedCell = ""
      Exit Sub
   ElseIf Target.Count > 1 Or Target.Row = 1 Then
      nvE.Visible = False
      nvE.LinkedCell = ""
      Exit Sub
   End If

   With nvE
      Application.ScreenUpdating = False
      .Top = Target.Top
      .Left = Target.Left
      .ListFillRange = "veri"
      .LinkedCell = Target.Address
      .Enabled = True
      .Visible = True
      .Activate
   End With
End Sub
Dosyayı da ekliyorum...
 

Ekli dosyalar

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,824
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba,

Mesela doğrulama ile ilgili bir liste tanımladık. Liste çok satırlı ve geniş. Kullanıcı "1000W" yazdığı anda başı "1000W ile başlayan stok kartlarını getirmeli veya hücre içinde tavsiye etmelidir. B6 hücresinde denemenizi rica ederim. Umarım anlatabilmişimdir.

Selamlar,

Örnek ektedir.
Merhaba
B6 hücresinde doğrulama mevcut değil. Ayrıca listeyi nereden alacak veriler sekmesininden mi_? Veriler sekmesi sıralı olmasının sizin için bir sıkıntısı var mı_?
 
Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Murat bey cevap için çok teşekkür ederim.

Bu durumu kod yazmadan doğrulama işleminin standart özellikleri ile yapmak istiyorum. Çünkü bu dosya zaman zaman 2003 formatındaki office programında da çalıştırılacak. Böyle olunca uyumsuzluklar meydana gelebiliyor.

En önemlisi ise tablo çok dinamik olduğu için zaman zaman kullanıcı satır silip aralara satır ekleyecektir. Bu durumda combobox ekleme ve çıkarma olacağı için sıkıntı olacaktır.

Kısacası doğrulamanın standart veya formul ile böyle bir durumu sağlamak mümkünmüdür.

Selamlar,
 
Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Merhaba
B6 hücresinde doğrulama mevcut değil. Ayrıca listeyi nereden alacak veriler sekmesininden mi_? Veriler sekmesi sıralı olmasının sizin için bir sıkıntısı var mı_?

Evet veriler sayfasından alacak. Ayrıca sıralı olmasının hiçbir mahsuru yok.

Selamlar
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Dediğiniz sıkıntıların olacağını sanmıyorum...
Yazdıklarınızdan da eklediğim dosyayı denemediğinizi düşünüyorum...

Dosyayı Excel 97-2003 Çalışma Kitabı olarak kaydederseniz, her versiyonda çalışır.

İstediğiniz kadar satır ekleyip silin farketmez. Hangi hücreyi seçerseniz ComboBox orada görüntülenir.

Hoşça kalın !!!
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,824
Excel Vers. ve Dili
Excel 2007 Türkçe
Evet veriler sayfasından alacak. Ayrıca sıralı olmasının hiçbir mahsuru yok.

Selamlar
Merhaba
Önce Sayfadaki verileri ad'a göre sıralayın.
Bir ad tanımlayın.
Adı :
Kod:
MALZEMENİN_CİNSİ
Başvuru yerine
Kod:
=veriler!$A$2:$A$1048576
Bunu yazın ve tanımlayı bitirin.
Veri - Doğrulama - Liste - Kaynak bölümüne
Kod:
=DOLAYLI("'veriler'!A"&KAÇINCI($B6&"*";MALZEMENİN_CİNSİ;0)+1&":A"&EĞERSAY(MALZEMENİN_CİNSİ;$B6&"*")+KAÇINCI($B6&"*";MALZEMENİN_CİNSİ;0))
Bu formülü yazın ve Üstten Girdi İletisine geçin Hücre Seçildikten Sonra Girdi İleisi Göster'in tik'ini kaldırın. Hata Uyarısı Kısmına Geçin Geçersiz veri girildikten sonra hata uyarısı gösterin tik'ini kaldırın ve doğrulamayı bitin.
Hücreye herhangi bir verinin ilk harfini girin ve yan tarafta bulunan ok'a tıklayın sonuçları gözlemleyin.
Dosyanız Ekte.
 

Ekli dosyalar

Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Murat bey kusura bakmayın.

Sizi yanlış anlamışım denedim. Çok güzel bir şekilde çalışıyor. Elinize sağlık. Peki birşey daha sormak istiyorum. Kullanıcı combobox tan seçme yerine elle birşey yazmak istediğinde ne gibi bir değişiklik yapmak gerekiyor.

Selamlar,
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Sorun değil Fuat Bey,

Öyle bir özelliğin olmadığını biliyorum... :dusun:
 
Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Murat bey,

Uygulamada bir sorun yaşıyorum. Kodlamayı yaptıktan sonra kaydediyorum daha sonra dosyayı açtığımda uyguladıklarım yok oluyor. Nasıl kaydetmem gerekiyor veya hangi ayarı yapmak gerekiyor acaba?

Selamlar,
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Kusura bakmayın bir şey analamadım ?

Sizin bana gönderdiğiniz dosya üzerinde istedinizi yaptım zaten.
Siz daha ne kodlaması yapıyorsunuz, onu anlamadım ?
Başka kodlar mı ilave etmeye çalışıyorsunuz ?

Benim bildiğim iki tane tane basit kaydetme yöntemi var. Herkes böyle kaydeder.
1.si Menüdeki Kaydet ikonuna basılır.
2.si de onun Klavye ile yapılanı, Ctrl + S tuşlarına basılır.
Kodla yapılan aynı işlem olduğu için onu saymıyorum...

Kaydet dediyseniz kaydeder, Exce'in kaydetmeme gibi bir lüksü yok...

Diğer dosyalarınızda bu tür kaydetmeme sorunu oluyor mu ?

İlk sorudan cevaplamaya başlarsanız sevinirim...
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,824
Excel Vers. ve Dili
Excel 2007 Türkçe
Murat bey,

Uygulamada bir sorun yaşıyorum. Kodlamayı yaptıktan sonra kaydediyorum daha sonra dosyayı açtığımda uyguladıklarım yok oluyor. Nasıl kaydetmem gerekiyor veya hangi ayarı yapmak gerekiyor acaba?

Selamlar,
Farklı Kaydet - Makro içerebilen excel çalışma dosyası olarak kayıt yapın. Sorun çözülecektir.
 
Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Fuat Bey, sayfaya bir ComboBox ilave edin, adına Emre yazın ve ComboBox'ın verileri alacağı alanı seçip, alan adını "veri" yapın.

Kod:
Dim nvE As Object

Private Sub Emre_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   If KeyCode = 13 Then
      nvE.Visible = False
      ActiveCell.Offset(1, 0).Select
   End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   On Error Resume Next
   Set nvE = ActiveSheet.OLEObjects("Emre")
   On Error GoTo 0
   If nvE Is Nothing Then
      With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
                                      Width:=Target.Width, _
                                      Height:=Target.Height)
         .Name = "Emre"
      End With
      Set nvE = ActiveSheet.OLEObjects("Emre")
   End If

   Set Target = Intersect(Target, Range("B:B"))
   If Target Is Nothing Then
      nvE.Visible = False
      nvE.LinkedCell = ""
      Exit Sub
   ElseIf Target.Count > 1 Or Target.Row = 1 Then
      nvE.Visible = False
      nvE.LinkedCell = ""
      Exit Sub
   End If

   With nvE
      Application.ScreenUpdating = False
      .Top = Target.Top
      .Left = Target.Left
      .ListFillRange = "veri"
      .LinkedCell = Target.Address
      .Enabled = True
      .Visible = True
      .Activate
   End With
End Sub
Dosyayı da ekliyorum...
Merhaba Murat bey,

Yukarıdaki kodlama çok güzel çalışıyor. Fakat şöylede bir sorum var: Örneğin combobox a tıkladığımda içine "şalter" yazdığımda bana içinde şalter yazılı stok kartlarını anında süzsün istiyorum aynı zamanda a dan zye de sıralama yapsın açılan listede. Bu yapılabilir mi acab diye sormak istedim. Yardımcı olabilirseniz çok sevinirim.

Selamlar,
 
Katılım
26 Nisan 2012
Mesajlar
5
Excel Vers. ve Dili
2007 türkçe
bulgur üretim randıman acillllll

arkadaşlar yeni konu nereden acılıyor bılmedıgım ıcın bu konu baslıgı altına yazıyorum.Arkadaslar benım acılen bulgur üretim randıman ve malıyet hesaplama tablolarına ıhtıyacım var.YARDIMCI OLURSANIZ COK SEVINIRIM
 
Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Lütfen konuyu bu tip sorularla dağıtmayalım. Biraz daha dikkatli inceleseydiniz Aşağıdaki ana konular içinde konu açabiliyor olduğunuzu görürdünüz.
 
Katılım
2 Ekim 2010
Mesajlar
33
Excel Vers. ve Dili
2010
Merhaba Murat bey,

Yukarıdaki kodlama çok güzel çalışıyor. Fakat şöylede bir sorum var: Örneğin combobox a tıkladığımda içine "şalter" yazdığımda bana içinde şalter yazılı stok kartlarını anında süzsün istiyorum aynı zamanda a dan zye de sıralama yapsın açılan listede. Bu yapılabilir mi acab diye sormak istedim. Yardımcı olabilirseniz çok sevinirim.

Selamlar,
Varmıdır acaba cevap verebilecek?
 
Üst