• DİKKAT

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

Tablo ile biçimlendirilmiş alanda formülü tek bir hücreye uygulama

Katılım
9 Kasım 2006
Mesajlar
13
Excel Vers. ve Dili
Office Excel 2003 SP2
Merhaba,

Yaptığım bir makro çalışmasında A sütünunda bir değişiklik yaptığımda B sütununa bir formül yazmasını istiyorum bunun için bulunduğum satır ve sütunu tespit ettikten sonra örnek aşağıdaki kodu kullanıyorum

Kod:
Sayfa1.Cells(satir, sutun+1).Formula = "=2 * 4"

fakat tablo olarak biçimlendirilmiş alan olduğundan, tablo içerisinde o sütündaki tüm satırlara aynı formülü uyguluyor. Ama ben sadece o satırda işlemi yapmasını istiyorum. Nasıl yapabilirim ?
 
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A2:A" & Rows.Count)) Is Nothing Then Exit Sub
    On Error Resume Next
    For Each Tablo In Sheets("Sayfa1").ListObjects
        Tablo.Unlist
    Next
    On Error GoTo 0
    Target.Offset(0, 1) = "=2*4"
    Satir = Cells(Rows.Count, 1).End(3).Row
    Sheets("Sayfa1").ListObjects.Add(xlSrcRange, Sheets("Sayfa1").Range("$A$1:$B$" & Satir), , xlYes).Name = "Tablo1"
End Sub
 
Vermiş olduğunuz fikir için teşekkür ederim, ama açıkçası tereddüt yaşadım bunu uygulamakta, çünkü ben örnekleme açısından küçük bir örnekte anlattım fakat bu tablo büyük bir tablo ve otomatik formül uygulanan sütünlar var, tablo olduğu için örnek "=[@Çarpan]*[@[Üretime Devam Eden]]" şeklinde formüller var, bu tablodan tablo ismini kullanarak veri alan başka sayfalar ve hatta bu dosyayı açıp içinden veri alan başka dosyalar var. Tablo özelliğini kaldırıp işlemi yapıp tekrar tablo haline dönüştürmem bu bağlantıları veya formülleri bozar mı acaba ?

açıkçası bende kendimce şöyle bir çözüm buldum, tabloya veri yazan bilgisayarda "hesaplanmış sütunları otomatik oluşturmayı durdur" dedim böylece otomatik tüm sütuna uygulamıyor. tabii bu durum tüm tablo çalışmalarını etkiliyor, yazdığınız bir formülü tüm sütuna uygulacaksanız formülü yazdıktan sonra çıkan kutucuktan "bu formülle tüm sütundaki hücrelere yaz" demeniz gerekiyor.
 
Size bu cevabı yazarken kendi sorumun cevabını buldum :)

neden vba ile "hesaplanmış sütunları otomatik oluşturmayı durdur" yapıp tekrar çalıştıramayayım ki diye düşündüm ve makro kaydetme yöntemiyle komutunu buldum :D

Kod:
Application.AutoCorrect.AutoFillFormulasInLists = False
Sayfa1.Cells(satir, sutun+1).Formula = "=2 * 4"
Application.AutoCorrect.AutoFillFormulasInLists = True

şeklinde sorun çözülmüştür.
 
Geri
Üst