Soru Dizi içindeki verinin sayı formatı.

Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Merhaba.

Alttaki dosyada F1 e veri girince veriler G:I aralığında listeleniyor düşeyara gibi.
Benim sormak istediğim şu;

Koddaki brr(say, 3) = aa(y, 4) olan yere "#,##0.00" formatını uygulatmak.
Koda açıklama ekledim.

http://dosya.co/te185726s2ve/Test_68.xlsm.html

Kod:
Private Sub CommandButton1_Click()


    [G:Y] = ""
    
   On Error GoTo son
  
    Dim brr()

   Application.ScreenUpdating = False

    aa = [A1:D100000].Value
    say = 1
    xx = [F1]
        For y = 1 To 100000

            If aa(y, 1) = xx Then  'Hizli icin
            ReDim Preserve brr(1 To 100000, 1 To 4)
                brr(say, 1) = aa(y, 2)
                brr(say, 2) = aa(y, 3)
                brr(say, 3) = aa(y, 4)
'                brr(say, 3) = Format(aa(y, 4), "#,##0.00") 'Böyle yapinca Text olarak cikiyor sonuc :)
'                brr(say, 3) = CDbl(Format(aa(y, 4), "#,##0.00")) 'Böyle yapinca olmuyor :)
                say = say + 1
            End If
        Next
        Range("G1:I100000").Value = brr
'        Range("I1:I100000").NumberFormat = "#,##0.00"'Böyle olmasini istemiyorum
   Application.ScreenUpdating = True

    Erase aa: Erase brr
    Exit Sub
son:
   Application.ScreenUpdating = True
    Erase aa: Erase brr
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
buyurun.:cool:
Kod:
brr(say, 3) = CDbl(aa(y, 4))
 
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Hepsi sayı ve Genel formatta. Bu arada ReDim Preserve brr(1 To 100000, 1 To 4) burdaki 4 yerine 3 olmalıymış.
Yani sonuç olmadı format olayı.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sanmıyorum.
Şöyle deneyin ve aa(y,4) içindeki değeri okuyun.
Bu satırı hata veren satırın bir üstüne yazın.:cool:
Kod:
msgbox aa(y,4)
 
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Hata yok. mesela sonuç 100.007,00 çıkmalı 100007 yerine kod bitiminde.
Bu arada msgbox olayını denedim formatsız listeleniyor 100007 gibi.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Böyle deneyin.
Kod:
brr(say, 3) = aa(y, 4)
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Formatnumber fonksiyonunu kullanın.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Böyle denedim I sütunu formatlandı.
Kod:
[G:Y] = ""
   
   On Error GoTo son
 
    Dim brr()

   Application.ScreenUpdating = False

    aa = [A1:D100000].Value
    say = 1
    xx = [F1]
        For y = 1 To 100000

            If aa(y, 1) = xx Then  'Hizli icin
            ReDim Preserve brr(1 To 100000, 1 To 3)
                brr(say, 1) = aa(y, 2)
                brr(say, 2) = aa(y, 3)
                brr(say, 3) = aa(y, 4)
'                brr(say, 3) = Format(aa(y, 4), "#,##0.00") 'Böyle yapinca Text olarak cikiyor sonuc :)
'                brr(say, 3) = CDbl(Format(aa(y, 4), "#,##0.00")) 'Böyle yapinca olmuyor :)
                say = say + 1
            End If
        Next
        Range("G1:I100000").Value = brr
        Range("I1:I100000").NumberFormat = "#,##0.00" 'Böyle olmasini istemiyorum
   Application.ScreenUpdating = True

    Erase aa: Erase brr
    Exit Sub
son:
   Application.ScreenUpdating = True
    Erase aa: Erase brr
 
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Böyle denedim I sütunu formatlandı.
Kod:
[G:Y] = ""
  
   On Error GoTo son

    Dim brr()

   Application.ScreenUpdating = False

    aa = [A1:D100000].Value
    say = 1
    xx = [F1]
        For y = 1 To 100000

            If aa(y, 1) = xx Then  'Hizli icin
            ReDim Preserve brr(1 To 100000, 1 To 3)
                brr(say, 1) = aa(y, 2)
                brr(say, 2) = aa(y, 3)
                brr(say, 3) = aa(y, 4)
'                brr(say, 3) = Format(aa(y, 4), "#,##0.00") 'Böyle yapinca Text olarak cikiyor sonuc :)
'                brr(say, 3) = CDbl(Format(aa(y, 4), "#,##0.00")) 'Böyle yapinca olmuyor :)
                say = say + 1
            End If
        Next
        Range("G1:I100000").Value = brr
        Range("I1:I100000").NumberFormat = "#,##0.00" 'Böyle olmasini istemiyorum
   Application.ScreenUpdating = True

    Erase aa: Erase brr
    Exit Sub
son:
   Application.ScreenUpdating = True
    Erase aa: Erase brr
Range("I1:I100000").NumberFormat = "#,##0.00" 'Böyle olmasini istemiyorum
Bunu pasif yapmıştım en son çare olarak.
 
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Tam analatabilmek için userform,textbox ve listbox ekledim.

