İle göre ilçe getirme

Katılım
14 Eylül 2008
Mesajlar
139
Excel Vers. ve Dili
Office 2003 Serisi
Merhaba üstadlar İl ve ilçe başlıklı bir listem var. İlçenin yanında hangi ile bağlı olduğu yazıyor. Ben a1 hücresine ankarayı seçince açılır kutudan ankarnaın ilçelerini seçebilmek istiyorum. Bunu makrosuz çözmem lazım. Yardımlarınızı bekliyorum. Teşekkürler.
 
Katılım
4 Mart 2008
Mesajlar
14
Excel Vers. ve Dili
office 2007
veri doğrulama ile yapabilirsin diye düşünüyorum.Oradan listeyi seçmelisin.
 
Katılım
14 Eylül 2008
Mesajlar
139
Excel Vers. ve Dili
Office 2003 Serisi
veri doğrulama tek başına yetersiz kalıyor galiba formülle çözülebiliyor bu işlem
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,773
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba
Dosyanızı gönderirseniz bakarım
Kolay gelsin
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Sayın hezarpare Süzme işlemi işinizi görmüyor mu?
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028


Tablonuz resimdeki gibi olursa bu kodları ilgili sayfanın kod kısmına yazabilirsiniz.
Kod:
[FONT="Trebuchet MS"][SIZE="2"]Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Range("A2:A1000"), Target) Is Nothing And Target.Count = 1 Then
        Set Liste = Sheets("VeriTabanı")
        Set SD = CreateObject("Scripting.Dictionary")
        For Each Evn In Liste.Range("A2:A" & Liste.Range("A65536").End(3).Row)
            SD(Evn.Value) = ""
        Next Evn
        Target.Validation.Delete
        Target.Validation.Add xlValidateList, Formula1:=Join(SD.keys, ",")
        SendKeys "%{down}"
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("A2:A1000"), Target) Is Nothing And Target.Count = 1 Then
      If Target <> "" Then
       Set Liste = Sheets("VeriTabanı")
       Set SD = CreateObject("Scripting.Dictionary")
       For Each Evn In Liste.Range("A2:A" & Liste.Range("A65536").End(3).Row)
         If Evn.Value = Target Then SD(Evn.Offset(, 1)) = ""
       Next Evn
       Target.Offset(, 1).Validation.Delete
       Target.Offset(, 1).Validation.Add xlValidateList, Formula1:=Join(SD.keys, ",")
       a = SD.keys
       Target.Offset(, 1) = a(0)
       If SD.Count > 1 Then Target.Offset(, 1).Select: SendKeys "%{down}"
          Else
       Target.Offset(, 1) = ""
     End If
    End If
End Sub[/SIZE][/FONT]
 
Katılım
14 Eylül 2008
Mesajlar
139
Excel Vers. ve Dili
Office 2003 Serisi
Üstadlar örnekleri inceledim ama bir türlü yapamadım. listede dolaylıyı kullanınca formülünüzde hata var diyor. devam edemiyorum. Aşağıdaki linkte dosyam mevcut. Dosyamda veriler sekmesinde resmini paylaştığım tablomdaki veriler üzeirnde çalışıyorum. Üretim Emri sayfamda I1 'e tablomdan DIVISNR sütunundaki veriler gelecek. I1'den seçim yaptığım zaman. Altındaki hücrelerden listeyi açtığımda yine tablomdan bu sefer NR verilerini getirecek. Makro istemedim ama gerekirse oda olur artık.




http://s3.dosya.tc/server6/ydm338/Uretim_emri___Teklif_olusturma_-_Kopya.rar.html
 
Katılım
8 Mart 2019
Mesajlar
73
Excel Vers. ve Dili
Excel 2013 64 Bit
Altın Üyelik Bitiş Tarihi
24-06-2024
Tablonuz resimdeki gibi olursa bu kodları ilgili sayfanın kod kısmına yazabilirsiniz.
Kod:
[FONT="Trebuchet MS"][SIZE="2"]Private Sub Worksheet_SelectionChange(ByVal Target As Range)[/INDENT]
[INDENT]    If Not Intersect(Range("A2:A1000"), Target) Is Nothing And Target.Count = 1 Then[/INDENT]
[INDENT]        Set Liste = Sheets("VeriTabanı")[/INDENT]
[INDENT]        Set SD = CreateObject("Scripting.Dictionary")[/INDENT]
[INDENT]        For Each Evn In Liste.Range("A2:A" & Liste.Range("A65536").End(3).Row)[/INDENT]
[INDENT]            SD(Evn.Value) = ""[/INDENT]
[INDENT]        Next Evn[/INDENT]
[INDENT]        Target.Validation.Delete[/INDENT]
[INDENT]        Target.Validation.Add xlValidateList, Formula1:=Join(SD.keys, ",")[/INDENT]
[INDENT]        SendKeys "%{down}"[/INDENT]
[INDENT]    End If[/INDENT]
[INDENT]End Sub[/INDENT]
[INDENT][/INDENT]
[INDENT]Private Sub Worksheet_Change(ByVal Target As Range)[/INDENT]
[INDENT]    If Not Intersect(Range("A2:A1000"), Target) Is Nothing And Target.Count = 1 Then[/INDENT]
[INDENT]      If Target <> "" Then[/INDENT]
[INDENT]       Set Liste = Sheets("VeriTabanı")[/INDENT]
[INDENT]       Set SD = CreateObject("Scripting.Dictionary")[/INDENT]
[INDENT]       For Each Evn In Liste.Range("A2:A" & Liste.Range("A65536").End(3).Row)[/INDENT]
[INDENT]         If Evn.Value = Target Then SD(Evn.Offset(, 1)) = ""[/INDENT]
[INDENT]       Next Evn[/INDENT]
[INDENT]       Target.Offset(, 1).Validation.Delete[/INDENT]
[INDENT]       Target.Offset(, 1).Validation.Add xlValidateList, Formula1:=Join(SD.keys, ",")[/INDENT]
[INDENT]       a = SD.keys[/INDENT]
[INDENT]       Target.Offset(, 1) = a(0)[/INDENT]
[INDENT]       If SD.Count > 1 Then Target.Offset(, 1).Select: SendKeys "%{down}"[/INDENT]
[INDENT]          Else[/INDENT]
[INDENT]       Target.Offset(, 1) = ""[/INDENT]
[INDENT]     End If[/INDENT]
[INDENT]    End If[/INDENT]
[INDENT]End Sub[/SIZE][/FONT]
hocam merhaba bunu açılır user form şeklinde nasıl yapabiliriz?
 
Üst