Büyük harfe duyarlı formül

Katılım
8 Haziran 2007
Mesajlar
761
Excel Vers. ve Dili
excel- 2003 Türkçe
Arkadaşlar kolay gelsin. E4 hücresinde aşağıdaki gibi yazı var.

"AYSEL TAN;suat babacan;şakir pak"

daha önce arkadaşlara böyle bir formül yaptırmıştım.

=EĞER(ESAYIYSA(MBUL("TARIK KURT";E4));"Tarık KURT";EĞER(ESAYIYSA(MBUL("ŞAKİR PAK;"Şakir PAK";EĞER(ESAYIYSA(MBUL("MEHMET TAMER";E4));"Mehmet TAMER";EĞER(ESAYIYSA(MBUL("SUAT BABACAN";E4));"Suat BABACAN";EĞER(ESAYIYSA(MBUL("AYSEL TAN";E4));"Aysel TAN";EĞER(ESAYIYSA(MBUL("FİKRİ BULDUK";E4));"Fikri BULDUK";""))))))

Benim istediğim şudur. Yukarıdaki metinde geçen BÜYÜK HARFLE YAZILMIŞ KİŞİ ADINI M4 HÜCRESİNE YAZMASI.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,373
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodlar A sütunundaki büyük harfleri B sütununa aktarır, siz kendinize göre uyarlayınız.


Kod:
Sub ayir()
For i = 1 To [a65536].End(3).Row
    For j = 1 To Len(Cells(i, "A"))
        If (Asc(Mid(Cells(i, "A"), j, 1)) > 64 And Asc(Mid(Cells(i, "A"), j, 1)) < 91) Or _
            Mid(Cells(i, "A"), j, 1) = "Ç" Or _
            Mid(Cells(i, "A"), j, 1) = "Ğ" Or _
            Mid(Cells(i, "A"), j, 1) = "İ" Or _
            Mid(Cells(i, "A"), j, 1) = "Ö" Or _
            Mid(Cells(i, "A"), j, 1) = "Ş" Or _
            Mid(Cells(i, "A"), j, 1) = "Ü" Then
        Cells(i, "B") = Cells(i, "B") & "  " & Mid(Cells(i, "A"), j, 1)
        End If
        Cells(i, "B") = Trim(Cells(i, "B"))
    Next j
Next i
End Sub
 
Katılım
8 Haziran 2007
Mesajlar
761
Excel Vers. ve Dili
excel- 2003 Türkçe
Ya ben uyarlamayı beceremedim. Benim metin aradığım sutun E, bulunan veriyi yazdırmak istediğim sutun ise J sutunu nereleri değiştirmem gerekecek.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Regexp ile alternatif bir çözüm olarak aşağıdaki kodu deneyin. E4 hücresindeki veriden sadece büyük harf yazan kelimeleri seçerek M4 hücresine yazacaktır.

Kod:
Sub buyukharfal()
Set deg = CreateObject("VBScript.Regexp")
deg.Pattern = "[^A-Z\Ç\Ğ\İ\Ö\Ş\Ü ]"
deg.Global = True
[m4] = deg.Replace([e4], "")
Set deg = Nothing
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,373
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Burada uygun yanıt Levent beyin yanıtı. Siz onu kullanın.
 
Katılım
8 Haziran 2007
Mesajlar
761
Excel Vers. ve Dili
excel- 2003 Türkçe
Yalnız şöyle bir sorun var. Bana sütün bazınla bir listeleme lazım. Yani benim veriler E4 ten başlayış E1200 e kadar gidiyor.Yani E4 hücresindeki işlemi diğer hücrelerede uygulaması lazım bunun için bir yöntem varmı
 

Ekli dosyalar

Son düzenleme:

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,373
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki şekilde kullanabilirsiniz.

Kod:
Sub buyukharfal()
Set deg = CreateObject("VBScript.Regexp")
deg.Pattern = "[^A-Z\Ç\Ğ\İ\Ö\Ş\Ü ]"
    deg.Global = True
For i = 4 To [E65536].End(3).Row
    Cells(i, "J") = Trim(deg.Replace(Cells(i, "E"), ""))
Next i
Set deg = Nothing
End Sub
 
Katılım
8 Haziran 2007
Mesajlar
761
Excel Vers. ve Dili
excel- 2003 Türkçe
Çok teşekkkür ederim. Allah razı olsun. hayırlı geçeler iyi çalışmalar.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba

Levent bey, güzel bir çözüm. Tebrik ederim.

.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Merhaba

Levent bey, güzel bir çözüm. Tebrik ederim.

.
Teşekkür ederim Ömer bey. Regexp, bu tür cümleden ayırma işlemlerinde çok pratik çözümler üretilmesine yarayan güzel bir araç. Konuya meraklı üyelerimizin bu araç üzerine eğilmelerini öneririm.
 
Üst