• DİKKAT

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

Yuvarlama makrosu

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
İyi günler. Yuvarlama formülünü makro kodlarına çeviremedim. Yardım edermisiniz.

=YUVARLA((EĞER(EHATALIYSA($R5/$Q5*U5);0;($R5/$Q5*U5)));0)

V sütununda 1200 satırda bu formül var bu formülleri makro kodlarına çeviremedim.
 
Tam olarak ne istiyorsunuz ? V sütunundaki sonuçlar formülle değil de makro ile mi yazılacak ?
Eğer öyleyse, bu kodlar işinize yarar sanırım.
Formüller 5. satırdan değil de başka satırdan başlıyorsa; For i = 5 To 1200 kodunu isteğinize göre düzenlersiniz.

C++:
Dim i, y, r, q, u As Integer


Sub Hesapla()

For i = 5 To 1200

r = Cells(i, "R"): q = Cells(i, "Q"): u = Cells(i, "U")
    
    If q <> 0 Then
    
        y = Round((r / q) * u, 0)
      
         Else: y = 0
    
    End If

Cells(i, "V") = y

Next i

End Sub
 
Hepsini ayrı ayrı deklare etmek gerekir....

dim i as integer, y as integer, r as integer ..... gibi.

Ayrıca bilgi için;


.
 
Tam olarak ne istiyorsunuz ? V sütunundaki sonuçlar formülle değil de makro ile mi yazılacak ?
Eğer öyleyse, bu kodlar işinize yarar sanırım.
Formüller 5. satırdan değil de başka satırdan başlıyorsa; For i = 5 To 1200 kodunu isteğinize göre düzenlersiniz.

C++:
Dim i, y, r, q, u As Integer


Sub Hesapla()

For i = 5 To 1200

r = Cells(i, "R"): q = Cells(i, "Q"): u = Cells(i, "U")
   
    If q <> 0 Then
   
        y = Round((r / q) * u, 0)
     
         Else: y = 0
   
    End If

Cells(i, "V") = y

Next i

End Sub
Teşekkür ederim sağolun.
 
Teşekkürler bilgilendirme için üstad ;)

Hepsini ayrı ayrı deklare etmek gerekir....

dim i as integer, y as integer, r as integer ..... gibi.

Ayrıca bilgi için;


.
 
Rica ederim.
Korhan Ayhan üstadın önerisine de bir bakın derim.
Ben for next döngülerini kullanırım. Ama gözlemlediğime göre with döngüleri daha verimli oluyor gibi.
Bundan sonra ihtiyacım olduğunda, ben de döngüler için; with kullanımını araştırmayı düşünüyorum.

İleride başka kodlama yaparken, işinize yarayabilir sizin de.

Teşekkür ederim sağolun.
 
Son düzenleme:
Rica ederim.
Korhan Ayhan üstadın önerisine de bir bakın derim.
Ben for next döngülerini kullanırım. Ama gözlemlediğime göre with döngüleri daha verimli oluyor gibi.
Bundan sonra ihtiyacım olduğunda, ben de döngüler için; with kullanımını araştırmayı düşünüyorum.

İleride başka kodlama yaparken, işinize yarayabilir sizin de.

"Bu sayfaya erişim veya bu işlemi gerçekleştirme izniniz yok." Uyarı verdi
 
Forumun ilgili bölümüne erişim için altın üyelik gereklidir.

Benim önerdiğim yöntemde formül belirlenen alana tek seferde yazdırılıp sonrasında değere çevrilmektedir.

Sizin formülü aşağıdaki gibi uygulayabilirsiniz. Hücre aralığını kendinize göre revize edebilirsiniz.

C++:
Option Explicit

Sub Test()
    With Range("V5:V1204")
        .Formula = "=ROUND(IFERROR($R5/$Q5*U5,0),0)"
        .Value = .Value
    End With
End Sub
 
Forumun ilgili bölümüne erişim için altın üyelik gereklidir.

Benim önerdiğim yöntemde formül belirlenen alana tek seferde yazdırılıp sonrasında değere çevrilmektedir.

Sizin formülü aşağıdaki gibi uygulayabilirsiniz. Hücre aralığını kendinize göre revize edebilirsiniz.

C++:
Option Explicit

Sub Test()
    With Range("V5:V1204")
        .Formula = "=ROUND(IFERROR($R5/$Q5*U5),0),0)"
        .Value = .Value
    End With
End Sub
Korhan hocam
5 yıllık Altın Üyelik için ödemeyi yaptım aktivasyonu bekliyorum Sağolun
 
Forumun ilgili bölümüne erişim için altın üyelik gereklidir.

Benim önerdiğim yöntemde formül belirlenen alana tek seferde yazdırılıp sonrasında değere çevrilmektedir.

Sizin formülü aşağıdaki gibi uygulayabilirsiniz. Hücre aralığını kendinize göre revize edebilirsiniz.

C++:
Option Explicit

Sub Test()
    With Range("V5:V1204")
        .Formula = "=ROUND(IFERROR($R5/$Q5*U5),0),0)"
        .Value = .Value
    End With
End Sub
Korhan hocam
Run-time error '1004' Hatasını verdi
 
#11 nolu mesajımı revize ettim. Yazarken bir parantez fazla olmuş. Ondan dolayı hata almışsınız.
 
Teşekkürler. Haluk üstad belirttiği linkde, bu tür değişken tipinden de bahsetmiş.

Tanımlama işlemlerini epey kolaylaştırabilecek türde yöntemlermiş. ;)

VBA' de pek bilinmeyen veya unutulan ama çok kullanışlı değişken tanımlama özelliği var.

Bakınız... Deftype statements

.
 
Geri
Üst