Kodddaki
' For i = 0 To .ListCount - 1
' .List(i, 2) = Format(.List(i, 2), "##,0.00")
' Next

olan yeri iptal ettim.

Birde ilgili yerleri ReDim Preserve brr(1 To say, 1 To 3) ve .List = brr yapınca neden işlem olmuyor hata verip.
Say yerine 27 yazıncada listboxtta boş yerlerde listeleniyor.

http://www.dosya.tc/server15/rph38z/Deneme_68.rar.html

Kod:
Sub xxx()

   On Error GoTo son
    Dim brr()

   Application.ScreenUpdating = False

With Me.ListBox1

    .ColumnCount = 4
    .ColumnWidths = "50;50;50;50"
    aa = [A1:D27].Value
 
    say = 1
        For y = 1 To 27

            If aa(y, 1) = CDbl(Me.TextBox1.Value) Then  'Hizli icin
             ReDim Preserve brr(1 To 3, 1 To say)
                brr(1, say) = aa(y, 2)
                brr(2, say) = aa(y, 3)
                brr(3, say) = aa(y, 4)
                say = say + 1
            End If
        Next
        .List = Application.Transpose(brr)

'    For i = 0 To .ListCount - 1
'        .List(i, 2) = Format(.List(i, 2), "##,0.00")
'    Next


   Application.ScreenUpdating = True

    Erase aa: Erase brr
    Exit Sub
son:
.Clear
   Application.ScreenUpdating = True
    Erase aa: Erase brr
    
End With

End Sub
 
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Range("I1:I100000").NumberFormat = "#,##0.00"
Bu kodu kullanmadan halletmek istiyorum :)
O kıd son çare :)
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Onu kullanmak istemirsanız,Önceden I sütunu Biçimlendirip kodu öyle çalıştırın.:cool:
 
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Neyse sonra devam ederiz,düğün bizi bekliyor :) hocam.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Zafer Bey, düğünden sonra okumanız için yazıyorum;

Nümerik bir verinin kendisini formatlarsanız (biçimlendirirseniz), o veri artık "sayı" değil, "metin" olur. Zaten sizin orjinal kodunuzda da durum budur.

Eğer siz, hücrenin kendisini formatlarsanız (biçimlendirirseniz), veriyi biçimlendirilmiş olarak görürsünüz ama aslında hücredeki veri orjinali gibi "sayı" (nümerik) olarak durmaya devam eder ve sonradan matematiksel işlemlerde kullanılabilir.

Şimdi siz hangisinin olmasını istiyorsanız onu söyleyin de, size ona göre yardımcı olunsun.

Yani, kod çalıştıktan sonra örneğin I10 hücresindeki verinin görünür hali 125.689,35 olsun ama I10 hücresini seçince formül çubuğunda 125689,35 mi gözüksün yoksa; hem I10 hücresindeki görünür hali, hem de bu hücre seçildiğinde formül çubuğunda 125.689,35 mi gözüksün?

Birinci durumda I10 hücresindeki veri "sayı", ikinci durumda ise "metin" dir.

Ama, eğer sizin sorununuz; hücrede verinin "metin" olarak gözüktüğü durumlarda,hücrenin sol üst köşesindeki yeşil oku görmek istemiyorsanız o zaman; o hücrelerden birini seçin, yandaki "!" işaretli simgeye tıklayın, açılan menüden en son sıradaki seçeneği tıklayın (Error checking options). Karşınza gelecek düzenleme sayfasında "Error checking" başlığının altındaki "Enable background error checking" seçenğindeki onay işaretini kaldırın, o oklar bir daha ortaya çıkmaz.

Dediğim gibi, siz ilk önce verileri nasıl görmek istediğinize karar verin. Konu hakkında seçenekler bundan ibaret olup, başka da yapılabilecek bir şey olduğunu sanmıyorum .....

.
 
Son düzenleme:
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Bu
Zafer Bey, düğünden sonra okumanız için yazıyorum;

Nümerik bir verinin kendisini formatlarsanız (biçimlendirirseniz), o veri artık "sayı" değil, "metin" olur. Zaten sizin orjinal kodunuzda da durum budur.

Eğer siz, hücrenin kendisini formatlarsanız (biçimlendirirseniz), veriyi biçimlendirilmiş olarak görürsünüz ama aslında hücredeki veri orjinali gibi "sayı" (nümerik) olarak durmaya devam eder ve sonradan matematiksel işlemlerde kullanılabilir.

Şimdi siz hangisinin olmasını istiyorsanız onu söyleyin de, size ona göre yardımcı olunsun.

Yani, kod çalıştıktan sonra örneğin I10 hücresindeki verinin görünür hali 125.689,35 olsun ama I10 hücresini seçince formül çubuğunda 125689,35 mi gözüksün yoksa; hem I10 hücresindeki görünür hali, hem de bu hücre seçildiğinde formül çubuğunda 125.689,35 mi gözüksün?

Birinci durumda I10 hücresindeki veri "sayı", ikinci durumda ise "metin" dir. Başka bir alternatif de olmaz......

.
Olabilir böyle.
I10 hücresindeki görünür hali, hem de bu hücre seçildiğinde formül çubuğunda 125.689,35 mi gözüksün?
 
Üst