• DİKKAT

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

Target.Address indirect ile dolaylı yapabilir mi?

  • Konbuyu başlatan Konbuyu başlatan bezl
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Mayıs 2005
Mesajlar
453
Excel Vers. ve Dili
2010 - Eng
Private Sub Worksheet_Change(ByVal Target As Range)
adres = Target.Address
If adres = "$A$1" Then
Call aktarma
End If
End Sub

buradaki "$A$1" yerine A1 hücresinde yazan mesela 5 olması dolayısıyla A5 yapmak mümkün müdür? Yani değişken bir ifade kullanabilir miyiz?
 
Private Sub Worksheet_Change(ByVal Target As Range)
adres = Target.Address
If adres = "$A$1" Then
Call aktarma
End If
End Sub

buradaki "$A$1" yerine A1 hücresinde yazan mesela 5 olması dolayısıyla A5 yapmak mümkün müdür? Yani değişken bir ifade kullanabilir miyiz?
doğrudur.:cool:
 
Tam olarak ne istediğiniz anlaşılmıyor
A1:A5 aralığında bir hücrede değişiklik yaptığınızda kodun çalışmasını mı istiyorsunuz.
Doğru ise bu kodu deneyin
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("[COLOR="Red"]A1:A10[/COLOR]")) Is Nothing Then Exit Sub
Call aktarma
End Sub
A1:A10 aralığında çalışır. Kırmızı yeri dileğiniz ile değiştirin.
 
Özür diliyorum, başlık yanlış oldu ama düzeltemedim.

Sorum şu a1 hücresinde A1500 yazıyor target.address olarak a1 hücresi içindeki değeri alsın yani A1500'ü alsın. Bunu nasıl yapabiliriz.
 
Özür diliyorum, başlık yanlış oldu ama düzeltemedim.

Sorum şu a1 hücresinde A1500 yazıyor target.address olarak a1 hücresi içindeki değeri alsın yani A1500'ü alsın. Bunu nasıl yapabiliriz.

Kod:
adres = range("A1").value
 
aşağıdaki doğrudur.:cool:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
adres = Target.Address
[B][COLOR="Red"]If adres = range("A1").value Then[/COLOR][/B]
Call aktarma
End If
End Sub
 
$A$1500 yazınca oldu. Sağolun. Bir de affınıza sığınarak A1 hücresinin adını Hedef yaptım bu adı target.address de kullanabilir miyiz?
 
$A$1500 yazınca oldu. Sağolun. Bir de affınıza sığınarak A1 hücresinin adını Hedef yaptım bu adı target.address de kullanabilir miyiz?
6ncı mesajıma bakınız.orada doğrusunu yazdım.
 
Yani normal hücresi başvurusu $'lı olması gerekiyor. Ben "Hedef" diye ad verince bunu Range("Hedef") yazdım olmadı nasıl yazmak gerekiyor acaba.
 
Yani normal hücresi başvurusu $'lı olması gerekiyor. Ben "Hedef" diye ad verince bunu Range("Hedef") yazdım olmadı nasıl yazmak gerekiyor acaba.
6 numaralı mesajımdaki kodları kullanınız.:cool:
 
Şimdi A1 hücresinin adını Hedef yaptım. A2'ye de Hedef yazdım. Sizin adres = Range("A2").value yaptım. Şu durumda A1'e girip çıkınca A5'e gitmesi gerekirken birşey yapmıyor. Bir de bu hedef adını direkt Range("Hedef") gibi direkt kullanamıyor muyuz?
 
Şimdi A1 hücresinin adını Hedef yaptım. A2'ye de Hedef yazdım. Sizin adres = Range("A2").value yaptım. Şu durumda A1'e girip çıkınca A5'e gitmesi gerekirken birşey yapmıyor. Bir de bu hedef adını direkt Range("Hedef") gibi direkt kullanamıyor muyuz?
Bir şey yapmayın.
6ncı mesajımı direk uygulayın.
 
Derdimi anlatamadığım için üzgünüm. Benim yapmak istediğim çalıştığım belgelerde hedef değişiyor. Ben değişen hücre adını Hedef yaparak makronun her zaman geçerli olmasını sağlamak istiyorum. Bir belgede A1'in adını hedef yapacağım bu hücreye girip çıktıktan sonra makro çalışacak başka bir belgede A5'in adını Hedef yapacağım ama makroyu değiştirmeden yine makrom çalışacak. Bilmem anlatabildim mi?
 
Derdimi anlatamadığım için üzgünüm. Benim yapmak istediğim çalıştığım belgelerde hedef değişiyor. Ben değişen hücre adını Hedef yaparak makronun her zaman geçerli olmasını sağlamak istiyorum. Bir belgede A1'in adını hedef yapacağım bu hücreye girip çıktıktan sonra makro çalışacak başka bir belgede A5'in adını Hedef yapacağım ama makroyu değiştirmeden yine makrom çalışacak. Bilmem anlatabildim mi?
her zaman hedef olacak adresi a1 hücresine yazınız.
mesela A1 hücresine a10 yazdınız.
kodda a10 hücresine bir şeyler yazın ve entere basın.
A1 hücresinde A10 yazdığı için makronuz çağırılıp (call) ile çalışacaktır.
Böyle istiyorsanız benim verdiğim kodları kullanmalısınız.
Bakın seçince değiliçine veri girip enterledikten sonra yada başka bir hücreyi mouse ile seçtikten sonrada çalşır.
Siz değişken olsun istiyorsdunuz bu değişken oluyor işte.:cool:
A1 hücresinde devamlı adres yazmalısınız.ve a1 hücresinin verdiği adrese gidip bir şeyler yazınız ve çıkınız.a1 hücresinden .Hemen call ile çağırdığınız makro çalışacaktır.
 
Değişken oluyor çok teşekkür ederim (yalnız A10 değil $A$10 yazmak gerekiyor). Bir sorunu bir şekilde halletmiş oluyoruz. Ama insan daha fazlasını istiyor. Hedef hücreyi A1 hücresine her zaman yazmak gerekiyor. Eğer sadece hücrenin adını değiştirip bu değiştirdiğim adı makroda kullanabilsem sadece ilgili hücrenin adını değiştirmek yeterli olacak.
 
Değişken oluyor çok teşekkür ederim (yalnız A10 değil $A$10 yazmak gerekiyor). Bir sorunu bir şekilde halletmiş oluyoruz. Ama insan daha fazlasını istiyor. Hedef hücreyi A1 hücresine her zaman yazmak gerekiyor. Eğer sadece hücrenin adını değiştirip bu değiştirdiğim adı makroda kullanabilsem sadece ilgili hücrenin adını değiştirmek yeterli olacak.
$A$10 ile A10 arasında eğer makro kullanıyorsanız ayni şeylerdir.
Bu $ işareti fonksiyonlarda(çalışma sayfalarında) önünde bulunduğu satır veya sütunu sabitlemek içindir.
Diğer konuyu anlamadım.:cool:
 
Merhaba,

İlk olarak $ işareti ile ilgili bir bilgi veriyim.

Kod içinde bu işaretten kurtulmak için aşağıdaki yöntemi kullanmanız gerekir.

Kod:
Target.Address(0,0)


Mesajlarınızdan anladığım kadarıyla aşağıdaki kod işinize yarayacaktır.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Target.Address = Range("HEDEF").Address Then
        Call AKTAR
    End If
Son:
End Sub
 
Çok teşekkür ediyorum, bir sorunda bir çok şey öğrendim.
 
Geri
Üst