Makro İle Yenileme

Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Bilindiği gibi İnternetteyken F5 tuşuna basınca sayfa yenileme işlemi yapılarak sayfa güncellenmektedir.



Aynı mantıkla Excelde iken sayfa içerisinde formül bulunan hücreleri yenileyerek güncelleyen bir makro kodlarına ihtiyacım bulunmaktadır.

Arkadaşlar yardımlarınızı bekliyorum...
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
:

Kod:
Sub hsp()
    Calculate 'açık olan tüm dosyalarda formül bulunan hücreleri yeniden hesaplar
    Worksheets("Sayfa1").Calculate 'sadece ilgili sayfada
    Worksheets("Sayfa1").Range("A1:C500").Calculate 'sadece ilgili aralıkta
End Sub
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
mancubus bey kodu denedim ama olmadı. Yardım edebilirmisiniz?
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Sub calistir()
For i = 1 To [c65536].End(3).Row ' C sütunundaki son satıra kadar işlem yapılacağını gösterir
Cells(1, "c").Select ' C1 hücreyi seçer
SendKeys "{F2}" ' Seçilen hücrede f2 tuşunu tetikler
SendKeys "{ENTER}" ' Seçilen hücreyi enter ile geçer
Next ' Sonraki i değerini alır
End Sub

Yukarıda belirttiğim kod C sütununda yenileme yapıyor. Peki herhangi bir aralıkta nasıl yenileme yapılır?

Mesela X2:BE152 aralığında yukarıda belirttiğim kodu nasıl uygularız?
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
mancubus bey kodu denedim ama olmadı. Yardım edebilirmisiniz?
betoncu bey,
çalışmaması mümkün değil!

makro içinde Calculate metodu, dosya içinde iken F9 tuşuna basmak ile eş değerdir.
keza Worksheet.Calculate in de dosya içinde iken Shif + F9 tuşuna basmak ile aynı olduğu gibi.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
Sub calistir()
Yukarıda belirttiğim kod C sütununda yenileme yapıyor. Peki herhangi bir aralıkta nasıl yenileme yapılır?

Mesela X2:BE152 aralığında yukarıda belirttiğim kodu nasıl uygularız?
excel'de yenileme olmaz. hesaplama (calculation) ve tekrar hesaplama (recalculation) olur.

hatta çalışma kitabının hesaplama seçeneğini "otomatik" olarak seçince bir şey yapmaya da gerek kalmaz.

SendKeys yöntemini bir microsoft programı için kullanmayı anlamlı bulmam. (hatta bir çok microsoft dışı uygulamayı VBA ile kontrol etmek mümkündür. hepsinin nasıl kullanıldığını bilemeyiz elbette ama araştırma imkanı var, değil mi?) ama bir çok mesajda bunun kullanılmaya çalışıldığın görüyorum.

bir hücre içinde önce F2 ve sonra Enter tuşlarına makro vasıtası ile neden basılmak istenir, mantığını kavramak çok zor.
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Formül içerisinde Makro ile ilgili kıyas yapmaya çalışıyorum. Mesela belirli hücrelerimde =EĞER(hücrerengi(c1)=hücrerengi(e5);e5;"") gibi formül bulunmakta.
Bu formüldeki hücrerengi(c1) veya hücrerengi(e5) gibi formüller makro ile oluşturulmuştur.
Bu makro ile oluşturulmuş renk koduna ait kıyas, güncel olarak sadece hücrenin içerisine girip enter tuşuna basınca devreye giriyor.

Sizin belirttiğiniz şekilde denedim olmadı. Sadece hücre içine girip enter tuşuna basınca formül sonucunun güncel hali devreye giriyor.

O nedenle bana belirli hücre aralıklarında hücrelerin içerisine girip enter tuşu ile çıkan makro kodu lazım.

Yukarıda belirttiğim gibi sadece bir sütunda yenileme yapan kod var ama bunu belirli aralıklarda nasıl uygulayabileceğimi bilmiyorum.

Bu konuda yardımlarınızı bekliyorum...
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
araçlar, seçenekler, hesaplama, otomatik
KTF olması veya excel'in kendi fonksiyonu olması fark etmez.

veya dosyayı yüklersen bakılır.
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Şuan örnek dosya yanımda yoktur ama en yakın zamanda yüklemeye çalışacağım...
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
ÖRNEK

