• DİKKAT

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

Makro ile formül

Katılım
10 Nisan 2014
Mesajlar
113
Excel Vers. ve Dili
2013 ingilizce
Arkadaşlar merhaba,

Makro ile bir sütuna aşağıdaki formülü nasıl atayabilirim?

I2=L2x1,18
I3=L3x1,18
I4=L4x1,18

Böyle devam ediyor. Bütün I sütununda bu formül olsun istiyorum. Ayrıva L boş ise I'da boş olsun hata vermesin.

Makro kullanmak istememin sebebi, Hücreye formül ile yazdığımda araya satır eklendiğinde doğal olarak formül gelmiyor. Kopyalayıp eklemek gerekiyor. Araya satır eklendiğinde formülü de otomatik dolduracak başka bir yöntem bilen varsa ve söylerse sevinirim:)

Teşekkürler
 
Örnek eklemediğiniz için, eğer sheet adının "Sayfa1" olduğunu varsayarsak,

Kod:
Sub hesapla()
For i = 2 To Sheets("Sayfa1").[I65536].End(3).Row
Sheets("sayfa1").Cells(i, "I").Value = Sheets("sayfa1").Cells(i, "L").Value * 1.18

Next

MsgBox " işlem tamam"

End Sub
 
Örnek eklemediğiniz için, eğer sheet adının "Sayfa1" olduğunu varsayarsak,

Kod:
Sub hesapla()
For i = 2 To Sheets("Sayfa1").[I65536].End(3).Row
Sheets("sayfa1").Cells(i, "I").Value = Sheets("sayfa1").Cells(i, "L").Value * 1.18

Next

MsgBox " işlem tamam"

End Sub

Merhaba,

Teşekkür ederim ancak bu makro'nun otomatik çalışmasını nasıl sağlayabiliriz. Yani her L hücresine değer girildiğinde sayfada I hücresinde 1.18 ile çarparak yazsın.
 
.

INSERT > TABLE ile verilerinizi Tablo şeklinde tutarsanız. Formüllerde sıkıntı çekmezsiniz.

.
 
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [L:L]) Is Nothing Or Target.Row < 2 Then Exit Sub
    
    Target.Offset(0, -3).FormulaR1C1 = "=RC[3]*1.18"

End Sub
 
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [L:L]) Is Nothing Or Target.Row < 2 Then Exit Sub
    
    Target.Offset(0, -3).FormulaR1C1 = "=RC[3]*1.18"

End Sub

Necdet Bey merhaba,

Bu sayfa için satır numaralarını otomatik yazan başka bir makro ile çakışıyor o makronun formülü aşağıda ki gibi Worksheet_Change kısmı aynı olduğu için hata veriyor

Diğer makro aşağıdaki gibi. Ne yapmam gerekir?

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E2:E" & Rows.Count)) Is Nothing Then Exit Sub
Range("A2:A" & Rows.Count).ClearContents
With Range("A2:A" & Cells(Rows.Count, "E").End(3).Row)
.Formula = "=IF(E2="""","""",COUNTA(E$2:E2))"
.Value = .Value
End With

End Sub
 
Merhaba,

Kodlarınızı aynen korudum, aşağıdaki gibi deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [E:E, L:L]) Is Nothing Or Target.Row < 2 Then Exit Sub
    
    If Target.Column = 5 Then
        Range("A2:A" & Rows.Count).ClearContents
        With Range("A2:A" & Cells(Rows.Count, "E").End(3).Row)
        .Formula = "=IF(E2="""","""",COUNTA(E$2:E2))"
        .Value = .Value
        End With
    Else
        Target.Offset(0, -3).FormulaR1C1 = "=RC[3]*1.18"
    End If

End Sub
 
Merhaba,

Öncesinde VBA kodu yazdığım bir çalışma sayfasında makro kaydedip butona atama işlemi yapmaya çalışıyorum. Aslında daha önce farklı bir makroyu aynı şekilde kullanıyordum. Ancak yaptığım bazı değişikliklerden sonra şuan için makro içerisindeki eylemlerden birisini yapmıyor. Makronun çalışması adına bir hata almıyorum ancak bir hücreye girdiğim bir formülü ya siliyor ya da yazmıyor çözemedim. Yapmaya çalıştığım şeyi anlatan açıklamanın bulunduğu örnek dosyayı ekledim. Yardımlarınızı rica ediyorum.

http://s6.dosya.tc/server6/bx15mz/MAKRO.rar.html
 
Uğraşmaya devam ediyorum ancak henüz çözüm sağlayamadım. Yardımcı olabilirseniz çok sevinirim.
 
Geri
Üst