• DİKKAT

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

  • Forum yazılımı güncelenmiştir.

    Beklenmedik durumlar görürseniz lütfen yönetime iletin.

Hücre içinden metin veya sayı almak

Katılım
14 Nisan 2013
Mesajlar
764
Excel Vers. ve Dili
Office Excel 2016 TR
Home & Business
Merhabalar,

Örnek dosyada, A sütununda havale ile gelen ödeme notları mevcut. A sütunundaki notlar içerisinden B sütununa Sipariş Numarasını yazmak istiyorum. Sipariş numarası yoksa isimleri ayırıyorum.

Normalde sayıları ayırmak için bazı makrolar mevcut ama metnin içinde başka sayılar da olduğu için karışıyor.

Bu konuda yardımcı olabilir misiniz acaba?
 

Ekli dosyalar

. . .

Bu tarz kodlamalarda bazı sabit şartlar olması gerekiyor.
Aşağıdaki kodlarında doğru sonuç üretmesi için gereken şart:
- (tire) işaretinden sonra sayısal değerler geliyorsa çalışmaya başlar ve sayısısal değerleri alır.

Kod:
Sub kod()
    Application.ScreenUpdating = False
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
        m = Cells(i, "A")
        uz = Len(m)
        For s = 1 To uz
            If Mid(m, s, 1) = "-" Then
                If IsNumeric(Mid(m, s + 1, 1)) = True Then
                    For a = s + 1 To uz
                        mm = Mid(m, a, 1)
                        If IsNumeric(mm) = True Then
                            nu = nu & mm
                        Else
                            Exit For
                        End If
                    Next a
                    Cells(i, "B") = nu
                    nu = Empty
                End If
            End If
        Next s
    Next i
    Application.ScreenUpdating = True
    MsgBox "B i t t i "
End Sub

. . .
 
Merhaba Hüseyin bey,

Havale bilgileri müşterilerin havala yaparken kendi yazdığı açıklamalar, o yüzden kriteri yok. Bankadan bilgiler bu şekilde geliyor, bize de bunu ayırmak düşüyor malesef.

Fakat makro kodu kafi görünüyor, en azından elimizdeki dosyanın %70'ini çözecektir. Geriye kalan %30 ile manuel olarak ilgileneceğim.
Teşekkürler
 
Kriteri; 235 ile başlayan olarak yapabilir miyiz peki? daha sonra ben onu 236 veya 237 olarak takip ederim
 
Kriteri; 235 ile başlayan olarak yapabilir miyiz peki? daha sonra ben onu 236 veya 237 olarak takip ederim
. . .

Kod:
Sub kod()
    Application.ScreenUpdating = False
    
    kriter = "236"
    
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
        m = Cells(i, "A")
        uz = Len(m)
        
        s = InStr(1, m, kriter)
        If s > 0 Then
            mm = Mid(m, s, uz)
            ss = Split(mm, " ")(0)
            Cells(i, "B") = ss
        End If
        ss = Empty
        
    Next i
    
    Application.ScreenUpdating = True
    MsgBox "B i t t i "
End Sub

. . .
 
Çok teşekkürler Hüseyin bey,
 
Geri
Üst