E

Soru Makrolu Düşeyara ile veri almak

  • Konuyu başlatan Konuyu başlatan ErolU
  • Başlangıç tarihi Başlangıç tarihi

ErolU

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Arkadaşlar,
Ekteki belgemde Sayfa2 $j$8:$j$67 aralığını makrolu DÜŞEYARA ile Sayfa1 $A$8:$A$67 aralığına getirmek istiyorum.
Bu işlem =EĞERHATA(DÜŞEYARA($E8;Sayfa2!$C$8:$J$67;8;0);"") formülü ile yapılabiliyor ama makro ile yapılanı işimi görecek.
Belgede biraz daha ayrıntılı açıklama ve tablo mevcut.
Konu ile ilgili yardımlarınızı rica ederim.
 

Ekli dosyalar

Merhaba.

Belirttiğiniz işlem için malesef Worksheet_Change kodu ile işlem yapamazsınız.
Çünkü B sütununa veriler elle yazılmıyor.

Bunun yerine;
-- Aşağıdaki makroyu Sayfa1'in kod bölümüne yapıştırın,
-- Onay Kutuları GRUBUna fareyle sağ tıklayıp GRUPLANDIR >> GRUBU ÇÖZ'ü seçin (böylece tüm ona kutuları seçili hale gelir),
-- Bu onay kutularından herhangi birinin üzerinde fareyle sağ tıklayıp MAKRO ATAyı seçin,
-- Açılacak küçük ekrandan makronun adını seçerek işlemi onaylayın,
-- Onay kutularının herhangi birine fareyle tekrar sağ tıklayıp GRUPLANDIRma işlemini tekrar yapın.

CSS:
Görüntülemek için giriş yapmanız gerekmektedir.
(9 satır)

.
 
Tekrar merhaba Sayın @Erol U. .

Önce bir önceki cevabıma bakınız.

Sayfalardaki işlemlerden amacınızı bilemiyorum ama şayet onay kutuları işaretlendikçe
öğrenci numaraları ve adı soyadı bilgilerinin Sayfa2'ye aktarılması için Sayfa2'deki formülleri de yok etmek istiyorsanız;
önceki cevabımdaki verdiğim kodun,
-- For sat = ..... satırının üstüne aşağıdaki ilk satırı,
-- End If satırının üstüne aşağıdaki ikinci ve üçüncü satırı
yapıştırırsanız istenilen gerçekleşir.

CSS:
Görüntülemek için giriş yapmanız gerekmektedir.
(6 satır)

.
 
Sayın @Ömer BARAN,
Öncelik olarak yardımınıza teşekkür ederim, sağ olunuz.

1. Konunun 3. iletisinde yazdığınız ek kod asıl dosyamla uyuşmuyor. Dolayısı ile kullanmaya gerek yok.
2. Konunun 2. iletisinde yazdığınız ilk kod istediğim her şeyi yaptı. Dediğiniz gibi Onay Kutularına makroyu atadım, hatasız çalışıyorlar.

Dün gece konuyu yazarken bir noktayı düşünememişim. Kod eksik kalıyor.
Onay kutularına tıkladığımda:

Sayfa2 J8:J67 aralığını Sayfa1 K8:K67 aralığına getir.
Sayfa3 J8:J67 aralığını Sayfa1 L8:L67 aralığına getir.
Sayfa4 J8:J67 aralığını Sayfa1 M8:M67 aralığına getir.
Sayfa5 J8:J67 aralığını Sayfa1 N8:N67 aralığına getir.

Kod yukarıdaki şeklide çalışabilir hâle getirilirse ihtiyacı karşılayacak.
Konu ile ilgili yardımınızı rica ederim.
 

Ekli dosyalar

Buyrunuz.
Daha önce A sütununa yazdırılan sonuçlar iptal edildi.
Sayfa2'den başlayarak Sayfa5'e kadar, sayfaların J sütunlarındaki listeler,
Sayfa1'in K, L, M ve N sütunlarına listelenir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(12 satır)
 
Sayın @Ömer BARAN,
Son kod için teşekkürler.
İstenilen işlem tam olmadı ama konuyu ilerletmeyelim. Sonradan fark ettim ki dosyamdaki durumu böyle bir kod çözmüyormuş.
Yardımlarınız için teşekkür ederim tekraren.
Konunun çözüldü/çözülmedi şeklindeki işaretlenmesi ilgili kişinin değerlendirmesi ile yapılabilir.
 
Sayın @Ömer BARAN,
Ekli dosyada örnek üzerinden olmayan durumu izah ettim.
"... aklınızdan geçenin sürüncemede kalması..." şeklindeki ifadeniz için şunu söyleyeyim: Aklımdan geçenler -bu konu bağlamında- sürüncemede aslında kalmadı. Sizin verdiğiniz kodlarla denemeler yaparken asıl dosyamdaki sorunu bu şekilde çözemeyeceğimi fark ettim.
Dolayısı ile bu iletimin altındaki dosyadaki gibi tam bir sonuç alsam bile işime yaramayacak.
Tüm bunlardan ötürü daha fazla zamanınızı almamak için 8. iletide yazdığım şekli ile konuyu kapatayım dedim.
Tekrar olarak yardımlarınız için teşekkürlerimi iletirim. Zamanınızı gereksiz almaktan dolayı mahcup durumdayım. :(
 

Ekli dosyalar

Anladım sanırım, Sayın @Erol U. .
Eklediğiniz son belgedeki formül ile, onay kutusu işaretlenmemiş olsa da tüm listeler sayfaya çekiliyor.

Sanırım hatayı anladım ve sadece onay kutusu işaretlenenlere ait verilerin gelmesi için,
son verdiğim cevaptaki kodda say=say+1 'den sonraki satırlarda = işaretinin solundaki kısımlarda yer alan
sat ibarelerini say+7 olarak değiştirmek yeterli olur.

Bir önceki kod cevabımı buna göre güncelledim, sayfayı yenileyerek, kodun yeni halini dener misiniz?

.
 
Sayın @Ömer BARAN,
10. iletimde belirttiğim sebepten kodu kullanamayacağım ama konunun sürüncemede kalmayıp çözülmesi adına konuya devam edilecekse son durum ile ilgili şunları söyleyeyim:
1. Belgedeki Onay Kutuları sadece makroyu tetiklemek adına kullanılmalı. Onay Kutularının tıklı olup olmaması bir önemi yok(Bu nokta sizi yanıltıyor galiba.).
2. Makro tıpkı Düşeyara fonksiyonu gibi hareket etsin. Yani Sayfa1 E8:E67 aralığındaki öğrenci numaralarını diğer sayfalardaki ilgili yerde arasın ve 8. sütun değerini K, L, M, N sütunlarına getirsin(10. iletimde yer alan belgemde P8:S67 aralığındaki örnekte olduğu gibi sonuca ulaşılsın).
 
Üst