mavzermete 1
mavzermete
Fethi Polat 1
Fethi Polat
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Scarlet 1
Scarlet
xranzei 1
xranzei
Hikaye Ekle

Excel'de bir metinden rakamları çekmek

  • Konuyu başlatan Konuyu başlatan ßyMesMes
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 5
  • Görüntüleme Görüntüleme 872

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Harf rakam karışık halde bulunan 1 veya birden çok hücrede yanyana bulunan rakamları birleştirerek rakam grupçukları oluşturur, yani sadece metin içindeki rakamları ayıran makro kodu.

Kod:
Sub rakamayir()
--- değişkenleri tanımla---
Dim dizi(750)
Dim dizison(750)
Dim durum As Boolean
Dim A, b, d, i, j, bos
Dim dd, ddd, f, ff, fff, k, kk, kkk, sayi
Dim c As Range
Columns(1).ClearContents
‘---seçili her hücredeki rakamları seç ve ayır---
For Each c In Range(Selection.Address)
    For k = 1 To Len(c)
        kk = Mid(c, k, 1)
        If Asc(kk) > 47 And Asc(kk) < 58 Then
            sayi = sayi & kk
            durum = True
        Else
            If durum = True Then
                durum = False
                dizi(i) = Val(sayi)
                i = i + 1
                sayi = Empty
            End If
        End If
    Next k
&#8216;--- ayrılan sayı grupçuklarını dizi() adlı dizi değişkenine at---
        If durum = True Then
            durum = False
            dizi(i) = Val(sayi)
            i = i + 1
            sayi = ""
        End If
Next 

--- dizi() değişkenine atanan rakamları sırala---
For d = 0 To i
    For dd = 0 To i
        If dizi(d) < dizi(dd) Then
            bos = dizi(d)
            dizi(d) = dizi(dd)
            dizi(dd) = bos
        End If
    Next
Next

--- yeni bir dizi oluşturarak önceki dizide tekrar eden rakamlardan kurtuluyoruz, yeni dizide önceki dizideki rakamlar  birer kez alınmış oluyor, tekrar önleniyor---
dizison(0) = dizi(0)
For k = 0 To i
    If dizison(iii) <> dizi(k) Then
        dizison(iii + 1) = dizi(k)
        iii = iii + 1
    End If
Next

--- işin en tatlı yeri, ulaşmak istediğimiz sonuca ulaştık artık çıktıyı istediğimiz yere yansıtabilir, bu sonuçları dilediğimiz şekilde kullanabiliriz. Biz sonucu Excel hücrelerine yazdırıyoruz---
For i = 0 To iii
Cells(i + 1, 1) = "DSİ. " & dizison(i)
Next

--- Çalışmaya devam edersen, çok ilerleyeceksin---
End Sub
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst