Excel'in ağır çalışması ve yardım

Katılım
26 Kasım 2005
Mesajlar
13
selam

ben 1-2 ay önce üye olmuştum. bir iki sorum olacak:

- bu makro'yu yazdığım zaman excel sayfasında ok işareti ile hüçreler arası geçişlerde ağırlaşma oluyor, neden ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1") = "x" Then
Range("B1") = "a"
Range("B2") = "b"
Range("B3") = "c"
End If
If Range("A1") = "" Then
Range("B1") = ""
Range("B2") = ""
Range("B3") = ""
End If
End Sub



- kapalı bir excel den veri almak nasıl olur ?
örneğin bu (='C:\A\K1\[İ.xls]D2'!$A$1) işlemin makrosu nasıl yazılır


- son olarakta sizin burada güzel bilgiler var fakat bir konu ile ilgili detaylı tarama nasıl yapabilirim

yardımlarınız için teşekkür ederim
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Yukarıdaki olaya yazılan kod seçtiğiniz her hücrede çalışacaktır. Yavaşlama bu yüzdendir. bu sebeple kodun en başına sadece çalışmasını istediğiniz hücreleri tanımlamanız gerekir. Bu hücreleri belirtirseniz yardımcı olmaya çalışırım.

2 ve 3. konu ile ilgili Forumun en üstünde bulunan ARA butonunu kullanmanızı öneririm. Ã?rneğin "kapalı dosya" kelimelerini beraber yazarak (tırnak işareti olmadan) arama yaparsanız, çok sayıda kapalı dosyadan veri alma ile ilgili linke ulaşabilirsiniz.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Gerçi kodunuza bakınca sadece A1 hücresine göre çalışmasının yeterli olduğu görülüyor, bunu size sormamam gerekirdi. Kodu aşağıdaki gibi değiştirerek deneyin.

[vb:1:4639975676]Private Sub Worksheet_SelectionChange(ByVal Target As Range)
if activecell.address<>"$A$1" then exit sub
If Range("A1") = "x" Then
Range("B1") = "a"
Range("B2") = "b"
Range("B3") = "c"
End If
If Range("A1") = "" Then
Range("B1") = ""
Range("B2") = ""
Range("B3") = ""
End If
End Sub
[/vb:1:4639975676]
 
Katılım
26 Kasım 2005
Mesajlar
13
If activecell.address<>"$A$1" Then Exit Sub
Bu formülde hüçre değilde sayfa için nasıl yazarız ?
(Worksheets(Sayfa1).Activate) bunu denedim hata veriyor
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sayfa için derken kastınız nedir? yani sadece sayfa aktif olduğundamı çalışmasını istiyorsunuz. Eğer bu ise kodu aşağıdaki gibi kullanın.

[vb:1:10a0a67a7c]Private Sub Worksheet_Activate()
If ActiveCell.Address <> "$A$1" Then Exit Sub
If Range("A1") = "x" Then
Range("B1") = "a"
Range("B2") = "b"
Range("B3") = "c"
End If
If Range("A1") = "" Then
Range("B1") = ""
Range("B2") = ""
Range("B3") = ""
End If
End Sub[/vb:1:10a0a67a7c]
 
Katılım
26 Kasım 2005
Mesajlar
13
saygılarımla sayın leventm

If ActiveCell.Address <> "$A$1" Then Exit Sub (bunu silmek gerekir değil mi ,silmeden çalışmıyor )

Private Sub Worksheet_Activate()
If Range("A1") = "x" Then
Range("B1") = "a"
Range("B2") = "b"
Range("B3") = "c"
End If
If Range("A1") = "" Then
Range("B1") = ""
Range("B2") = ""
Range("B3") = ""
End If
End Sub
 
Üst