F

Çözüldü Makro İle Koşula Bağlı Listeleme Yapmak

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

fledermaus

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,

Ekte paylaşmış olduğum tabloda DATA sayfasında A2:B10 hücre aralığında girilen (aralık artabilir) datalara göre ve A27 hücresinde yazılan kritere istinaden B27 hücresinde, data sayfasında geçen B26 başlığındaki bilgileri listelemek için nasıl bir makro yazabiliriz ?

Bu listelemeyi B36 hücresine kadar yapabilmeliyim.

Yardımlarınız için şimdiden teşekkür ederim.


Syg,
 

Ekli dosyalar


Hocam Merhaba,

Burada yapmak istediğimi eksik anlatmış olabilirim.

A27 hücresine yazılan değere istinaden B27 de yapmak istediğim açılan liste (drop down) şeklinde olacaktı. Bu listelemeyi aslında data validation ile hali hazırda aşağıdaki gibi yapabiliyordum ancak A27 hücresine değer yazılmadığında veya yazılan veri silindiğinde B27 de çıkan değer kaybolmuyor yada eski değer kalıyor.

1648368460780.webp





Bu durumu ortadan kaldırmak adına makro ile çalışmak istedim.


Syg,







Syg,
 
Moderatörün son düzenlenenleri:
Kodu paylaşır mısınız. Bilgisayarda olmadığım için koda ulaşamıyorum.


Elbette hocam, aşağıdaki gibidir.

Çok teşekkürler.



Private Sub Worksheet_Change(ByVal Target As Range)
Dim dt As Worksheet, il As String, bulunan As String
Set dt = Sheets("DATA"): Set br = Sheets("BRIEF")
If Intersect(Target, [A27:A36]) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target = "" Then Target.Offset(0, 1) = "": Exit Sub
il = Target.Text
sn = Target.Row

For i = 2 To dt.Cells(Rows.Count, 1).End(3).Row
bulunan = dt.Cells(i, 1)
If bulunan = il Then br.Cells(sn, 2) = dt.Cells(i, 2): Exit Sub
Next

End Sub
 
Aşağıdaki kod satırını eklemediğimi düşünmüştüm ama eklemişim. A sütunda Silme işlemi yaptığınızda, b sütunundaki karşılığını silmesi gerekiyor. Silme işlemi yapmıyor mu?

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
 
Aşağıdaki kod satırını eklemediğimi düşünmüştüm ama eklemişim. A sütunda Silme işlemi yaptığınızda, b sütunundaki karşılığını silmesi gerekiyor. Silme işlemi yapmıyor mu?

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

Siliniyor ancak 1. görseldeki gibi (dropdown list) açılır liste yapmıyor. 2. görseldeki gibi sadece koşula bağlı ilk veriyi gösteriyor.

1-
1648377579593.webp


2-
1648377764740.webp
 
Moderatörün son düzenlenenleri:
Veri Doğrulamada =KAYDIR(DATA!$A1;KAÇINCI($A$27;DATA!$A$2:$A$10;0);1;EĞERSAY(DATA!$A$2:$A$10;$A27);1) şeklinde bir formül var. A hücresine yazılan değeri, diğer sayfadan bulup B sütunundaki karşılığını listeliyor. Bu işlemi makro ile nasıl yapılabileceğini soruyorsanız bu konuda bilgim yok.
 
@fledermaus , Aşağıdaki kodu dener misiniz.

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

Hocam Merhaba,

Kod sorunsuz çalışıyor teşekkürler.

Sadece A27:36 hücre aralığına data listesinde olmayan herhangi bir veri yazıldığında yada hücre boşaltıldığında aşağıdaki hata çıkıyor.


1648393158817.webp


Bunun önüne geçmek için kodlamaya nasıl bir ekleme veya düzeltme yapmak gerekir ? Kodlamadan çok anlamadığım için böyle bir data vereceğini tahmin edemedim açıkçası.

Böyle bir hatada "Aradığınız alan listede yoktur" gibi bir uyarı yazısı nasıl ekleyebiliriz ?

Syg,
 
Moderatörün son düzenlenenleri:
Next ile Target.Offset(0, 1).Select satırları arasına aşağıdaki satırı ekleyin.

If liste = "" Then MsgBox "Aradığınız alan listede yoktur": Exit Sub

Düzenleme: #10 numaralı mesajdaki koda, yukarıdaki satır ekleme yapıldı. Direkt o kodu kullanabilirsiniz.
 
Moderatörün son düzenlenenleri:
Next ile Target.Offset(0, 1).Select satırları arasına aşağıdaki satırı ekleyin.

If liste = "" Then MsgBox "Aradığınız alan listede yoktur": Exit Sub

Bu kod eklemesi ile listede olmayan veriler için sorun giderildi.

Ancak bu seferde A27:36 hücre aralığına yazılan değer silinince aşağıdaki hata mesajı çıkıyor.


1648393940193.webp


Bunun için nasıl bir düzeltme yapmalıyım ?


Syg,
 
Moderatörün son düzenlenenleri:
a27:a36 aralığında herhangi bir değeri sildiğimde bahsettiğiniz hatayı almadım.
hata veren satırın başına ' tek tırnak koyup deneyin.

Hocam şimdi tekrar denedim herhangi bir sorunla karşılaşmadım. Onedrive üzerinden çalıştığım için ondan kaynaklı olabilir.

Sadece söyle bir problem var, onu da problem olarak karşılaşacağımı düşünmediğimden yazma gereği duymamıştım.

Veriyi küçük harfle yazar isem bulunamadı mesajını alıyorum.

Mesela ilgili listede veri "ADANA" olarak geçerken hücreye "adana" olarak yazılırsa bulmuyor.


Syg,
 
Moderatörün son düzenlenenleri:
Önceki hazırladığımız kodlar uzun vakit aldı. Şuan ki istediğiniz şey de vakit alacak bir konu. Büyük harf kullanmaya özen göstererek kendi kendinize sorunu aşmış olursunuz :)
 
Önceki hazırladığımız kodlar uzun vakit aldı. Şuan ki istediğiniz şey de vakit alacak bir konu. Büyük harf kullanmaya özen göstererek kendi kendinize sorunu aşmış olursunuz :)

Hocam Merhaba,

Dosya sadece bir kullanıcı tarafından kullanılsa elbette böyle bir değişikliğe gerek yok ancak onedrive da ortak kullanılan bir dosya olduğu için bunu herkese anlatmak çok zor ☺️


Syg,
 
Hocam Merhaba,

Dosya sadece bir kullanıcı tarafından kullanılsa elbette böyle bir değişikliğe gerek yok ancak onedrive da ortak kullanılan bir dosya olduğu için bunu herkese anlatmak çok zor ☺️


Syg,
Dosyanızın daha profesyonel gözükmesi için, kullanıcılara 'büyük harf girin' gibi bir uyarı verdirmek istemiyorsunuz anlıyorum :) Fakat dosyanız, ayırabileceğim süreyi fazlasıyla aştı.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst