hucrede değer gösterme

Katılım
21 Mayıs 2005
Mesajlar
90
Excel Vers. ve Dili
Excel 2007 Türkçe
Arkadaşlar şöyle bir sorum olacak yanıt cok basit ama bu konuda acemi olduğum için lütfen mazur görünüz.. makro kaydediciyi calıştırıp, bir hücreye excel formulü yazıyorum. daha sonra vba kodlarının otomatik geldiğini görüyorum ancak makroyu çalıştırınca hücrede yazdığım formul kalıyor. bu formul yerine sadece hücrede değeri görmek istiyorum. bunun için vba kod sayfasına hangi kodu eklemeliyim? yardımlarınız için şimdiden teşekkürler...
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Küçük bir örnek dosya ekleyiniz.:cool:
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Mesela, A1:A10 aralığında formül oluşturuyorsanız, şöyle yapın



Kod:
  [A1:A10].Copy
   [A1].PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
Yani Formüllü alanı "Kopyala, Özel Yapıştır,Değerleri" işlemi.
 
Katılım
21 Mayıs 2005
Mesajlar
90
Excel Vers. ve Dili
Excel 2007 Türkçe
Mesela, A1:A10 aralığında formül oluşturuyorsanız, şöyle yapın



Kod:
  [A1:A10].Copy
   [A1].PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
Yani Formüllü alanı "Kopyala, Özel Yapıştır,Değerleri" işlemi.
Üstadım, kopyala yapıştır dediğimiz zaman A1 ile A10 arası hücrelerde degişiklik oldugunda, makroyu çalıştırdığımızda güncel değeri verecek mi? güncel değeri vermiyor kopyaladiğimiz değerleri veriyor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,608
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub MİKTAR()
    For X = 4 To 11
    Cells(X, 3) = WorksheetFunction.SumIf([ANKARA!A:A], Cells(X, 2), [ANKARA!C:C])
    Next
End Sub
 
Katılım
21 Mayıs 2005
Mesajlar
90
Excel Vers. ve Dili
Excel 2007 Türkçe
yardımlarınız için teşekkürler COST CONTROL, ancak record ederek oluşturdugum bu kodlara, recorddan gelen kodları degistirmeye gerek kalmadan her zaman için hücrede deger gösterecek sabit bir kodumuz yok mudur?
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Üstadım, kopyala yapıştır dediğimiz zaman A1 ile A10 arası hücrelerde degişiklik oldugunda, makroyu çalıştırdığımızda güncel değeri verecek mi? güncel değeri vermiyor kopyaladiğimiz değerleri veriyor
Güncel değeri otomatik vermez çünkü formülü siliyoruz. Makroyu çalıştırırsanız günceller.
Kodları sizin kodlarınızın altına ilave edeceksiniz. Formül işlemi yaptıktan sonra, kopyala yapıştır yapacaksınız.

İstediğiniz işlem için Sayın COST_CONTROL 'un kodlarını şöyle kullanın.
Sayfanın kod sayfasına kopyalayın.

Kod:
Private Sub Worksheet_Activate()
Set wf = WorksheetFunction
    For x = 4 To 12
    Cells(x, 3) = wf.SumIf([ANKARA!A:A], Cells(x, 2), [ANKARA!b:b])
    Cells(x, 4) = wf.SumIf([ANKARA!A:A], Cells(x, 2), [ANKARA!C:C])
    Next
End Sub
 
Son düzenleme:
Katılım
21 Mayıs 2005
Mesajlar
90
Excel Vers. ve Dili
Excel 2007 Türkçe
Teşekkürler üstadım elinize sağlık ama kod yazamadığım için record yaparak kod oluşturuyorum, benim amacim excel formullerini kullanarak makro denemekti ama sanırım otomatik yazılan kodları degiştirmeden olmuyor formulü gizleyemiyoruz bu yöntemle, yada her zaman deger gösterecek bir kodu ekleyemiyoruz sanırım. yardımlarınız için teşekkürler..
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Kod:
[COLOR=green]Sub Makro1()[/COLOR]
[COLOR=green] Range("C4").Select[/COLOR]
[COLOR=green] ActiveCell.FormulaR1C1 = "=SUMIF(ANKARA!C[-2],TOPLAM!C[-1],ANKARA!C)"[/COLOR]
[COLOR=black]Range("C4").Select[/COLOR]
[COLOR=black]selection.copy[/COLOR]
[COLOR=black]Range("C4").Select[/COLOR]
[COLOR=black]selection.PasteSpecial Paste:=xlPasteValues[/COLOR]
[COLOR=green]End Sub[/COLOR]
Yeşil alan sizin kodlarınız.Diğerleride yine makro kaydet yöntemi ile yapılmış kodlar.
Butona her bastığınızda verileri günceller ve formül hücrede kalmaz.

Kodları kısaltırsak şöyle olur.

Kod:
Sub Makro1()
 [C4].FormulaR1C1 = "=SUMIF(ANKARA!C[-2],TOPLAM!C[-1],ANKARA!C)"
[C4].copy
[C4].PasteSpecial Paste:=xlPasteValues
End
Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,608
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Makro Kaydet yöntemi ile oluşturduğunuz kodlarda eğer formül kaydettiyseniz ve bu formülün hücrede değer olarak gözükmesini istiyorsanız kodlara müdahale etmek durumundasınız.

Buda bildiğim kadarıyla iki şekilde olmaktadır.

1- WorksheetFunction komutu ile aşağıdaki şekilde kullanarak hücreye formül sonucu hesaplanmış değeri yazdırabilirsiniz.
Kod:
Range("C4") = WorksheetFunction.SumIf([ANKARA!A:A], B4, [ANKARA!C:C])
2- Evaluate komutu ile aşağıdaki şekilde kullanarak hücreye formül sonucu hesaplanmış değeri yazdırabilirsiniz.
Kod:
Range("C4") = Evaluate("=SUMIF(ANKARA!A:A,B4,ANKARA!C:C)")
 
Üst