Bağlı combobox ve textboxlarla Ankara yollarını userformda listelemek.

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Merhaba, herkese iyi bayramlar dilerim :)
Burada anlatacağım işlev ve ekteki örnek dosyanın içeriği resmi nitelikli bir talep üzerine oluşturacağım ve userform kökenli bir çalışmanın parçasıdır.
Bu parçanın konusu Ankara ilimizin 2020 yılına göre bütün gerçek İlçe , mahalle , yeni yol adı , eski yol adı isim değş tarihini, hızla userforma getirmektir. Ek bir açıklamayı userform üzerine de bıraktım.


Ankara 'nın ilçe/ mahalle /yeniyol adı türü / eskiyol adı türü listelemeleriini bağlı combobox ile filtreleyerek seçim ve yine yeniyol adı türüne bağlı olarak eskiyol adı türü ile karar uygulama tarihini textboxlara otomatik gelmesini sağlamak istiyorum

Toplam 11000 satırdır.

Bunun için
1- il tek olduğundan combobox1 değerini properties ile " ankarayollar!a2:a11000 " ten çektim
2- ilçeler değişmeyeceğinden yardım sayfasına kopyalayarak benzerleri kaldırdım ve prperties ile "YARDIM!B2:B50" ten çektim.

Bunların işlem hızlandırmaya etkisi olup olmayacağından emin değilim , zira bütün işlemler ANKARAYOLLAR sayfasında da yürür mü emin değilim.

3- Orijinal devlet dölümünde yeni yol adı /türü eski yol adı / türü ve uygulama tarihi olduğundan bunlar BİRLEŞTİR fonksiyonu ile birleştirdim ve YENİ YOLADI TÜRÜ ESKİYOL ADI TÜRÜ olarak iki yeni sütun çıkardım.

Bağlı combobox ile
Ankara ilinin
***** ilçesinin
*****mahallesiinin
***** yeniyol adı türünü bulmak ve
bulduğum anda
textboxlara eski yol adı türü ve bunun uygulama tarihini otomatik düşürmek istiyorum.

Her kentimizde olduğu gibi Ankara ilimizde de cadde ve sokaklar zaman zaman il meclis kararı ile değişmekte, bu nedenle aranan yolun bulunması sadece eski veya sadece yeni yolun adı ve/veya türü ile bulunamazsa projenin kaydı başlamayacaktır. Bu yüzden biri bulunduğunda diğerinin de görüntülenmesi doğru olacaktır. Eski olanı geri attım , zira eskiden bir adı dahi olmayan sokaklar caddeler farkettim. Liste 2000 yılına ait bir listedir, güvenilir olduğunu düşünüyorum.

Ancak , bilinmez ; yeni bir ilçenin yeni bir mahallesinin yeni bir yol adı ve uygulama tarihi de gelebilir. Bunun için de ayrı bir küçük pop-up form üzerine basitçe ankarayollar listesinin altına eklemeyi ve a/z sırala ile de olması gereken sıra ve yere itelemeyi düşünüyorum

Aslında bağlı combo kodları ile denedim , her combobox için 1 dk dan fazla süre alıyor ve son comboboxlarda excel çöküyor ,CPU 100 civarına fırlıyor. Programı kullanacak birimin bilgisayarı bunu kaldıramayabilir , ancak kafa bir yerden sonra duruyor ve karıştırınca da çıkılmaz hal alıyor . Daha hızlı çözecek kod fikirlerine yer açmak üzere mevcutları temizledim .

Buraya eklemek ve sormamın nedeni diğer parçaların çalışmasını sağlamaya devam etmek ve sonuçta yardımlarınızla da bayram tatili içinde ilgili resmi talibe yetiştirip birleştirmektir

@Korhan Ayhan , @Haluk , @İdris SERDAR , @YUSUF44 ve diğer ustad ve ustalarımızın ilgisi ümidi ile


cems
 

Ekli dosyalar

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Liste 2020 yılına ait bir listedir, güvenilir olduğunu düşünüyorum. *
 
Katılım
6 Temmuz 2015
Mesajlar
663
Excel Vers. ve Dili
2003
Merhabalar,
Moderatör, Uzman veya destek ekibi değiliz ama, yardımımız dokunabilirdi belki.
Neden yardımı sadece bu arkadaşlardan talep ediyorsunuz ??? Başkası yardım etse kabul etmeyecek misiniz ?
Kolay gelsin..
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Belki benim zaman sorunum nedeni ile üst düzeyin bilgisine başvurma hissi edinmiş olabilirim . Ve dış servera kopyalamayı ihmal etmiş oldum bu yüzden . Tabii ki altın üye ya da üst düzey olmayan ama oldukça bilgi dolu üyelerimiz de var 430 000 üye içinde

Dosyada ilerleme kaydettim ve comboboxlardan 2 3 4 ile uğraşmaya V2de devam ediyorum. Sorun yarın bütün gün bilgisayara ulaşamamak olacak , bu gece toparlanabilirse bu kademe bitmiş ve ana dosyaya nakletmiş ve bütünleyerek denemiş olma umudum var.

Versiyon 2 http://www.filebig.net/files/mA6M9TEkfj dış serverine yüklendi. Bu bitse gerçek verilerle çok kişinin işine yarayacaktır.

Ufak bir hata düzeltilerek yeniden yuklendi

Userform açılışı , işlem süresi olarak daha 30 kutu ve combobox olmadan dahi aşırı uzun sürüyor
 
Son düzenleme:

cicosz

Altın Üye
Katılım
30 Mart 2010
Mesajlar
180
Excel Vers. ve Dili
2007,2010,2013
Merhaba,
Bağlı combobox'lar için forumda çok güzel örnek vardı. Kimin olduğunu hatırlamıyorum ama o kodlar üzerinden giderek bir şeyler çıkarmaya çalıştım. Ad tanımlama üzerinden gidilerek işlem yapılmıştır.
İstediğiniz böyle bir şey mi?
( Bizleri de unutmayın :) )
 

Ekli dosyalar

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
İkazınız çok anlamlıydı :) İnsan ne kadar dikkat etse de kafa şiştikten sonra karıştırıyor bir şeyleri ; hoş görün lütfen.
Dosyanızı deniyorum

Burası kapanmadan yetişecek kadar seri çalışan bir dosya , gerçekten çok hızlı . Tek sorun var ,

Birleştirilmiş yeni yol adı yerine tür olan cadde sokak seçimleri geliyor
Birleştirilmiş eski yol ad yerine çizgiler geliyor , olasılıkla bu doğru ,
 
Son düzenleme:

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Birleştirilmiş yeni yol adı yerine tür olan cadde sokak seçimleri geliyor
Birleştirilmiş eski yol ad yerine çizgiler geliyor , olasılıkla bu doğru ,
 

cicosz

Altın Üye
Katılım
30 Mart 2010
Mesajlar
180
Excel Vers. ve Dili
2007,2010,2013
Merhaba,
Ben userform üzerindeki etiketler üzerinden giderek ad tanımlamalarını yaptım. Dilerseniz ilgili combobox kodlarının içeriğini kendinize göre düzenlemeye çalışın. Şayet sonuç alamazsanız tekrardan yardımcı olabilirim. Bu şekilde bir çalışma, sizin açınızdan daha faydalı olacaktır.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Hızlandırma konusunda biraz vaktinizi alabilirsem ; script olayı hızlı evet ama iyi bilgim yok.
Mümkünse şu düzene gelmesinde son kez incelerseniz çok sevinirim .

combobox1 : İl seçildi ankara
combobox2 . ilçe seçildi
combobox3: mahalle seçildi
Combobox4: yeni ADI TÜRÜ BİRLEŞTİRİLMİŞ ile yol ( yeni 2020 kayıtlarındaki adı ) bu cadde veya sokak olabilir, yenisinde genelde caddeleşmiş yada adı değişmiş)
Textbox1:: eski ADI TÜRÜ BİRLEŞTİRİLMİŞ ile yol ( eski kayıtlardaki adı ) bu da ya hiç adı yok ya da sokak adı var
Textbox2: eski adın yeni ada dönüştürülme tarihi

