Soru Belli Karakter Arasını VBA ile Alma

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Merhaba üstadlar;

K5 hücresinde yer alan "........... (Salı) ..........." cümlesindeki "SALI" ifadesini almak istiyorum. Yalnız VBA kullanmam gerekmekte. Cümleler değişken parantez içi değişken.
Tek amacım parantez içinde yer alan kelime ne olursa olsun bulma. Tam istediğim gibi şekilde olanı bulup bir türlü bulup çözemedim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Deneyiniz:

PHP:
Sub parantez()
    bas = WorksheetFunction.Find("(", [K5])
    bit = WorksheetFunction.Find(")", [K5])
    [K6] = Mid([K5], bas + 1, bit - bas - 1)
End Sub
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,362
Excel Vers. ve Dili
2019 TR
Sonuçtan emin olmak için denemeler yaparken çözüm paylaşılmış :)
Aynı cevap olacak ama hazırlamışken paylaşayım.
Kod:
Sub parantez_ici()
Dim metin As String, kelime As String
Dim baslangic As Integer, bitis As Integer

metin = Range("K5").Value
baslangic = WorksheetFunction.Find("(", metin)
bitis = WorksheetFunction.Find(")", metin)
kelime = Mid(metin, baslangic + 1, bitis - baslangic - 1)

MsgBox kelime, vbInformation, "Parantez İçindeki Kelime"

metin = "": kelime = ""
baslangic = 0: bitis = 0
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,591
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub TEST()
    With CreateObject("VBScript.RegExp")
        .Pattern = "(.+\()(.+)(\).+)"
        If .TEST([k5].Value) Then [k6].Value = .Replace([k5].Value, "$2")
    End With
End Sub
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,362
Excel Vers. ve Dili
2019 TR
Merhaba Sayın @veyselemre
RegExp için yararlanabileceğimiz kaynak tavsiye edebilir misiniz?
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,591
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub TEST2()
    al = [k5].Value
    bul1 = InStr(al, "(")
    bul2 = InStr(al, ")")
    If bul1 > 0 And bul2 > 0 Then
        al = Mid(al, bul1 + 1, bul2 - bul1 - 1)
    End If
    MsgBox al
End Sub
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Değerli üstadlar elinize sağlık teşekkür ediyorum hepsi sorunsuz çalışmakta :)
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,362
Excel Vers. ve Dili
2019 TR
Teşekkür ederim. Elinize sağlık.
 
Üst