• DİKKAT

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

Eksi Değerleri Sıfır Yap, Formülleri Silmeden

Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Merhaba,

Aşağıdaki kod, değeri sıfırdan küçük, yani eksi olan değerleri "sıfır" yapıyor,

Bu aralıktaki (L2:N100) veriler formüllerle geliyor, kod çalıştırılınca formüller siliniyor ve değer "sıfır" (0) oluyor,

İsteğim, formüller silinmeden - (eksi) değerler sıfır (0) olabilir mi ?

Teşekkür ederim.

Kod:
Sub Eksileri_sıfır_yap ()
For Each c In Range("L2:N100")
    If c.Value < 0 Then
        c.Value = 0
    End If
Next c
End Sub
 
Merhaba.

Sayın askm'nin müsadeleriyle.

►Aslında mevcut formüllerinizi =MAK(mevcut formül;0) şeklinde değiştirerek formül ile çözüme ulaşabilirsiniz.
►Bu işlemi kod üzerinden yapmak için aşağıdaki şekilde deneyin. Kod;
-- hücrede formül var ve formül sonucu NEGATİF ise, mevcut formülü =MAK(mevcut formül;0) şeklinde değiştirir,
-- hücrede formül var ve formül sonucu 0 veya POZİTİF ise o hücrede işlem yapmaz,
-- hücrede formül yok ve hücre değeri METİN/0/POZİTİF SAYI ise hücrede işlem yapmaz,
-- hücrede formül yok ve hücre değeri NEGATİF sayı varsa o sayıyı 0 yapar.
.
Kod:
[B]Sub Eksileri_sıfır_yap()[/B]
For Each c In Range("L2:N100")
    If c.HasFormula And c.Value < 0 Then
        c.Formula = "=MAX(" & Mid(c.Formula, 2, Len(c.Formula) - 1) & ",0)"
    ElseIf c.Value < 0 Then
        c.Value = 0
    End If
Next c
[B]End Sub[/B]
 
Sayın Ömer BARAN merhaba,

Teşekkür ederim, formül ve makro için.

Benzer bir konuda önerinize ihtiyacım var,

Digit'lerden kaynaklı olarak, formülün sonucu ; -0,001 yada -0,00000000123 yada -0,000 vb. gibi, sıfırdan sonra 2 veya 3 veya 4 veya daha fazla rakamlardan oluşuyor.

Bir yardımcı sütun açtım ( örn ; O5) , oraya formülle sonucu aldım ve sonuç; -0,001 çıktı,

L5'e , =EĞER(O5<-0,001;0;O5) yap dersek te çözüm olabilir mi ? Olabilir ise formülü rica ediyorum.

Tekrar teşekkür ederim.
 

Ekli dosyalar

bunun cevabını bende merak ediyorum ömer baran hocam. nasıl yapabiliriz acaba.
 
ömer baran hocam netsisten veri çekiyorum veriler tam sayı veya sıfırdan sonra virgülden sonra 12 13 tane sayı geliyor bu veriler raporu yenilediğimde sürekli değişiyor. hücredeki bu verileri nasıl yuvarlayabiliriz.

örneğin: 6,799978979978 sayısını 6,79 nasıl yapabilirim.
 
Sayın Ömer BARAN merhaba,

Teşekkür ederim, formül ve makro için.

Benzer bir konuda önerinize ihtiyacım var,

Digit'lerden kaynaklı olarak, formülün sonucu ; -0,001 yada -0,00000000123 yada -0,000 vb. gibi, sıfırdan sonra 2 veya 3 veya 4 veya daha fazla rakamlardan oluşuyor.

Bir yardımcı sütun açtım ( örn ; O5) , oraya formülle sonucu aldım ve sonuç; -0,001 çıktı,

L5'e , =EĞER(O5<-0,001;0;O5) yap dersek te çözüm olabilir mi ? Olabilir ise formülü rica ediyorum.

Tekrar teşekkür ederim.
Merhaba Sayın 1Al2Ver.

Son durumu tam anladığımı söyleyemeyeceğim. Bir'den fazla örnekle durumu açıklarsanız yerinde olur sanırım.
Virgülden sonrasını belli bir karakterden sonra yuvarlamak veya tamamen atmak mümkün olabilmesi lazım.

Olmasını istediğiniz sonucu tam olarak farklı örnekler üzerinden açıklarsanız bakayım.

Ayrıca, anladığım kadarıyla belgeniz makro içeren belge, o zaman tüm işlemleri makro kodlar üzerinden yapmanızını daha uygun olacağını düşünüyorum. Verilerin hücrelere yazılmasını sağlayan (formüllerde kullanılan GİRİŞ-ÇIKIŞ-VERİLER sayfaları) işlemleri yapan kodların içinde olacağı örnek belge eklerseniz daha sağlıklı bir yol izlenmiş olacağını düşünüyorum.
.
ömer baran hocam netsisten veri çekiyorum veriler tam sayı veya sıfırdan sonra virgülden sonra 12 13 tane sayı geliyor bu veriler raporu yenilediğimde sürekli değişiyor. hücredeki bu verileri nasıl yuvarlayabiliriz.

örneğin: 6,799978979978 sayısını 6,79 nasıl yapabilirim.
Sayın simyacı, sorunuzu örnek belge üzerinden destekleyerek ve olmasını istediğiniz sonuçları da elle yazmak suretiyle belirterek sorarsanız çözüm üretilebilir diye düşünüyorum.
Netsis'ten veri aldığınız gerçek belgenizin özel kısımlarını ayıklayıp bir örneğini eklerseniz daha hızlı ve net çözüm bulunabilir sanırım.
.
 
Geri
Üst