• DİKKAT

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

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,902
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Merhaba Arkadaşlar,
soldan, sağdan, parçaal fonksiyonlarının makro karşılıkları ile ilgili örnekleri nerede bulabilirim.
Saygılarımla
 
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
 
Sayın Askm,
Çok teşekkür ederim.
Hemen deneyeceğim.
Saygılarımla
 
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:
Hücrelerde üçgen verileri mevcut. Bunlar içerisinden şu hücreden şu verileri al yazarsanız. Yardımcı olmaya çalışayım.
 
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
 
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
 
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
 
Değer olarak nasil hesaplanıyorsunuz.Split işe yarayabilir.
 
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
 
Çok zaman geçmiş olmasına rağmen ben de faydalandım, teşekkür ederim
 
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?
 
Merhaba,

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

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

.
 
Geri
Üst