Soru Dizi içindeki verinin sayı formatı.

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
"Olabilir böyle"..... diye tanımladığınız durum sizin kodlarda var zaten, yanına açıklama yazmışınız.....

Hücredeki hata denetimini kaldırmak istiyorsanız da; 19 No'lu mesajımın son bölümünü okuyun.

.
 
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
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 .....

.
Evet hocam bu seçeneği biliyordum.
Ama ben böyle ayar değiştirmek istemiyorum.
En doğrusu sütunlara numberformat uygulatmak galiba.
 
Son düzenleme:
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
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 .....

.
Evet hıcam bu seçeneği biliyordum.
Ama ben böyle ayar değiştirmek istemiyorum.
En doğrusu sütunlara numberformat uygulatmak galiba.bu dur
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
Bu db
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
Bu durum nasıl çözülebilir Transpose kullanılmadan?
 
Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Listbox olayını alttaki gibi hallettim.Düğün işe yaradı :geek::geek::geek::geek:

Bu arada Textbox değerini tüm seçtirmeyide buldum lazım olursa diye paylaşayım.En altta kod.

Kod:
Private Sub TextBox1_Change()
  
 Dim brr(): On Error GoTo son
   Application.ScreenUpdating = False

With Me.ListBox1
  
    aa = [A1:D10000].Value
  If Me.TextBox1.Value = "" Then GoTo son

    say = 1
        For Y = 1 To 10000
            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) = Format(aa(Y, 4), "##,0.00")
                say = say + 1
            End If
        Next
        .Column = brr

    Application.ScreenUpdating = True
    Me.Label1.Caption = Me.ListBox1.ListCount & " Adet Var..."
    Me.Label1.Visible = True
    Erase aa: Erase brr
    Exit Sub
son:
  .Clear
   Application.ScreenUpdating = True
    Erase aa: Erase brr
     Me.Label1.Visible = False
End With
  
End Sub
Kod:
Sub SelTextBox(xTextBox As Object) 'Textbox tüm secme
    With xTextBox
        .SelStart = 0
        .SelLength = Len(.Text)
    End With
End Sub

Private Sub UserForm_Initialize() 'Textbox tüm secme

    Call SelTextBox(Me.TextBox1.Object)
 
End Sub
 
Üst