• DİKKAT

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

Anımsama-Autocomplete-Otomatik Tamamlama

Katılım
2 Nisan 2010
Mesajlar
42
Excel Vers. ve Dili
Office 2003-Türkçe
Selamlar,

Başlıkta geçen kelimelerde forumda bayağı bi araştırma yaptım, istediğime en yakın olarak ekteki dosyayı buldum. Ama bu örnekte sadece kelimenin ilk harfini baz alıyor. Şöyle diyeyim; Ş yazınca Şanlıurfa'yı buluyor ama benim istediğim aynı zamanda "urfa" yazdığında da bulması. Ne yapabiliriz?

Şimdiden teşekkürler,

Turgay
 

Ekli dosyalar

Hatırlatma! İlk kez buraya eklediği bi konuya yorum yapılmadı. İlginç.
 
Sayın Spatz güzel olmuş teşekkürler.

:) Siz saolun da benim yaptığım bir şey yok. O örneği forumda buldum, üzerinde değişiklik yapabilir miyiz diye sordum. Kimseden ses çıkmadı, öyle kaldı. Sanırım yapamıyoruz diyip sineye çektim.....
 
Merhaba,

Sayfaya ait kodu aşağıdaki şekilde değiştirip denermisiniz.

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("b5:b20")) 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("Sayfa2").Range("g5:g85")
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("Sayfa2").Range("g5:g85")
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
 
:) Siz saolun da benim yaptığım bir şey yok. O örneği forumda buldum, üzerinde değişiklik yapabilir miyiz diye sordum. Kimseden ses çıkmadı, öyle kaldı. Sanırım yapamıyoruz diyip sineye çektim.....

Ben yanlış anlamışım aşağıdaki kod işinizi görürmü.

sayfaiçin kod


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
deg = Target.Cells
If Intersect(Target, Range("b5:b20")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
bakilan = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))
UserForm1.ListBox1.Clear
UserForm1.Tag = Target.Address
With Sheets("Sayfa2").Range("g5:g85")
Set c = .Find(bakilan, lookat:=xlPart) ' harfe göre arıyor
If Not c Is Nothing Then
FirstAddress = c.Address
Do
UserForm1.ListBox1.AddItem Sheets("Sayfa2").Cells(c.Row, 7)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> FirstAddress
End If
End With
If UserForm1.ListBox1.ListCount = 0 Then
If deg <> "" Then
MsgBox "uygun kayıt bulunamadı"
Else
For i = 5 To 85
UserForm1.ListBox1.AddItem Sheets("Sayfa2").Cells(i, 7)
Next
[COLOR=red]UserForm1.Show[/COLOR]
End If
Else
[COLOR=red]UserForm1.Show[/COLOR]
End If
End Sub

userform için

Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Range(UserForm1.Tag) = ListBox1.List(ListBox1.ListIndex)
UserForm1.Hide
End Sub
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
If ListBox1.ListIndex > -1 Then
Range(UserForm1.Tag) = ListBox1.List(ListBox1.ListIndex)
UserForm1.Hide
End If
End If
End Sub
Private Sub UserForm_Activate()
UserForm1.Top = Range(UserForm1.Tag).Top + 120
UserForm1.Left = Range(UserForm1.Tag).Left + 50
End Sub
 

Ekli dosyalar

Sonradan bir hata daha farkettim onuda düzenledim.

6 nolu mesajdaki koda uyarı mesajıda ekledim.
 
halit hocam verdiğiniz kodu ben denedim süper tam aradığım projemde süper olacak inşallah ah birde formlarla çalışmayı pekiştirsem varyaaa :))))
 
Merhaba,

Sayfaya ait kodu aşağıdaki şekilde değiştirip denermisiniz.

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("b5:b20")) 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("Sayfa2").Range("g5:g85")
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("Sayfa2").Range("g5:g85")
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

Sayın Korhan Bey;
Hücre üzerinde DELETE ye basınca liste kutusu açılıyor. Bunun yerine DELETE ye basınca hücrenin silinmesini sağlayabilir miyiz?
Ayrıca liste kutusu açıldıktan sonra ESC ye basınca kutu kapanmıyor. ESC ye basınca kutunun kapanmasını sağlayabilir miyiz?
Teşekkürler.
 
Merhaba,

Aşağıdaki linkte benzer bir uygulama hazırlamıştım. İncelermisiniz.

Hücrede otomatik tamamlama

Sayın Korhan Bey;
Yukarıda vermiş olduğunuz linkte otomatik tamamlama ile ilgili harika bir uygulama var ama makroya bir baktım çok karışık. Benim bunu kendi dosyama uyarlamam mümkün değil. Halbuki bu konu altında verilen dosya ( http://www.excel.web.tr/showthread.php?p=644198#post644198 ) daha basit. Bunu kendi dosyama uyarlayabilirim.
DELETE ye basınca hücrenin silinmesini ve ESC ye basınca kutunun kapanmasını sağlayabilirsek harika olur.
İlginiz için teşekkürler.
 
Merhaba,

Anladım. Ekteki örnek dosyayı inceleyiniz.
 

Ekli dosyalar

Sayın Korhan Bey;
Mükemmel olmuş.
Emeğinize sağlık.
Çok teşekkür ederim.
 
Merhabalar,

verdiğiniz bilgiler için çok teşekkür ederim. kendi dosyama uyguladım kodları ancak KASA isimli sayfada B sütununa, Verilerde kayıtlı isimlerden birinin ilk iki harfini yazsam da yine de tamamlamıyor ve açılır pencere çıkıyor.

nerede yanlışlık yapıyorum yardımcı olabilir misiniz?

Bir de ek olarak Veriler sayfasındaki üç sütundaki bilgileri, KASA sayfasındaki B, C ve D sütunları için ayrı ayrı otomatik tamamlama nasıl yapabilirim?
 

Ekli dosyalar

Merhaba,

Ekteki örnek dosyayı incelermisiniz.
 

Ekli dosyalar

Merhaba

"KASA" sayfasında Adı Soyadı na "Ah"(Ahmet) iki harf girince entera basıyorum ve hata veriyor, tamam diyorum excel kitleniyor :(
 
Geri
Üst