• DİKKAT

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

Soru Additem ile eklenen ismi 2 harf ile çağırmak

Katılım
9 Aralık 2018
Mesajlar
363
Excel Vers. ve Dili
Excel 2019 - 32 bit TR
Merhaba

kullanmış olduğum textbox'lara .additem kodu ile bazı isimler ekledim.
kişilerin başında kıdemlerini belirten ön ekler olduğu için pratik şekilde onların isimlerini çağıramıyorum.

Kendi adım Seçkin Bilgiç,
sb yazdığımda Seçkin Bilgiç olarak düzeltmesini nasıl sağlayabilirim?
ya da bir başka isim için bunu nasıl tanımlarım?


Teşekkürler?
 
Örnek dosya eklerseniz,daha doğru ve daha çabuk yanıt alabilirsiniz.:cool:
 
PHP:
Dim hocalar(), X As Byte
    
hocalar = Array("KS", "IU", "HS", "SS", "SA", "LU")
    
For X = 1 To 4
    Me.Controls("cmblist" & X).List = hocalar
Next


'burası asistanlar için





Dim asistanlar(), Y As Byte
    
asistanlar = Array("BA", "SB", "KNOT", "FB", "AN")
    
For Y = 1 To 3
    Me.Controls("cmbast" & Y).List = asistanlar
Next


her kişinin adının baş harfini kullanarak onun tam ismini çağırmayı planlıyorum.


Prof.Dr.Kerim Sön
Dr.Burak Ako
Prof.Dr.İlhami Us
Dr.Seçkin Bilgiç
Prof.Dr.Haluk Burçak Say
Dr.Kübra Nur Top


kişilerin gerek ünvanları ismi bir kaç harf ile çağırmamı engelliyor.

bunu tanımlayarak nasıl yapabilirim??

mesela SB yazdığımda bu isimler arasından "Dr.Seçkin Bilgiç" i seçsin.


teşekkürler
 

Ekli dosyalar

Eğer tek kural, kişilerin isim ve soy isimlerinin baş harfleri ise, regular expression ile çözülebilir sanıyorum. RegExp zor gelirse, ünvanları replace fonksiyonu ile yok ettikten sonra split fonksiyonu isim ve soy isimlere ayırıp baş harflerini aldığınızda problem çözülecektir.
 
"List" sayfasında doktorların isimlerinin soluna kısa kodlarını ekleyin. Yine aynı sayfada asistanların isimlerinin soluna kısa kodlarını ekleyin.

İlgili formdaki comboboxlara her iki grup içinde ikili sütunları yükleyin. Comboboxların ikinci sütun genişliğini sıfırlayın. Böylece sadece kısa kodları görünecektir. Siz kayıt işleminde ise sıfır olarak gösterdiğiniz sütundaki değeri sayfaya aktarıp bu sorunu çözebilirsiniz.
 
Görsel ayarları ekliyorum. Sanırım yapabilirsiniz.

İlk olarak aşağıdaki ayarı yapınız.

1570315885175.png

List sayfasını aşağıdaki gibi düzenleyiniz.

1570315976357.png

Userform kod bölümü aşağıdaki gibi düzenleyiniz.

Kod:
Private Sub UserForm_Initialize()
    For X = 1 To 4
        Me.Controls("cmblist" & X).Column = Application.Transpose(Sheets("List").Range("G2:H7"))
    Next
    
    For Y = 1 To 3
        Me.Controls("cmbAST" & Y).Column = Application.Transpose(Sheets("List").Range("I2:J6"))
    Next
End Sub

Private Sub Kaydet1_Click()
    Dim konsey As Worksheet
    Set konsey = ThisWorkbook.Sheets("Konsey_Ekibi")
    
    nr = konsey.Cells(Rows.count, 1).End(xlUp).Row + 1
    
    konsey.Cells(nr, 1) = CDate(Me.DTPick3)
    konsey.Cells(nr, 2) = Me.cmblist1.Column(1)
    konsey.Cells(nr, 3) = Me.cmblist2.Column(1)
    konsey.Cells(nr, 4) = Me.cmblist3.Column(1)
    konsey.Cells(nr, 5) = Me.cmblist4.Column(1)
    konsey.Cells(nr, 6) = Me.cmbast1.Column(1)
    konsey.Cells(nr, 7) = Me.cmbast2.Column(1)
    konsey.Cells(nr, 8) = Me.cmbast3.Column(1)
    konsey.Cells(nr, 9) = Me.karar1
    
    Application.ScreenUpdating = True
    Worksheets("Konsey_Ekibi").Select
End Sub

Tarih kutusu bende hata verdiği için silmek zorunda kaldım. Siz tekrar kodlara eklersiniz.
 
Merhaba;

@Zeki Gürsoy üstadın bahsettiği gibi "Regular Expressions" tekniğini kullanarak ekte verilen dosyayı hazırladım. Veriler; Ali Eğilmez veya Ali Rıza Binboğa gibi 2 veya daha fazla kelimeden oluşabilir.

Umarım işe yarar...

.
 

Ekli dosyalar

Alternatif
PHP:
Private Sub ComboBox1_Change()
    If Len(ComboBox1.Value) > 0 Then TextBox1.Value = ComboBox1.List(ComboBox1.ListIndex, 1)
End Sub

Private Sub UserForm_Initialize()
    Dim kisa(), ayir, adal$, bul%, i%, a%
    ComboBox1.ColumnCount = 2
    ComboBox1.ColumnWidths = "30;0"
    For i = 1 To Cells(Rows.Count, "D").End(3).Row
        bul = InStrRev(Cells(i, 4).Value, ".")
        adal = Trim(Mid(Cells(i, 4).Value, bul + 1, Len(Cells(i, 4).Value)))
        ayir = Split(adal, " ")
        For a = LBound(ayir) To UBound(ayir)
            ReDim Preserve kisa(1, b)
            kisa(0, b) = kisa(0, b) & Left(ayir(a), 1)
        Next a
        kisa(1, b) = Cells(i, 4).Value
        b = b + 1
    Next i
    ComboBox1.List = Application.Transpose(kisa)
End Sub
 
2 formülü de çalıştıramadım doğrusu.

CASE kullanarak bunu yapamaz mıyım?

daha statik bir yapısı olacak ama
 
Select Case AST
Case "SB"
X = Dr.Seçkin Bilgiç
Case "BA"
X = Dr.Burak Akovalı
End Select


gibi koşul belirtip listeye o şekilde kaydetmeyi düşünüyorum. Mümkün mü?
 
7 No'lu mesajda verdiğim örnek dosya sizde çalışmadı mı?

.
 
7 No'lu mesajda verdiğim örnek dosya sizde çalışmadı mı?

.


Kodu tam olarak kendi sistemime ayarlayamadım.
Ben ilgili kişilerin aldığı kayıtları tarihi girerek not alıyorum. Aynı textbox içerisinde SB yazdığımda Dr.Seçkin Bilgiç diye düzeltmesini ayarlamaya çalıştım.
 
Geri
Üst