division by zero

1 2 3 4 5 6 7 8
08/09/2010, 10:44

accessman

iyi günler
hayırlı arifeler

eklediğim örnekte iki metin kutusuna bölme işlemi uygulanıyor
bölen "0" ise division by zero uyarısı veriyor

Private Sub Komut0_Click()
On Error GoTo hata_var
'If Metin1 / Metin3 = "division by zero" ise bir sonraki adıma geç
If Metin1 / Metin3 <> Metin1 \ Metin3 Then
MsgBox "geçersiz sonuç"
Else
Metin6 = Metin1 / Metin3
End If

hata_var:
If Err.Number = 11 Then MsgBox "Sıfıra bölme yapamazsınız"
End Sub

If Err.Number = 11 Then MsgBox "Sıfıra bölme yapamazsınız"
yazmama rağmen bu işleme girmeyip hata mesajı çıkıyor
yapmak istediğim bu
metin1/metin3 ifadesini division by zero mesajını almadan kod yazarak
algılayıp bir sonraki adıma geçmek
if metin3=0 gibi bir şey isstemiyorum
çünkü bu örnek olsun diye ekledim
bazen formul 10-15 farklı değişkenin hangi sırada "/" işareti geleceği belli olmadan kontrol olması gerekiyor
ifadenin tümünün
if metin1/metin3="divion by zero" ise bir sonraki adıma geç
şeklinde değerlendirilmeye girmesi gerekiyor
teşekkürler
08/09/2010, 11:00

Kur@l

Sayın Accessman;
Aşağıdaki şekilde kodunuz değiştirin bakalım ne olacak.

Private Sub Komut0_Click()
On Error GoTo hata_var
If Err.Number = 11 Then GoTo hata_var ' Ben Bu Satırı Ekledim...
'If Metin1 / Metin3 = "division 00by zero" ise bir sonraki adıma geç
If Metin1 / Metin3 <> Metin1 \ Metin3 Then
MsgBox "geçersiz sonuç"
Else
Metin6 = Metin1 / Metin3
End If
Exit Sub
hata_var:
MsgBox "Sıfıra bölme yapamazsınız Ercan"
Resume Next ' Bu satırda hata mesajını verdikten sonra sonraki adıma geçmenizi saağlar...
End Sub

Kolay gelsin.
08/09/2010, 11:10

accessman

teşekkürler çalıştı
ellerinize sağlık
sıfırı bölmeye çalışırsak ne yapacağız

maalesef olmuyormuş yanlış bakmışım
tekrara bakabilirmisiniz
08/09/2010, 11:33

accessman

maalesef çözüm olmadı
tekrar gözden geçirebilirmisiniz
08/09/2010, 12:06

accessman

buda olmadı

Kod:
Private Sub Komut0_Click()

On Error GoTo HataKontrol

If Metin1 / Metin3 <> Metin1 \ Metin3 Then
MsgBox "geçersiz sonuç"
Else
Metin6 = Metin1 / Metin3
End If

Exit Sub 'burada programa son verilir.

HataKontrol:

Select Case Err.Number

Case 11: Mesaj = "Sıfıra bölünme hatası oluştu!!!"

End Select

MsgBox Mesaj

Resume Next

End Sub
08/09/2010, 12:19

alpeki99


Private Sub Komut0_Click()
On Error Resume Next

If Metin1 / Metin3 <> Metin1 \ Metin3 Then
MsgBox "geçersiz sonuç"
Else
Metin6 = Metin1 / Metin3
End If

End Sub

On Error Resume Next sizin çözümünüzdür. Hata durumunda devam edebilmenizi sağlar.

Örnek dosya ekleyerek sizin çalışma mantığınıza göre çözüm üretmemizi kolaylaştırdığınız için teşekkür ederiz ayrıca daha önce uyarmamıza rağmen 3 ve 4. mesajlarda flood yaptığınız için artık bir uyarı cezası vermek zorundayım.
1 2 3 4 5 6 7 8