• DİKKAT

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

makro ile Egerli bolme islemi

Katılım
30 Kasım 2011
Mesajlar
205
Excel Vers. ve Dili
Ofis 2016 Tr 64 Bit , Turkce
Merhabalar, ekde dosyasini ekledigim , egerli formulun makrosunu nasil yapa bilirim,

B sutunda Sabit toplam degerlerim var F ve G sutununda kosullu gerceklestirecek degerlerim var D sutundada islemin gerceklestirilecegi sutunum var

Eger F sutunu bos ise B sutunu / F sutunu eger dolu ise B sutunu / G sutunu eger sonuc hatali ise Bos getirmesi gerekiyor, acaba bunun makrosunu nasil yapa biliriz,
yardimlariniz icin simdiden tesekkurler
 

Ekli dosyalar

ustat zaor bir olaymi bu sizler icin ,
 
. . .

Makro kodlarını butonlamı çalıştırmak istiyorsunuz yoksa
hücreye veri girdikçe otomatik hesaplamamı yapmalı...

. . .
 
Buton ile aşağıdaki şekilde yapabilirsiniz.
Kod:
Sub askm()
Dim Son As Long
Application.ScreenUpdating = False
Son = Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To Son
    If Cells(i, 6) > 0 Then
        Cells(i, 4) = Cells(i, 2) / Cells(i, 6)
    Else
        Cells(i, 4) = Cells(i, 2) / Cells(i, 7)
    End If
Next i
Application.ScreenUpdating = True
MsgBox "Hesaplama tamam...", vbInformation, "ASKM"
End Sub
 
Buton ile aşağıdaki şekilde yapabilirsiniz.
Kod:
Sub askm()
Dim Son As Long
Application.ScreenUpdating = False
Son = Range("B" & Rows.Count).End(xlUp).Row
. . .
. . .
. . .
MsgBox "Hesaplama tamam...", vbInformation, "ASKM"
End Sub

Sy askm
Örneğin B sütununda değer sıfır ise hata verecektir. Hata, boş/dolu vs. kontrolleride eklemenizde fayda var...

. . .
 
Haklısınız üstadım. Aşağıdaki şekilde olur sanırım.
Kod:
Sub askm()
Dim Son As Long
Application.ScreenUpdating = False
Son = Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To Son
On Error GoTo 10

    If Cells(i, 6) > 0 Then
        Cells(i, 4) = Cells(i, 2) / Cells(i, 6)
    Else
        Cells(i, 4) = Cells(i, 2) / Cells(i, 7)
    End If
10:
Next i
Application.ScreenUpdating = True
MsgBox "Hesaplama tamam...", vbInformation, "ASKM"
End Sub
 
Bu arada B sütunu sıfır olursa sonuç sıfır çıkar ama F ve G aynı anda sıfır olursa, else sonrası işleme geçer ve B/G yapacaktır. O zaman hata verir. Çünkü bir sayıyı sıfıra bölerseniz sonuç sıfır olur. Ama sıfırı bir sayıya bölemezsiniz.
 
Bu arada B sütunu sıfır olursa sonuç sıfır çıkar ama F ve G aynı anda sıfır olursa, else sonrası işleme geçer ve B/G yapacaktır. O zaman hata verir. Çünkü bir sayıyı sıfıra bölerseniz sonuç sıfır olur. Ama sıfırı bir sayıya bölemezsiniz.

Sagol ustad ellerinize saglik
 
Merhaba Ustat dosyayi tekrar gonderiyorum bir sorun daha cikti yardimlariniz lutfen tabloya A sutunu ekledim
A sutunudaki deger eger "Gdr" ise B sutunundaki degeri E sutununa aynisini getirmesi gerekiyor G v H sutundaki kosullar dikkate almadan degilse dikkate alicak tabiki , bu konudada yardimci ola bilirmisiniz cok mutesekkir olacagim , onceden yaptiginiz makroyu tabloya yerlestirdim ve tekrar gonderiyorum altta.

Saygilar,
 

Ekli dosyalar

Kod:
Sub askm()
Dim Son As Long
Application.ScreenUpdating = False
Son = Range("A" & Rows.Count).End(xlUp).Row ' Toplma Ruble
For i = 2 To Son
On Error GoTo 10
    If Cells(i, 1) <> "Gdr" Then
        If Cells(i, 7) > 0 Then  '
            Cells(i, 5) = Cells(i, 3) / Cells(i, 7)
        Else
            Cells(i, 5) = Cells(i, 2) / Cells(i, 8)
        End If
    Else
        Cells(i, 5) = Cells(i, 2)
    End If
10:
Next i
Application.ScreenUpdating = True
MsgBox "Hesaplama tamam...", vbInformation, "ASKM"
End Sub
 
Geri
Üst