Son üç bilgi teyid amaçlıdır, yeni yol adı bulunduğunda eski yol adı ve tarihi göründüğünde su borusu döşenecek yer kesinleşiyor ve döşenecek boru kalınlığı uzunluğu kısmına çap ve metraj anlamında emin olunabiliyor. Bazı ihalelerde yeni bazısında eski ad açılmış oluyor.
 
Son düzenleme:

cicosz

Altın Üye
Katılım
30 Mart 2010
Mesajlar
180
Excel Vers. ve Dili
2007,2010,2013
Merhaba,
Ekteki dosyada A,B,C ve H sütunları referans alınarak bunların karşılıkları olan I ve J sütunundaki değerler ilgili textboxlara yazılıyor. Yani son combobox olan combobox4'te seçim yapmadan textbox değerlerini yazmayacaktır.
 

Ekli dosyalar

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Ben scriptleri anlayana kadar siz yenisini gönderdiniz , hemen kontrol ediyorum
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Göz açıp kapayıncaya kadar script bilginizle bana bütün gün kan ağlatan dosyaya hem hız kazandırdınız hem de gereken hiyerarsiyi REV dosyanızda çözdünüz :)
Kaldı diğer bölümleri de üstüne atarak tamamlama , artık o kısmı da sonradan..

Elleriniz aklınız dert görmesin, script denen olaydan uzak duruyordum ama çok fena sevdirdiniz. :)

Bayramınız güzel geçsin inşallah , çok teşekkür ederim . Üyeler araısından çıktınız ve bir script şiiri yazdınız :)
 

cicosz

Altın Üye
Katılım
30 Mart 2010
Mesajlar
180
Excel Vers. ve Dili
2007,2010,2013
Merhaba,

Asıl teşekkürü kodun mimarına birlikte edelim. Ben sadece ufak bir revize yaptım. Sizlerin de bayramınızın güzel geçmesi dileğiyle.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Sayın @Saban Sertkaya

Sayın @cicosz script yolu ile dosyayı sağolsun , script hızıyla çözdü :) Sabahtan beri olan bozulan dosyayla uğraşmaktan ne göz kaldı ne mantık ve kafayı topladıktan sonra sizin çözümünüzü farkettim ve indirip denedim . Sayın cicosz'un çözümüne göre 3 saniye farkediyor ve doğru işlem yapıyor .Bu hızlara duacı olurum , zira benim çözümlerimde her combo için 1 dk'ya yakın dolanıp CPU'yu 100lere çıkarıp iflas ediyordu .

Sizin çözümünüz anlayabildiğim kod düzeni ile olup her ikisini de kullanarak konuya devam edebileceğim . Daha iyisi, forumda 2 combodan fazlası bağlı , üstüne de textbox yansıtmalı iki süper dosya başka arkadaşların da erişimine açık oldu. Belki var ama , aramadan gelen sayfa sayısı 10 olduğundan ya karşılaşmadım ya da çözümü bulduğumu sandım .

Siz de zahmet edip göznurunuzu benim naçiz dosyam için döktünüz ve siz de zamanınızı ayırdınız. Size de , ayrıyeten müteşekkirim ,Memnuniyetimi nasıl izah edeceğim bilmiyorum . Sizin de bayramınızı içten dileklerimle kutlamama ve uzun yıllar sevdiklerinizle yeni bayramlarda mutlu beraberlikler dilememe izin veriniz .

Bu arada , bir soruya iki yoldan da dosya ekleme konusunda nazik uyarınızı hiç unutmamaya dikkat edeceğim . Çözüm illa yönetimden gelmeyebilir. Bir nazik yol da sayın cicosz uzak durduğum script konusunda çözümü ile fikrimi script konusunda çok fena merak olarak değiştirmesi oldu.

Her şey için her iki değerli üyemize tekrar teşekkür ederim :)
 
Katılım
6 Temmuz 2015
Mesajlar
663
Excel Vers. ve Dili
2003
Sayın cems,
Nazik sözleriniz için teşekkür eder, bizlerde aynı dileklerle sizlerin bayramınızı kutlarız.
Yardımcı olabileceğimiz konular olursa elimizden geleni yapmaya çalışırız.
Selam ve dua ile...
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Sayın @cicosz
Sayın @Saban Sertkaya

