• DİKKAT

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

Fonksiyonları makrolarla değiştirme

  • Konbuyu başlatan Konbuyu başlatan RALKAN
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Şubat 2007
Mesajlar
309
Excel Vers. ve Dili
excel 2007 / excel 2010
Arkadaşlar ,


Ek'te ki örneği bulunan rapor çalışmamda fonksiyonlarla sonuçları getirebiliyorum fakat sayfalarda ki veriler arttıkça sonuçlar çok uzun sürede ve bazende bilgisayarın kilitlenmesine sebeb oluyor.

Müşteriler ve Satıcılar tablolarına formüllerle getirdiğim değerleri makro ile daha kısa zamanda aktarılacağını düşünüyorum.

Örnekte Müşteri ve Satıcı sayısı az sayıda gerçek raporda daha fazla müşteri ve satıcı kodlarının sayısının daha fazladır.

Makro yazabilme konusunda yeterliliğim olmadığından siz üstatlardan yardım rica ediyorum.

Şimdiden teşekkür ederim.
 

Ekli dosyalar

merhaba
sanırım sorununuz her veri girişinde asıl aradığınız şey başka sayfada olmasına rağmen mevcut formülleriniz tetiklendiği için dosyanız kilitleniyor.

makro ile çok daha iyisi yapılabilir ama çalışmanızı hiç değiştirmeden de bunu yapabilirsiniz.
sorununuzu küçük bir kod ve mevcut formüller ile aşabilirsiniz sanıyorum.

ek dosyayı inceleyin.
 

Ekli dosyalar

merhaba
sanırım sorununuz her veri girişinde asıl aradığınız şey başka sayfada olmasına rağmen mevcut formülleriniz tetiklendiği için dosyanız kilitleniyor.

makro ile çok daha iyisi yapılabilir ama çalışmanızı hiç değiştirmeden de bunu yapabilirsiniz.
sorununuzu küçük bir kod ve mevcut formüller ile aşabilirsiniz sanıyorum.

ek dosyayı inceleyin.
Alakanız için teşekkür ederim hocam , liste olarak tanımlanan alan koşullu toplamda her koşul için ayrı ayrımı tanımlanacak
 
merhaba
burda mantık şu;
sizin dosyanızda müşteriler ve satıcılar adında 2 sayfa var. siz diğer sayfada veri girdiğinizde bu sayfalardaki formüller tetiklendiği için her veri girişinde hesap yapacağından sizin veri girişi yapmanıza imkan tanımayacak şiekilde yavaşlama olur.
bunun önüne geçmek için hesaplamayı otomatik yerine manuel yapabilirsiniz.
yani veri girişi yaptığınız sürece hesaplama manuel olur, işiniz bittiğinde tabloyu hesaplatırsınız. bu çalışmanızı hızlandırır.

2. bir yöntem ise formüllerinizde ad tanımlama kullanırsınız (zaten kullanmışsınız)
ancak bu ad tanımlamasını sayfa aktifken yapmak o sayfadan çıkınca tanımlı adları silmek şeklinde olur.
formülünüzde tanımladığınız ad silinmiş olacağından excel bu hesabı yapamayacak ve hızınız düşmeyecektir.
sayfa aktif olduğunda önce gerekli ad tanımlamalarını yapar ve sonra da hesabı tamamlar.

hesaplamayı otomatikden manuele değiştirmeden hesap yapmanın bir başka yolu bu olabilir. burada birazcık exceli kandırmış oluyoruz.

benzer bir problemi aşmak için bu yolu buldum ve benim işimi fazlasıyla gördü.
 
Hocam benim örneğim üzerinde sadece bir alan için kullandığım formüllerin kriterini görebileceğim düzenleme yapabilirmisiniz.

Umarım sizi fazla yormam o kadar açıklamanız üzerine

Teşekkürler
 
merhaba
HESAP_KODU olarak "='F:\2008\ÖRNEKLER\[RAPOR.xls]2009_Muavın'!$C$2:$C$13" adını tanımlamışsınız.
yapmanız gereken; sayfa aktif olduğunda bu adı makro ile eklemek sayfadan çıkınca adı silmek şeklinde olacak.

Private Sub Worksheet_Activate()
ActiveWorkbook.Names.Add Name:="HESAP_KODU", RefersToR1C1:="='F:\2008\ÖRNEKLER\[RAPOR.xls]2009_Muavın'!$C$2:$C$13"
End Sub

Private Sub Worksheet_Deactivate()
ActiveWorkbook.Names("HESAP_KODU").Delete
End Sub

tanımlı adı eklemeyi makro kaydet şeklinde yaparsanız gerekli kodu daha iyi görebilirsiniz.
 
merhaba
HESAP_KODU olarak "='F:\2008\ÖRNEKLER\[RAPOR.xls]2009_Muavın'!$C$2:$C$13" adını tanımlamışsınız.
yapmanız gereken; sayfa aktif olduğunda bu adı makro ile eklemek sayfadan çıkınca adı silmek şeklinde olacak.





tanımlı adı eklemeyi makro kaydet şeklinde yaparsanız gerekli kodu daha iyi görebilirsiniz.

Hocam çok teşekkür ederim aynı uygulamayı tüm diğer tanımı adlarada yaptığımda sorun çözülecek diye düşünüyorum.

İyi Çalışmalar
 
Hocam

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveWorkbook.Names.Add Name:="HESAP_KODU", RefersToR1C1:="2009_Muavın'!$C$2:$C$20000"
End Sub

Private Sub Worksheet_Deactivate()
ActiveWorkbook.Names("HESAP_KODU").Delete
End Sub

Şeklinde tanımladığımda #AD? hatası alıyorum nerede hata yaptım bilgi verebilirmisiniz.
 
merhaba

eklediğim örnek dosyada sayfa2 de bu gösterilmiş, inceleyiniz.

tanımlı ad silindiğinde formül hesaplanamadığı için doğal olarak #AD hatası verir.
bunu önlemek için ehatalıysa fonksiyonunu kullanın.
 
Hocam

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveWorkbook.Names.Add Name:="HESAP_KODU", RefersToR1C1:="2009_Muavın'!$C$2:$C$20000"
End Sub

Private Sub Worksheet_Deactivate()
ActiveWorkbook.Names("HESAP_KODU").Delete
End Sub

Şeklinde tanımladığımda #AD? hatası alıyorum nerede hata yaptım bilgi verebilirmisiniz.

merhaba
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
altında yazarsanız kıpırdama imkanınız olmaz!
Private Sub Worksheet_Activate()
altında yazmanız gerekir.
 
merhaba
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
altında yazarsanız kıpırdama imkanınız olmaz!
Private Sub Worksheet_Activate()
altında yazmanız gerekir.

Sayın Uzmanamele ,

Kod yazma özürlü olduğumdan kusuruma bakmayın öğreneceğim.Yalnız hocam
aşağıda belirttiğim formülü bir türlü oluşturamadım (diğer adlar henüz tanımlanmadan denemek istiyorum) yardımcı olurmusunız

=TOPLA.ÇARPIM(--(HESAP_KODU=$B4);--(Yeri=G$3);--(TARİH_MUH>=$A$1);--(TARİH_MUH<=$H$2);--(BORÇ_MUH-ALACAK_MUH))
 
makro oluşturma

Arkadaşlar merhaba,

Örneğini eklediğim aslı çok daha büyük olan dosyamda müşteriler ve satıcılar sayfalarında ki yaptığım hesaplamalarda ki formülleri makrolarla değiştirebilmek için yardılarınızı rica ediyorum.

Not:
Sayın hocam uzmanamele'nin önerisini kendi formülüme uygulayamadığımdan sonuç getiremedim.
 
Geri
Üst