• DİKKAT

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

Otomatik makro

  • Konbuyu başlatan Konbuyu başlatan kadir78
  • Başlangıç tarihi Başlangıç tarihi

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
İyi günler. Aşağıdaki kodları Korhan hocam yazmıştı ve sorunsuz çalışıyor.
Kod:
with range("V5:V20000")
.formula = "=ROUND(IFERROR($R5/$Q5*U5,0),0)"
.value = .value
end

Ben bu kodların otomatik çalışması için şu başlıkları ekledim fakat Excel çok kasmaya, yavaşlamaya başladı. Bu kodların alternatifi varsa yazarmısınız.
Kod:
Private sub worksheet_selectionchange(byval target as excel.range)

Application.EnableEvents = False

With target

With Range("V5:V20000")
.formula = "=ROUND(IFERROR($R5/$Q5*U5,0),0)"
.value = .value

End With

Application.EnableEvents = True

End Sub
 
Son düzenleme:
Şu şekilde dener misin?
C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    Veri = Range("Q5:U20000").Value
    ReDim Liste(1 To UBound(Veri, 1), 1 To 1)
    For i = 1 To UBound(Veri, 1)
        If Veri(i, 1) = 0 Then
            Liste(i, 1) = 0
        Else
            Liste(i, 1) = WorksheetFunction.Round(Veri(i, 2) / Veri(i, 1) * Veri(i, 5), 0)
        End If
    Next
    Range("V5:V2000") = Liste
    Application.EnableEvents = True
End Sub
 
Şu şekilde dener misin?
C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    Veri = Range("Q5:U20000").Value
    ReDim Liste(1 To UBound(Veri, 1), 1 To 1)
    For i = 1 To UBound(Veri, 1)
        If Veri(i, 1) = 0 Then
            Liste(i, 1) = 0
        Else
            Liste(i, 1) = WorksheetFunction.Round(Veri(i, 2) / Veri(i, 1) * Veri(i, 5), 0)
        End If
    Next
    Range("V5:V2000") = Liste
    Application.EnableEvents = True
End Sub
Çok sağolun Teşekkürler ÖmerFaruk bey yazdığınız kodlar çalıştı elinize emeğinize sağlık.
 
Rica ederim. Kolay gelsin.
 
Geri
Üst