Exel de yazılacakları otomatik tamamlama yardım

Katılım
11 Eylül 2014
Mesajlar
55
Excel Vers. ve Dili
2007 türkçe
arkadaşlar exel çalışma sayfasına yazacaklarımı exelin tamamlamasını istiyorum
örneğin mehmet yazmak istediğimde M yazdığımdakendi tamamlamasını istiyorum
yazmak istediğim kelimeleri önceden veri olarak girme şansım var mı yardımcı olurmusunuz
 
Son düzenleme:

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,466
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Excele veriyi önceden öğretirseniz olabilir. Bunun yolu da combobox kullanmak.
Önceden öğretmenin anlamı ; ayrı bir sayfada a2 den başlayıp aşağı doğru bir isim listesi yaparsınız. Kullanacağınız sayfada ismin nereye gelmesini istiyorsanız oraya bir combobox yerleştirirsiniz. Daha sonra combobox özelliklerine geçip " rowsource" satırını bulup "Sayfa2!A2:A65536" yazıp enter ile yerleşmesini sağlarsınız. Ya da aynı işi veri doğrulama ile de yapabilirsiniz.

Dosyayı save ettikten sonra sayfa1e yerleştirmiş olduğunuz comboboxa harf girmeye başladığınızda ismin tamamının geldiğini görürsünüz.

http://www.incele.web.tr/excel-de-acilan-pencere-combobox-nasil-yapilir.html
 
Katılım
24 Nisan 2005
Mesajlar
3,669
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Alternatif;

Ayarlar sayfasında A sütununda başlıksız isimleri sıralayın.

bilgi girdiğiniz sayfada A sütununda Ahmet için a ya bastığınızda Ahmet olarak tamamlayacaktır.
A ile başlayan birden falza isim var ise kodlar ilk bulduğu eşleşmeyi getirir.

İsim listesi Sayfa1 (otomatik tamamlama yaptığınız sayfa) her aktif olduğunda yüklenir.

Module1 e yazılacak.

Kod:
Public liste() As String

Sub liste_yukle()
   Set sh = Sheets("Ayarlar")
   sonsatir = sh.Cells(Rows.Count, "A").End(3).Row
   ReDim Preserve liste(1 To sonsatir)
   For i = 1 To UBound(liste)
      liste(i) = ""
   Next i
   For i = 1 To sonsatir
     isim = sh.Cells(i, 1).Value
     liste(i) = isim
   Next i
End Sub

Public Function buyukharf(cumle)
gecici = ""
For i11 = 1 To Len(cumle)
          h = Mid(cumle, i11, 1)
          Select Case h
            Case "ğ": gecici = gecici + "Ğ"
            Case "ü": gecici = gecici + "Ü"
            Case "ş": gecici = gecici + "Ş"
            Case "ç": gecici = gecici + "Ç"
            Case "ö": gecici = gecici + "Ö"
            Case "ı": gecici = gecici + "I"
            Case "i": gecici = gecici + "İ"
            Case Else: gecici = gecici + UCase(h)
            End Select
Next i11
buyukharf = gecici
End Function
Otomatik tamamlama yapılacak sayfanın kod bölümüne

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Intersect(Target, Range([B][COLOR=Red]"A:A"[/COLOR][/B])) Is Nothing Then Exit Sub
       veri = Target.Value
       For i = 1 To UBound(liste)
          If Left(buyukharf(liste(i)), Len(veri)) = buyukharf(veri) Then
             Target.Value = liste(i)
             Exit For
          End If
       Next i       
End Sub

Private Sub Worksheet_Activate()
   Call liste_yukle
End Sub
 
Son düzenleme:
Katılım
11 Eylül 2014
Mesajlar
55
Excel Vers. ve Dili
2007 türkçe
yardımlarınız için teşekkürler arkadaşlar
 
Üst