• DİKKAT

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

Hücrede text değerindeki satır sayısını saymak

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,105
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhabalar
Hücrede text değerindeki satır ve/veya chr(10) sayısını nasıl saydırabiliriz.

Örneğin A1 hücresinde aşağıdaki metin olsun.
Kod:
SAT : 12.09.2013

Fetus Sayısı : 1
FKA   : Pozitif (+) 
Prezentasyon  : Baş
Amniyotik Sıvı  : Yeterli
AFI  :111
Plasenta  : Arka - fundal  duvarda
Grade   :    3

BPD .......... 91 mm 37 hf 0 gün +- gün
HC .........319 mm 36 hf 0 gün +- gün
AC .........358 mm 39 hf 5 gün +- gün
FL .......... 74 mm 37 hf 4 gün +- gün

Tahmini fetal ağırlık  ............ 3500 +- 525 gr.

SAT'a göre gestasyon yaşı ........ 40 hf 3 gün
Ortalama gebelik yaşı ............ 37 hf 4 gün
 

Ekli dosyalar

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub Makro()
    Dim Veri
    
    Veri = Split(Range("A1"), Chr(10))
    
    MsgBox UBound(Veri) + 1
End Sub
 
Teşekkürler
Sorunumun bir kısmını çözdüm.
Text değerini satırlara ayırmada kullanacağım.Daha sonra satırlardaki verileri parçalıyacağım.
Kod:
Sub makro1()
Range("E:E") = Clear
Dim Veri
Veri = Split(Range("A1"), Chr(10))
say = UBound(Veri) + 1
deg = Chr(10)

My_String = Trim(Range("A1"))
My_Array = Split(My_String, Chr(10), say)
For i = 1 To say
  v = i - 1
  Cells(Cells(65536, "e").End(3).Row + 1, "E") = My_Array(v)
Next i


End Sub
 
Kod içinde gereksiz kullanımlar uygulamışsınız. Aşağıdaki kod daha verimli çalışacaktır.

Kod:
Sub Makro1()
    Dim Veri() As String, X As Byte, Satir As Integer
    
    Veri = Split(Trim(Range("A1")), Chr(10))
    
    Range("E:E") = Empty
    Satir = 1
    
    For X = 0 To UBound(Veri)
        If Veri(X) <> "" Then
            Cells(Satir, "E") = Veri(X)
            Satir = Satir + 1
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Korhan bey katkılarınız için teşekkür ederim.
Aşağıdaki kodda dizi oluşturma mantığını açıklamanız mümkün mü?
Split komutu değeri direkt olarak dizi mi yapıyor?Açıklama yapabilir miyiz?
My_Array = Split(My_String, Chr(10), say) olduğu gibi mi?

Ben değeri chr(10) ayracı ile bölerek değilde her bir karakteri dizi içine nasıl alabilirim?
Cevabınızı aşağıdaki linkteki sorun için kullanacağım.
http://www.excel.web.tr/f48/hucredeki-deoerleri-daoytmak-t141845.html#post770686

Aşağıdaki kodu kullanabilirsiniz.
Kod:
Sub Makro()
    Dim Veri    
    Veri = Split(Range("A1"), Chr(10))    
    MsgBox UBound(Veri) + 1
End Sub
A1
 
SPLIT fonksiyonu veriyi belirtilen ayıraç karakterine göre parçalara ayırmaktadır.

Bu oluşan diziyi UBOUND fonksiyonu ile yönetiyoruz.

Oluşan parçaların karakterlerini kontrol etmek için ise klasik döngüleri kullanabilirsiniz. Uzunluk fonksiyonu ile verinin karakterlerini döngüye alıp tek tek sorgulayabilirsiniz.

Forumda Ubound ifadesi ile arama yaparsanız örneklere ulaşabilirsiniz.
 
Geri
Üst