• DİKKAT

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

Anımsama

Bakigemlik

Altın Üye
Katılım
16 Ocak 2013
Mesajlar
674
Excel Vers. ve Dili
2010 Türkçe
Merhaba Arkadaşlar,

Veri doğrulama ile ilgili 2800 satırlık bir verim var,

ben burada "A" yazdığım zaman "A" ile başlayanları açılır liste halinde göstermesini "Ah" ise A ve H ile başlayanları listelemesini istiyorum,

konu hakkında desteğinizi rica ederim,

Teşekkürler,
 

Ekli dosyalar

Merhaba,

Doğrulamadaki formülü aşağıdaki gibi değiştirip deneyiniz.

Doğrulama menüsündeki HATA UYARISI sekmesindeki uyarı bölümünü pasif hale getirin.

Kod:
=DOLAYLI("K"&KAÇINCI(B2&"*";K:K;0)&":K"&KAÇINCI(B2&"*";K:K;0)+EĞERSAY(K:K;B2&"*")-1)

Not: İşlemin düzgün sonuç vermesi için kaynak bölümünün alfabetik olarak sıralı olması zorunludur.
 
Merhaba,

Doğrulamadaki formülü aşağıdaki gibi değiştirip deneyiniz.

Doğrulama menüsündeki HATA UYARISI sekmesindeki uyarı bölümünü pasif hale getirin.

Kod:
=DOLAYLI("K"&KAÇINCI(B2&"*";K:K;0)&":K"&KAÇINCI(B2&"*";K:K;0)+EĞERSAY(K:K;B2&"*")-1)

Not: İşlemin düzgün sonuç vermesi için kaynak bölümünün alfabetik olarak sıralı olması zorunludur.

Korhan Hocam, desteğiniz için teşekkürler,

Gösterdiğiniz yol bir nebze çare oldu, benim burada asıl yapmak istediğim,

Ben hücreye "A" yazdığımda otomatik olarak "A" ile başlayan verilerin açılır liste açılması, AH yazdığımda da AH ile başlayan verilerin açılır liste olarak açılması, gönderdiğiniz formülde manuel listeyi açmak gerekiyor, aslında benim istediğim "Google" mantığında bir durum,

teşekkürler,
 
Korhan beyin çözümü bir nebzeden öte bir çözümdür.
Aşağıdaki gibi deneyiniz. Veri girişinden sonra ENTER'e basmak gerekir.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
SendKeys "%{down}"
[b2].Select
End If
End Sub
 
Korhan beyin çözümü bir nebzeden öte bir çözümdür.
Aşağıdaki gibi deneyiniz. Veri girişinden sonra ENTER'e basmak gerekir.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
SendKeys "%{down}"
[b2].Select
End If
End Sub

Seyit Bey Merhaba,

sanırım yazdıklarım yanlış anlaşıldı "bir nebze" cümlesinden kastım kendi isteğimle alakalıdır, kesinlikle burada değerli hocam Korhan beyin çözümünü kastedmemiştir, zira excelde birşeyler öğrenebildiysen bu form sayesindedir,

Eğer cümlem yanlış anlaşıldı ise öncelikle Korhan Bey olmak üzere herkesten özürdilerim, kendilerinin hakkını ödemek kolay değil,

Teşekkürler,
 

Değerli Hocam,

Öncelikle biraz önce yazdıklarım sanırım yanlış anlaşıldı bunun için özrümü kabul edin, sizin çözümleriniz ve yanıtlarınız her zaman bana büyük kolaylık sağlamış ve yol gösterici olmuştur,

http://www.excel.web.tr/f48/anymsama-autocomplete-otomatik-tamamlama-t103390.html

bu başlıktaki kodu aşağıdaki şekilde kendime uyarlamaya çalıştım ama il yazdığımda "h" ile başlayan değil tüm liste açılıyor sanırım kodda bir hata yaptım, bununla beraber bu kodun örnek dosyada "H" ve "J" sutunları için çalışması mümkün mü, dosyanın kod bölümüne ikinci Userform ekledim,

Eğer mümkünse "H" sutununa "Ankara" yazdığımda buna bağlı olarak 2. Userform açılıp burdan "I" sütununa Ankara'ya bağlı ilçe seçilmesini sağlayabilirmiyiz (aynı şekilde "J" sütununa il yazdığımızda buna bağlı ilçelerin seçimi olmalı),

konu hakkında desteğinizi rica eder, biraz önceki cümlem için tekrar tekrar özürdilerim,


Teşekkürler,

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not UserForm1.ListBox1.Tag = "off" Then
If Intersect(Target, Range("j2:j65000")) Is Nothing Then Exit Sub
Dim deger As Range
sayac = 0
derlenen = Target.Address
bakilan = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))