Script desteğinizle büyük bir konunun can alıcı bir kısmını kesin veri bulma ile gerçekleştirmiştik . Bunu asıl programa monte ederken iki yol düşündüm .

İlk yol bu kod ve araçları bir forma ekleyerek, daha doğrusu bu userformu genişleterek, diğer bilgilerin de girilebileceği 30 kadar textbox ekleyip veri sayfasına da textbox içeriklerini altalta yazdırmaya çalıştım . Ancak bu userformu KAYDET ile çalıştırdığım anda

runtime error :1004
Method range of object global failed

ile kodlar durdu , doğal olarak veri sayfasına kayıt geçmedi

Çatışmayı atlamak için çalışan userformu tek başına kullanıp çıkan sonuçları bir aktar tuşu ile yeni bir userform başındaki textboxlara aktarma ile o userformda veri girmeye devamı düşündüm . Bunun için de ilgili sayfalar olan " ankarayollar " ve " yardım sayfalarını da yeni dosyaya taşıdım.
Bu yeni dosyada doğal olarak sayfa1 sayfa2 sayfa3 var ve daha sonra doğal olarak bu adlar da konuya uygun değişecek.

Bu çatışmayı araştırdım, kesin bir satır ve sütun istiyor , ancak script e sizinle başladığımdan nasıl ve nerede ifade edilmesi gerektiğini bulamadım.

Ekte , bu sorunu yaşatan dosya bulunmaktadır. Bu dosyada çözülürse sonuçları veri userformundaki textboxlara aktarıp devam edeceğim.
Aynı düzeltme halihazırdaki formda iş görürse ondan devam edeceğim. Neden ek sayfa istemediğimi İncelerseniz sevinirim

 

Ekli dosyalar

Son düzenleme:

cicosz

Altın Üye
Katılım
30 Mart 2010
Mesajlar
180
Excel Vers. ve Dili
2007,2010,2013
Merhaba,

"UserForm_Initialize" fonksiyonunun ilk satırına ya da "Workbook_Open" fonksiyonuna
Kod:
Sayfa4.Select
ekleyerek dener misiniz? Olay aslında şundan ibaret: Userform yüklenmeden önce kaynak sayfasının aktif olması istenir. Sayfa4 dediğimiz userform'a verileri çekeceğimiz sayfadır.

"Kaydet" ile ilgili olarak da aynı userform üzerinden çalışmak, verileri userformdaki textbox'lardan alıp diğer sayfalara aktarmak daha işlevli olur diye düşünüyorum.

Kod:
Private Sub UserForm_Initialize()
Sayfa4.Select
    IL = Application.Transpose(Range("İL"))
    ILCE = Application.Transpose(Range("İlçe"))
    MAHALLE = Application.Transpose(Range("Mahalle"))
    YYAT = Application.Transpose(Range("YENİ_YOL_ADI_TÜRÜ"))
    EYTA = Application.Transpose(Range("ESKİ_YOL_TÜRÜ_ADI"))
    UT = Application.Transpose(Range("Uygulama_Tarihi"))
    Set SD = CreateObject("Scripting.Dictionary")
    For Each x In IL
        SD(x) = ""
    Next x
    ComboBox1.List = SD.keys
End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,168
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Sayın @cicozs ,

İnitialize kodlarının ilk satırına
Sayfa4.Select
yerleştirdikten sonra ilk denemelerde bir hata vermedi , sanırım sorun çözüldü . Yine de çok fazla kod yüklememek için yolları bu formda seçtirip sonraki geniş giriş textboxlarına aktarıp devam ederek sonuçta veri sayfasına indirmeyi uygulamayı düşünüyorum.

Bu arada aynı sorun Sn @Saban Sertkaya 'nın dosyasında oluşmadı, şu anda diğer userforma geçiş için onun çözümünde henüz bir şey yapmadım ama , sizin script çözümünde yarıyı geçmiştim,ilerleyeceğim ama , sonra dönüp baştan bu dosyaya da devam edeceğim.

Her iki yoldan da elimde iki ayrı tabanlı program olsun :)

Sayın cicosz , tekrar teşekkür ederim. Umarım küçük takılmalar daha sonraki aşamalarda olur script kökenli gelişirse size tekrar sormamda mahsuz görmezsiniz ...
 
Üst