Soru Hücredeki isme chek yapmadan verileri alma

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
568
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
İyi Günler;

"yıllar", "bilgiformu" ve liste sayfası bulunmaktadır.

yıllar sayfasının B12 hücresinde bulunan ismi bilgiformu sayfasındaki C17 hücresine (=yıllar!B12) aktarmakyatım.

bilgiformu sayfasındak, c17 hücresine chek yaptığımda liste sayfasından veriler gelmektedir. bilgiformu sayfadaki Private Sub Worksheet_Change(ByVal Target As Range) olayındaki makro sorunsuz olarak çalışmaktadır.

Ancak, her seferinde bilgiformu sayfasındaki C17 hücresini chek yapmadan makrosunun çalışması istediğimde ve bilgiformu sayfasının Private Sub Worksheet_Activate() olayına aynı makroyu kopyalayıp çalıştırdığında If Target.Address = "$C$17" Then hata vermektedir.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$17" Then

Private Sub Worksheet_Activate()
If Target.Address = "$C$17" Then

Acaba bunun sebebi ne ve hatanın nasıl giderilmesi gerekmektedir. Diğer taraftan bilgiformu sayfasını C17 hücresine chek yapmadan yıllar sayfasının B12 hücrtesinde alınan isme göre her seferinde chek yapmadan verileri almak için hangi event( olay) ile yapılabilinir.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Merhaba. Benden eski bir üye olarak bu tarz dosya ile örneklendirilmemiş soruların anlaşılmasının zor olduğunu bilmenizi beklerdim.

" c17 hücresine chek yaptığımda liste sayfasından veriler gelmektedir. " derken "chek yapmak"tan kastınız nedir, hangi veriler nereye, nasıl gelmektedir?

"bilgiformu sayfadaki Private Sub Worksheet_Change(ByVal Target As Range) olayındaki makro sorunsuz olarak çalışmaktadır. " dediğiniz bu kodlar nasıl kodlardır, ne iş yaparlar?

"her seferinde bilgiformu sayfasındaki C17 hücresini chek yapmadan makrosunun çalışması istediğimde " derken "her sefer"den kastınız nedir, hangi makronun çalışmasını istiyorsunuz?


"
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$17" Then

Private Sub Worksheet_Activate()
If Target.Address = "$C$17" Then

Acaba bunun sebebi ne ve hatanın nasıl giderilmesi gerekmektedir. "

Bu hatanın sebebi sanıyorum Activate kodunun hücre yani TArget'e bağlı bir olay olmayıp ilgili sayfaya başka sayfadan geçiş yapıldığında çalışan bir kod olduğu içindir. Burda target belirtmenize gerek yok. Sayfa açıldığında ne yapılmasını istiyorsanız ona göre kodları yazabilrisiniz.
 

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
568
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
Sayın Yusuf44;

yıllar sayfasına bilgi girşi yaptıktan sonra bilgiformu sayfasına geçiş yaptığımda, C17 hücresindeki (=yıllar!B12) sayfasının isme göre liste sayfasından veri almaktadır.

Yıllar sayfasından bilgiformu sayfasına geçiş yaptığımda, C17 hücresindeki isme göre bilgiformu sayfasına veriler gelecektir.

Buna göre; C17 hücresine chek yapmadan sayfaya geçiş yaptığımda veriler gelmesini için hangi event(olay) kodun yazılması ile target yerine hangi kodu yazılması gerekmektedir.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,747
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
DÜŞEYARA fonksiyonunu denediniz mi?
 

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
568
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
Altın Üyelik Bitiş Tarihi
26-03-2026
Sayın Korhan Ayhan Bey;

Veri aldığım "liste" sayfasındaki tarih sutunundaki hücrelerde alt alta tarih bulunduğundan Düşeyara ile mümkün olmamaktadır.

Amacım: yıllar sayfasının B12 hücresine isim yazdığımda bilgiformu sayfasının C17 hücresine (=yıllar!B12) aynı isim aktarılma olup bilgiformu sayfasına geçiş yaptığımda C17 hücresini chek yaptığımda veriler gelmektedir. Ancak, her seferinde bilgiformu sayfasına geçiş yaptığımda chek yapmadan C17 hücresindeki isme göre istenen verilerin gelmesi mümkün müdür ?

Bunu hangi event'te (olay) veya hücreyi tanımlama yaparken kodda be gibi değişiklik yapılması gerekmektedir.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$17" Then hata vermeden çalışmaktadır.

Aynı kodları, Private Sub Worksheet_Activate() yazdığımda
If Target.Address = "$C$17" Then satırı hata vermektedir.

Şimdiiden ilgi, yardım ve düşünceleriniz için teşşekürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,747
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Eğer siz kodları Private Sub Worksheet_Activate() olayına yazmak istiyorsanız tabi ki TARGET ifadesi çalışmaz.

Bunun yerine direkt işlem yapacak kodlarınızı yazmalısınız. Yani zaten sayfa aktif olduğunda siz bu "Check" dediğiniz işlemi yapmış oluyorsunuz.

Bunun dışında "yıllar" sayfasında B12 hücresi değiştiğinde işlem yaptırabilirsiniz. Bu hücre zaten olayın başlangıcını ifade ediyor.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Kendimi zorluyorum ama ne anlatmak istediğinizi anlamıyorum maalesef. Gönderdiğiniz basit dosyada çözüm DÜŞEYARA olarak görünüyor ama siz çözüm olmadığını belirtiyorsunuz. Ayrıca sürekli "chek etmek"ten bahsediyorsunuz ama daha önce de sormuştum: "chek etmek" ne demek?
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Merhaba,
Bahsettiğiniz şey "chek" değil "change" galiba. Bu duruma göre örneğiniz üzerinden dosyanızı güncelledim. Yıllar sayfasında "B12" hücresinde değişiklik yapınca "bilgiformu" sayfanızı "liste" sayfanızdan aldığı verilerle dolduruyor.
İstediğiniz böyle bir şey mi?
 

Ekli dosyalar

Üst