• DİKKAT

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

Dinamik Hücre Makrosu

Katılım
17 Aralık 2012
Mesajlar
133
Excel Vers. ve Dili
Microsoft 365
Merhabalar;

Bir çalışmaya ihtiyacım var. Belki bir kaç yolu var ama ben özellikle bu şekilde olmasını talep ediyorum.

Dosyada adreslemelerle talebimi anlattım ama kısaca;

Aşağıdaki resimde yer alan tabloda göreceğiniz üzere kur hesaplamam var. Hangi hücreye rakam girersem diğer hücreler elle girdiğim rakamın karşılığı olan sonuçları vermeli.
O sonuçların Formüllerini ben yazdım dosyaya. Sizden sadece dinamik olarak her hücreye manuel girdi yapılabilir, aynı zamanda dinamik bir şekilde diğer hücrelere de formül sonuçları gelebilir hale getirecek bir makro konusunda destek rica ediyorum...
Ekran Alıntısı.PNG
 

Ekli dosyalar

Sayfanızın kod bölümüne aşağıdaki kodu uygulayıp deneyiniz.

Kod:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, Range("E4:E6")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Select Case Cells(Target.Row, "C")
        Case "TRY"
            Range("E2") = Target.Value
            Range("F2") = Cells(Target.Row, "C")
            Range("E5") = Target.Value / Range("D5").Value
            Range("E6") = Target.Value / Range("D6").Value
        Case "USD"
            Range("E2") = Target.Value
            Range("F2") = Cells(Target.Row, "C")
            Range("E4") = Target.Value * Range("D5").Value
            Range("E6") = (Target.Value * Range("D5").Value) / Range("D6").Value
        Case "EUR"
            Range("E2") = Target.Value
            Range("F2") = Cells(Target.Row, "C")
            Range("E4") = Target.Value * Range("D6").Value
            Range("E5") = (Target.Value * Range("D6").Value) / Range("D5").Value
    End Select
Son: Application.EnableEvents = True
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Son If Intersect(Target, Range("E4:E6")) Is Nothing Then Exit Sub Application.EnableEvents = False Select Case Cells(Target.Row, "C") Case "TRY" Range("E2") = Target.Value Range("F2") = Cells(Target.Row, "C") Range("E5") = Target.Value / Range("D5").Value Range("E6") = Target.Value / Range("D6").Value Case "USD" Range("E2") = Target.Value Range("F2") = Cells(Target.Row, "C") Range("E4") = Target.Value * Range("D5").Value Range("E6") = (Target.Value * Range("D5").Value) / Range("D6").Value Case "EUR" Range("E2") = Target.Value Range("F2") = Cells(Target.Row, "C") Range("E4") = Target.Value * Range("D6").Value Range("E5") = (Target.Value * Range("D6").Value) / Range("D5").Value End Select Son: Application.EnableEvents = True End Sub

Üstadım harikasınız... Tam istediğim gibi. Çok teşekkürler
 
Korhan hocam,
kod ile ilgili iki adet sorum olacak,
birincisi option excplicit ne işe yarıyor?

ikincisi

application.enableevents kodunun işlevi nedir? yardımcı olabilir misiniz?
teşekkür ederim.
 
"Option Explicit" ; Kod içinde kullanılan ve genellikle "Dim" ile başlayan değişken tanımlamalarını yazmayı zorunlu kılar. Bu satırı kaldırıp kod yazarsanız Dim tanımlamalarını kullanma zorunluluğunuz ortadan kalkar.

"Application.EnableEvents" ; Uygulamaya ait olayların tümünü kontrol etmek için kullanılır. (Change - Calculate gibi)
 
option exclipiti anladım fakat ikincisinin amacını anlayamadım.
 
Geri
Üst