soldan, sağdan, parçaal fonksiyonlarının makro karşılıkları

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşlar,
soldan, sağdan, parçaal fonksiyonlarının makro karşılıkları ile ilgili örnekleri nerede bulabilirim.
Saygılarımla
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
a1=Kalemlik olsun.
Soldan için left(range("a1"),2) sonuç=ka
Sağdan için right(range("a1"),2) sonuç=ik
Parçaal için mid(range("a1"),2,5) sonuç=alem
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Askm,
Çok teşekkür ederim.
Hemen deneyeceğim.
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Askm,
Ekli dosyada. Hücrede ne varsa onun içinden almak istiyorum.
Yardımcı olursanız sevinirim.
Saygılarımla
 

Ekli dosyalar

Son düzenleme:

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Hücrelerde üçgen verileri mevcut. Bunlar içerisinden şu hücreden şu verileri al yazarsanız. Yardımcı olmaya çalışayım.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba sayın Hocam,
İlginize teşekkür ederim. Fark ettiğiniz üzere konu geometri ve indisli ifadeler. E8 e diğer sayfadan kopyalarak getiriyorum, değişiklik olmuyor. E8 de E10 a ilk 40 karakteri alırken düz yazı halinde geliyor. Halbuki o arada indisli karakterler var. Onları olduğu gibi almasını bekliyorum.
Saygılarımla
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Sayın Tevfik Bey aşağıdaki şekilde çözüm olur sanırım. Yalnız sürekli 40 karakter olmuyor almak istediğiniz. Belli bir kelime ya da farklı 2 kelime ayrım noktası ise split komutu da işinizi görecektir. Parça almak için.

Kod:
Sub Soldan_Al()
    ActiveSheet.Range("E10").ClearContents
    [E10] = Left(Range("E8"), 40)
    Call askm
End Sub

Sub askm()
For i = 1 To 40
    If Range("E8").Characters(Start:=i, Length:=1).Font.Name = "Symbol" Then
        Range("E10").Characters(Start:=i, Length:=1).Font.Name = "Symbol"
    End If
    If Range("E8").Characters(Start:=i, Length:=1).Font.Subscript = True Then
        Range("E10").Characters(Start:=i, Length:=1).Font.Subscript = True
    End If
Next
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba sayın Hocam,
İlginize teşekkür ederim. 40 afaki idi. Onu değer olarak hesaplatıp hücreden aldıracağım.
Sagdan_Al zaten aynı Left yerine Right getirerek ve Parçaal da sanırım [E10]=mid(range("E8"),15,10) şeklinde yaparak çalıştırdım. Sadece Soldan_Al düzgün çalıştı, diğerleri çalışmadı.
Saygılarımla
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Değer olarak nasil hesaplanıyorsunuz.Split işe yarayabilir.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Haklısınız Sayın Hocam,
Çözdüm, çok güzel çalışıyor. Başta (Dim) açmamışım, (integer) olarak belirleyince tam istediğim gibi oldu. Şimdi bitirdim, sizinle paylaşayım istedim. 23:12 deki yazınızı da şimdi gördüm.
Çok teşekkür ederim.
Saygılarımla
 
Katılım
25 Şubat 2010
Mesajlar
11
Excel Vers. ve Dili
2003
Çok zaman geçmiş olmasına rağmen ben de faydalandım, teşekkür ederim
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Rica ederim arkadaş, zevkle
İyi çalışmalar
 

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
224
Excel Vers. ve Dili
Office Pro 2016 TR
Altın Üyelik Bitiş Tarihi
09-02-2028
Kod:
 Sayı : E-48175234-151.05-23438325 02 Kasım 2022
Hocam uzunluğu farklı olan bu şekilde metinler var ben sondaki tarihi tarih formatında almak istiyorum yardımcı olur musunuz?
 

Ö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,

Deneyiniz.
=--PARÇAAL(A1;BUL(" ";YERİNEKOY(A1;" : ";""))+4;255)

.
 

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
224
Excel Vers. ve Dili
Office Pro 2016 TR
Altın Üyelik Bitiş Tarihi
09-02-2028
Hocam makro olarak yapabilir miyiz pdf dosyasından gelen bilgi ile yapıyorum.
Bir de hocam şu şekilde ayıklama şansımız var mı?

Sayı : E-48175234-151.05-23438325 02 Kasım 2022

Sayı=E-48175234-151.05-23438325
Tarih =02.11.2022
Birim=E-48175234
Konu =151.05
Ara Numara=23438325


Hocam çizgiler (-) hep geliyor ve anlamlı şekilde bir birinden ayırıyor


Kod:
Sub konu_sayı_cozumle()

For Each Rng In mutfak.Range("A3:A70")
'If InStr(1, Rng.Value, " Sayı") > 0 Then '
If Left(Rng.Value, 5) = " Sayı" Then
MsgBox Len(Rng.Value)
    If InStr(1, Rng.Value, " Sayı") > 0 Then
        Sayı = E - 48175234 - 151.05 - 23438325
        Tarih =02.11.2022
        Birim = E - 48175234
        Konu = 151.05
        Ara Numara = 23438325
    End If
End If
Next


End Sub
 
Son düzenleme:

Ö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
İstediğiniz bu mu?
Kod:
Sub test()
    deg = Range("A1")
    d1 = Split(deg, " ")
    d2 = Split(deg, "-")
    sayi = d1(0) & " : " & d1(2)
    tarih = CDate(Replace(deg, sayi, ""))
    birim = Replace(d2(0) & "-" & d2(1), "Sayı : ", "")
    konu = d2(2)
    ara_numara = Split(d2(3), " ")(0)
End Sub
 

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
224
Excel Vers. ve Dili
Office Pro 2016 TR
Altın Üyelik Bitiş Tarihi
09-02-2028
Hocam elinize sağlık birim konu ara numarasını doğru verdi
A1 hücresinde yazan değer Sayı : E-48175234-151.05-23438325 02 Kasım 2022 bu şekilde
sayı boş geldi sayı yazan değer E-48175234-151.05-23438325 bu şekilde gelmedi yazmış olduğunuz kodları inceledim d1(3) dizininde buldum.
Şuan tek sorun Tarih kısmında hata veriyor hocam
 

Ö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
Nasıl bir hata veriyor. 4-5 satırlık bir örnek dosya ekleyip hatayı dosya içinde açıklar mısınız.
 

Ö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
A1 deki verinin başında fazladan bir boşluk vardı.
Kodlardaki deg tanımını aşağıdakiyle değiştiriniz.

deg = Trim(Sayfa1.Range("a1").Value)

.
 
Üst