• DİKKAT

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

#SAYI/0! sıfıra bolunme hatası

Katılım
25 Ağustos 2010
Mesajlar
56
Excel Vers. ve Dili
2003
Mrb. arkadaşlar

A2 hücresi = 0
B2 hücresi = 0
C2 hücresi = #SAYI/0!

bu kodlar farklı bir kitaptan geliyor, kitapta hesaplamalar sadece değer olarak alınmış, yani o kitapta hesaplama adımlarını göremiyorum. Bunlar kendi kitabıma taşıyıp,

B2 / A2 * 100

formülü çalıştırdığımda dolayısı ile sıfıra bölme hatası veriyor, yapmak istediğim bu hesaplamanın sonucu eğer "#SAYI/0!" bu gelirse 0(sıfır) yazıp geçmesi bunu nasıl bir döngü ile yapabilirim acaba. Aşağıdaki formülü denedim ancak işe yaramadı.

Not: Bu hesaplama birkaç sahifede yapılacak.

Sub test()
For i = 1 To Worksheets.Count

SAY = Worksheets(i).Name
Sheets(SAY).Select

If Range("A2").Value Or Range("B2")Value = 0 Then
Range("C2).Value = 0
Else
Range("C2).Value = izmir / haftalik * 100
Range("C2").Select
Selection.NumberFormat = "#,##0.00"
End If

Next i

End Sub
 

Ekli dosyalar

Merhaba,

Ekteki örneğinize göre;

Kod:
Sub hesapla()
izmir = Range("a2").Value
manisa = Range("b2").Value
msj = 0
If izmir > 0 Then msj = manisa / izmir * 100
MsgBox msj
End Sub

.
 
Ömer bey yanıtınız için teşekkürler ancak kullandığım dosya oldukça büyük o yüzden buna benze bir örnek hazırlayıp gönderdim ancak sizin kodu asıl dosyada kullandığımda run-time error 13 hatası veriyor beninde yapmak istediğim zaten eğer hata çıkarsa ilgili yere 0 yazsın
 
YANLIŞ If Range("A2").Value Or Range("B2")Value = 0 Then
DOĞRU If Range("A2").Value=0 Or Range("B2").Value = 0 Then

YANLIŞ Range("C2).Value = izmir / haftalik * 100
DOĞRU Range("C2").Value = izmir / haftalik * 100

eğer hızlı yazayım derken yanlış yazmadıysan kırmızı olan yerlere dikkat et.
 
Sayın systran bende kodları yazarken buraya öyle yazdım yani vba da kodlar doğru benim sorunum "C2" nin sonucu "#SAYI/0!" (yani sıfıra bölme hatasını yok saysın) verince vba çalışmayı durdurmasın istiyorum hatayı görünce o hücreye 0(sıfır) yazsın çalışmaya devam etsin.
 
prosedür içinde on error goto hata yapısını kullanmayı biliyor musun?
 
Evet ancak oda işe yaramadı mutlaka bir çözüm yolu olmalı ancak gel gelelim insan bildiği kadarıyla sınırlı, aşağıdaki kodu uygulamaya çalıştım yinede aynı hatayı almaya devam ediyom malesef.

Kod:
Sub test()

For i = 1 To Worksheets.Count

SAY = Worksheets(i).Name
Sheets(SAY).Select

If IsError(Range("B2").Value / Range("A2").Value * 100) Then
Range("C2").Value = 0
Else
Range("C2").Value = Range("B2").Value / Range("A2").Value * 100
End If

Next i

End Sub
 
örnek bir dosya olarak gönderebilir misin?
 
Evet ancak oda işe yaramadı mutlaka bir çözüm yolu olmalı ancak gel gelelim insan bildiği kadarıyla sınırlı, aşağıdaki kodu uygulamaya çalıştım yinede aynı hatayı almaya devam ediyom malesef.

Çözümü ilk mesajda size vermiştim. Bölme işlemlerinde sıfıra bölme sonucunda hata alıyorsunuz.

If IsError(Range("B2").Value / Range("A2").Value * 100) Then

Satırın yerine aşağıdaki satırı kullanın.

If Range("A2").Value = 0 Then

.
 
Geri
Üst