• DİKKAT

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

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
 
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.
 
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]
 
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
 
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]
 
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
 
Geri
Üst