For Each deger In Sheets("Sheet1").Range("c3:c83")
If Not IsEmpty(deger.Value) And deger.Value Like "*" & bakilan & "*" Then
    sayac = sayac + 1
    sonuc = deger.Value
    
    If sayac = 1 Then
    UserForm1.ListBox1.Clear
    End If
    
    UserForm1.ListBox1.AddItem deger.Value
End If
Next

If sayac > 1 Then
UserForm1.Tag = derlenen
UserForm1.Caption = "Birden Cok Uygun Kayit Var, Lutfen Birini Seciniz"
UserForm1.ListBox1.Tag = "off"
UserForm1.Show
UserForm1.ListBox1.Tag = ""
ElseIf sayac = 1 Then
UserForm1.ListBox1.Tag = "off"
Range(derlenen) = sonuc
Else
UserForm1.ListBox1.Tag = "off"
bakilan = ""
sayac = 0
For Each deger In Sheets("Sheet1").Range("C3:C83")
If Not IsEmpty(deger.Value) And deger.Value Like "*" & bakilan & "*" Then
    sayac = sayac + 1
    sonuc = deger.Value
    
    If sayac = 1 Then
    UserForm1.ListBox1.Clear
    End If
    
    UserForm1.ListBox1.AddItem deger.Value
End If
Next
UserForm1.Tag = derlenen
UserForm1.Caption = "Uygun Kayit Bulunamadi, Lutfen Listeden Birini Seciniz"
Range(derlenen) = ""
UserForm1.Show

End If
Else
UserForm1.ListBox1.Tag = ""
End If
End Sub
 

Ekli dosyalar

Son düzenleme:
Değerli Hocam,

Öncelikle biraz önce yazdıklarım sanırım yanlış anlaşıldı bunun için özrümü kabul edin, sizin çözümleriniz ve yanıtlarınız her zaman bana büyük kolaylık sağlamış ve yol gösterici olmuştur,

http://www.excel.web.tr/f48/anymsama-autocomplete-otomatik-tamamlama-t103390.html

bu başlıktaki kodu aşağıdaki şekilde kendime uyarlamaya çalıştım ama il yazdığımda "h" ile başlayan değil tüm liste açılıyor sanırım kodda bir hata yaptım, bununla beraber bu kodun örnek dosyada "H" ve "J" sutunları için çalışması mümkün mü, dosyanın kod bölümüne ikinci Userform ekledim,

Eğer mümkünse "H" sutununa "Ankara" yazdığımda buna bağlı olarak 2. Userform açılıp burdan "I" sütununa Ankara'ya bağlı ilçe seçilmesini sağlayabilirmiyiz (aynı şekilde "J" sütununa il yazdığımızda buna bağlı ilçelerin seçimi olmalı),

konu hakkında desteğinizi rica eder, biraz önceki cümlem için tekrar tekrar özürdilerim,


Teşekkürler,

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not UserForm1.ListBox1.Tag = "off" Then
If Intersect(Target, Range("j2:j65000")) Is Nothing Then Exit Sub
Dim deger As Range
sayac = 0
derlenen = Target.Address
bakilan = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))

For Each deger In Sheets("Sheet1").Range("c3:c83")
If Not IsEmpty(deger.Value) And deger.Value Like "*" & bakilan & "*" Then
    sayac = sayac + 1
    sonuc = deger.Value
    
    If sayac = 1 Then
    UserForm1.ListBox1.Clear
    End If
    
    UserForm1.ListBox1.AddItem deger.Value
End If
Next

If sayac > 1 Then
UserForm1.Tag = derlenen
UserForm1.Caption = "Birden Cok Uygun Kayit Var, Lutfen Birini Seciniz"
UserForm1.ListBox1.Tag = "off"
UserForm1.Show
UserForm1.ListBox1.Tag = ""
ElseIf sayac = 1 Then
UserForm1.ListBox1.Tag = "off"
Range(derlenen) = sonuc
Else
UserForm1.ListBox1.Tag = "off"
bakilan = ""
sayac = 0
For Each deger In Sheets("Sheet1").Range("C3:C83")
If Not IsEmpty(deger.Value) And deger.Value Like "*" & bakilan & "*" Then
    sayac = sayac + 1
    sonuc = deger.Value
    
    If sayac = 1 Then
    UserForm1.ListBox1.Clear
    End If
    
    UserForm1.ListBox1.AddItem deger.Value
End If
Next
UserForm1.Tag = derlenen
UserForm1.Caption = "Uygun Kayit Bulunamadi, Lutfen Listeden Birini Seciniz"
Range(derlenen) = ""
UserForm1.Show

End If
Else
UserForm1.ListBox1.Tag = ""
End If
End Sub


Konu günceldir, desteğinizi rica ederim,

Saygılarımla
 
Geri
Üst