• DİKKAT

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

Döngüsel olarak başvurduğu hücreye yazma

serkan guvenc

Altın Üye
Katılım
21 Kasım 2013
Mesajlar
47
Excel Vers. ve Dili
2007
Ekteki dosyada e sütünundaki sayının %60' alıp kalanı başvurduğu hücreye yazdırmak istiyorum.
sadece başvurduğu hücreye yazsın istiyorum.Buna uygun formül varmıdır?Teşekkürler
 

Ekli dosyalar

Merhaba, dosyanızın içi boş
 
Dosyanız boş.
 
Makro örneği.
Sayfa1 in kod sayfasına ekleyip E sütununa değer yazınız.
Kod:
Public kontrol As Byte
Private Sub Worksheet_Change(ByVal Target As Range)
If kontrol = 1 Then Exit Sub
    If Selection.Count > 1 Then Exit Sub
    kontrol = 0
    If IsNumeric(Target) Then
        If Target.Column = 5 Then
            kontrol = 1
            With Target
                .Value = .Value * 0.6
            End With
            GoTo son
        End If
    Else
        MsgBox "Sayısal bir değer yazmadınız.", , ""
    End If
son:
kontrol = 0
End Sub
 
sayfa 1 sütünunda d sutünuna aynı formülü çoğaltıp % 40ını hesaplatabilirmiyiz
 
D sütunu için son: satırının üzerine ekleyiniz.
Kod:
If kontrol = 1 Then Exit Sub
    If Selection.Count > 1 Then Exit Sub
    kontrol = 0
    If IsNumeric(Target) Then
        If Target.Column = 4 Then
            kontrol = 1
            With Target
                .Value = .Value * 0.4
            End With
            GoTo son
        End If
    Else
        MsgBox "Sayısal bir değer yazmadınız.", , ""
    End If
 
Makro örneği.
Sayfa1 in kod sayfasına ekleyip E sütununa değer yazınız.
Kod:
Public kontrol As Byte
Private Sub Worksheet_Change(ByVal Target As Range)
If kontrol = 1 Then Exit Sub
    If Selection.Count > 1 Then Exit Sub
    kontrol = 0
    If IsNumeric(Target) Then
        If Target.Column = 5 Then
            kontrol = 1
            With Target
                .Value = .Value * 0.6
            End With
            GoTo son
        End If
    Else
        MsgBox "Sayısal bir değer yazmadınız.", , ""
    End If
son:
kontrol = 0
End Sub
Adem hocam "kontrol" değişkenini sayfa olaylarını devre dışı bırakmak için kullanmışsınız galiba. Çok iyi bir çözüm, tebrik ederim. ApplicationEnableEvents=False yapıp hata anında sıkıntı yaşanması önlenmiş oluyor.
 
Application.EnableEvents kullanmak aklıma gelmemişti @YUSUF44 Hocam teşekkür ederim bilgilendirme için. Kontrol satırları iptal edilmiştir. :)
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
    If Selection.Count > 1 Then Exit Sub
    If IsNumeric(Target) Then
        If Target.Column = 5 Then
            With Target
                .Value = .Value * 0.6
            End With
        End If
    Else
        MsgBox "Sayısal bir değer yazmadınız.", , ""
        GoTo son:
    End If

    If IsNumeric(Target) Then
        If Target.Column = 4 Then
            With Target
                .Value = .Value * 0.4
            End With
        End If
    Else
        MsgBox "Sayısal bir değer yazmadınız.", , ""
    End If
son:
Application.EnableEvents = True
End Sub
 
Bence o hali daha iyiydi. Hata anında olayların pasif kalması riski yok en azından.
 
Her iki durumda denemeler yaptım, sıkıntı çıkmadı, konu sahibi hangisini kullanmak isterse artık Hocam. :)
 
Geri
Üst