A1 ve e1 hücresinin dolgu rengi eşit olunca h2 hücresinde, c1 hücresinin değerini verecek bir formül bulunmaktadır.

A1 hücresi dolu olunca a1 hücresi gül renginde olmaktadır.

A1 hücresine herhangi bir şey yazdığımızda h2 hücresi, c2 hücresinin değerini ancak h2 hücresinin içerisine girip enter tuşuna basınca vermektedir.
Seçeceğimiz belirli bir aralıktı f2 enter işlemini kodla nasıl yaparız?
 

Ekli dosyalar

Korhan Ayhan

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

Excel sayfasındaki renk değişimleri sayfaya ait hiçbir olayı tetiklemez. Bu sebeple makro ile hazırlanmış renk fonksiyonlarına aşağıdaki satırı eklemek faydalı olacaktır.

Fonksiyonunuzdaki "Select Case Aralık.Interior.ColorIndex" satırını bulun ve hemen bir üst satırına aşağıdaki kodu ekleyin.


Application.Volatile True
Bu satırı ekledikten sonra sayfada değişiklik yaptıktan sonra F9 tuşuna basmanız yeterli olacaktır.

Bunu da yapmak istemiyorsanız sayfanıza ait kodları aşağıdaki gibi değiştirin.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A1").Value <> "" Then
    Range("A1").Interior.ColorIndex = 38
    Else
    Range("A1").Interior.ColorIndex = 2
    End If
    Range("E1").Interior.ColorIndex = 38
    Application.Calculate
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.Calculate
End Sub
 
Katılım
1 Aralık 2005
Mesajlar
376
Excel Vers. ve Dili
EXCEL 2002
TÜRKÇE
Yardımlarınız için çok teşekkür ederim...
 
Katılım
21 Mart 2012
Mesajlar
8
Excel Vers. ve Dili
2010 visual basic
excel'de yenileme olmaz. hesaplama (calculation) ve tekrar hesaplama (recalculation) olur.

hatta çalışma kitabının hesaplama seçeneğini "otomatik" olarak seçince bir şey yapmaya da gerek kalmaz.

SendKeys yöntemini bir microsoft programı için kullanmayı anlamlı bulmam. (hatta bir çok microsoft dışı uygulamayı VBA ile kontrol etmek mümkündür. hepsinin nasıl kullanıldığını bilemeyiz elbette ama araştırma imkanı var, değil mi?) ama bir çok mesajda bunun kullanılmaya çalışıldığın görüyorum.

bir hücre içinde önce F2 ve sonra Enter tuşlarına makro vasıtası ile neden basılmak istenir, mantığını kavramak çok zor.
mancubus bey,

aynen katılıyorum. ama maalesef benzeri bir durumlada ben karşılaştım (faturasıda ağır oldu)

ekte örnek bir dosyada anlatmaya çalıştım. formül içine girip enterlamadan aktive olmuyor ve bu nedenle toplam tutar yanlış çıkıyor. yüzlerce satır ve sayfadan oluşan bir dosyada bu durumu tespit etmek imkansız. mantıksızda zaten....

çözüm önerilerinizi bekliyorum...
 

Ekli dosyalar

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
hücreleri seçin, "genel" olarak biçimlendirin;
1. yöntem: "metni sütunlara dönüştür"ü tıklayın, başka hiç bir şey yapmadan "tamam" deyin,
2. yöntem: "bul değiştir"de her iki kutuya da = yazıp "tümünü değiştir" tıklayın.
 
Son düzenleme:

ens

Katılım
17 Eylül 2005
Mesajlar
52
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
31.10.2018
Sub calistir()
For i = 1 To [c65536].End(3).Row ' C sütunundaki son satıra kadar işlem yapılacağını gösterir
Cells(1, "c").Select ' C1 hücreyi seçer
SendKeys "{F2}" ' Seçilen hücrede f2 tuşunu tetikler
SendKeys "{ENTER}" ' Seçilen hücreyi enter ile geçer
Next ' Sonraki i değerini alır
End Sub

Yukarıda belirttiğim kod C sütununda yenileme yapıyor. Peki herhangi bir aralıkta nasıl yenileme yapılır?

Mesela X2:BE152 aralığında yukarıda belirttiğim kodu nasıl uygularız?
çok ilginç bu kod bende çalışmadı acaba versyon ile ilgili bir sıkıntımıdır? ofis 2007 kullanıyorum
 
Üst