• DİKKAT

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

Sutundaki formül kod ile yapılabilir mi

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,677
Excel Vers. ve Dili
Excel 2010 32 bit
Üstadlar merhaba,
Ek dosyada detayları anlattığım bir sutundaki sabit bir formülü sayfanın kod bölümüne yazılacak bir kod ile yapabillirmiyiz.
Teşekkürler
 

Ekli dosyalar

Merhaba,

F sütununa veri girince karışılığına formül mü gelsin yoksa bir buton ile F sütununda dolu olan hücrelerin karşısına formül mü gelsin.

.
 
Ömer üstad merhaba,
f sutununda veri varsa veya girilmişse otomatik olarak bir butona bağlı olmadan sonucu verecek bir kod istemiştim.
 
Kemal bey,

Kodları ya hücre tetiklemesi ile çalıştırmalıyız yada butonla. Hüce seçimi ilede çalıştırabiliriz yalnız bu işlem her hareketde kodu çalıştıracağı için tavsiye etmem. Her haret ile çalışan bir kod excelde performans düşüklüğü yaratır.

Yinede tercih sizin.

1) Buton.
2) Belirli hücrelere giriş te çalışan kod ( Eğer seçenek bu ise sütun yada hücre aralıklarını yazınız.)
3) Her haretle çalışan kod.
4) Açılışta, kapanışta, kaydetmede vs.. çalışan kod.

Hangi yolu size uygunsa o şekilde düzenleyip yazarım.

.
 
ömer bey
1 yıllık cari listemin bulunduğu sahifedeki satır sayısı şuan 7000 satır.
Eğer dosyada 1 nolu kişi için yapmış olduğum basit formül sunduğunuz 4 seçenekten en az performansa etki edense kullanmaya devam edeyim.
Eğer kod ile önerdiğiniz 4 seçenekten hangisi performansa en az yük bindirecekse onu tercih edelim.
 
Tabloya veri işleyiş düzeninizi bilmeidiğim için tahmin yürütebilirim.

F sütununa verileri manuel giriyorsanız, F sütuna veri girince kodu çalıştıralım derim.

.
 
Ömer bey çok teşekkür ederim,
kodunuzu bekliyorum
 
A:G sütunları arasında herhangi bir hücreye veri girince kod çalışacaktır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Intersect(Target, Range("A2:G" & Rows.Count)) Is Nothing Then Exit Sub
 
    With Target
        Cells(.Row, "H") = "=F" & .Row & "-G" & .Row & ""
    End With
 
End Sub

.
 
Ömer hocam,
Emeğinize sağlık tam istediğim gibi süper oldu.
Selametle kalın.
 
Bir rica

Sayın Kemal Turan;

Günaydın ve hayırlı işler.

Sayın Ömer üstadımızın kodunu, veri girilen sayfanın "kod" kısmına yapıştırdıktan sonra "Kaydet" e tıkladığımda, aşağıdaki iletiyi aldım ve işlemi gerçekleştiremedim.

Nerede yanlış yaptığımı saptayamadım. Yardımınızı rica edeceğim. Teşekkürler.

Sevgi ve saygılar.
 

Ekli dosyalar

  • KoduKaydedemiyorum_11-10-2011 09-34-34.jpg
    KoduKaydedemiyorum_11-10-2011 09-34-34.jpg
    91.3 KB · Görüntüleme: 13
Merhaba,

2007 üstü sürümlerde makro içerikli dosyaları, farklı kaydet seçeneğinden makro içeren çalıma kitabı seçeneğini seçerek kaydetmeniz gerekir.

.
 
Sn.Assenucler
kodu yapıştırdıktan sonra dosyanızı farklı kaydet--kayıt türünü "makro içerebilen excel çalışma kitabı" nı seçerek kaydet.
excel 2010 da makroların çalışabilmesi için bu şekilde kayıt edilmesi gerekiyor.
Selametle kalın
 
ömer hocam merhaba ,
cevabınızı görmedim kusura bakmayın.
neyse çift dikiş oldu :)
 
Ömer bey merhaba.
Mevcut kodu bugün sistemime ekleyip çalışmaya başladım.
verileri tek tek girdiğimde formül devreye giriyor.
Fakat verileri aşağıya doğru sürükleyerek çoğalttığımda alttaki satırlarda formül devreye girmiyor.
Bu sorunu halledebilirmiyiz.
Teşekkür ederim.
16kb olmasına rağmen dosyayı yükleyemedim .Toplamda kotayı mı aştım acaba alt satırdaki
"""kemal turan tarafından gönderilen eklentilerin özeti: 6.42 MB"""uyarıyı alıyorum.
Sizin yazdığınız makroyu aşağıdaki gibi kendime göre revize ettim.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:F" & Rows.Count)) Is Nothing Then Exit Sub
With Target
Cells(.Row, "I") = "=G" & .Row & "-H" & .Row & ""
End With
End Sub
 
Kemal bey,

Kodların A:G arasına veri girişinde çalışağını belirtmiştim. Eğer bu tür çoklu girişiniz varsa ayrı bir makro ile formülü kopyalama işlemi yapmanız daha doğru olur.

Diğer kodları yine kullanın, onların dışında kopyalama, toplu giriş vs... türünde veri girişleri için aşağıdaki kodları module kopyalayıp gerektiği zaman Alt+F8 ile çalıştırırsınız.

Kod:
Sub FormulKopyala()
 
    Dim son As Long
 
    Range("I2") = "=G2-H2"
 
    son = Cells(Rows.Count, "B").End(xlUp).Row
 
    Range("I2").Copy Range("I3:I" & son)
 
End Sub
.
 
Merhaba,

Alternatif olarak aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Son
[COLOR=red]    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
[/COLOR]    If WorksheetFunction.CountA(Range("A" & Target.Row & ":H" & Target.Row)) = 0 Then Exit Sub
    Application.EnableEvents = False
    Range("H2") = "=RC[-2]-RC[-1]"
    Range("H2").AutoFill Destination:=Range("H2:H" & Cells(Rows.Count, 1).End(3).Row), Type:=xlFillDefault
    With Range("H2:H" & Cells(Rows.Count, 1).End(3).Row)
        .Value = .Value
    End With
Son:
    Application.EnableEvents = True
End Sub
 
Merhaba Ömer bey, Korhan Bey,
Sizlere çok teşekkür ederim.
Her ikinizin yaptıkları çok güzel.Uygulamada Sn.Korhan beyin daha işlevsel geldi 8000 satırlık cari dosyamda kullanmaya başladım.
Selametle kalın..
 
Merhaba,

Üstteki mesajımdaki koddaki kırmızı eklemeyide yaparsanız kopyala-yapıştır işleminde sorun yaşamazsınız.
 
DEĞERLİ ÜSTAD ARKADAŞLAR kemal turan ARKADAŞ ANLADIĞIM KADARIYLA MUHASEBE KAYITLARI TUTUYOR BENDE BİR MUHASEBE Cİ OLARAK kemal turan ARKADAŞIMIZIN İSTEĞİNE İLAVE OLARAK H STUNUNDA VEREN BAKİYENİNİN E STUNUNDAKİ KİŞİYE AİT OLAN SÜREGELEN BAKİYELERİNİ VERMESİ EMİNİMKİ ÖN MUHASEBE İLE UĞRAŞAN BİR ÇOK ARKADAŞIMIZINDA İŞİNE YARAYACAK
 
Geri
Üst