klasör seçerek adresi textboxa alma

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Merhaba Arkadaşlar

Klasör çalışmasını sayın leventm'in hazırladığı bir dosyadan aldım. Ancak ben daha farklı bir şey yapmak istiyordum ve tahmin edeceğiniz gibi beceremedim. Yapmak istediğim sorgu formundaki "klasör aç" tuşuna bastığınızda "kaydetmek istediğiniz klasörü seçin" penceresi geliyor. Ben bu pencere üzerinde klasörü seçtikten sonra herhangi bir şekilde (üstüne çift tıklama veya bir buton yardımıyla olabilir) klasör adresinin sorgu formundaki "kayıt adresi" textboxuna atılmasını istiyorum. bu şekilde database kaydı yaptığımda linkleride otomatik olarak oluşturmuş olacağım. yardımlarınızı bekliyor ve ilgilenen arkadaşlarıma şimdiden çok teşekkür ediyorum.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kod ile seçilen klasörü örneğin T1 hücresine yazdırarak "kayıt adresi"ne textboxına buradan aldırabilirsiniz.

Kod:
Sub DosyaYolu()
Set ObjFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin !", &H100)
[t1] = ObjFolder.Items.Item.Path
End Sub
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Aşağıdaki kod ile seçilen klasörü örneğin T1 hücresine yazdırarak "kayıt adresi"ne textboxına buradan aldırabilirsiniz.

Kod:
Sub DosyaYolu()
Set ObjFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin !", &H100)
[t1] = ObjFolder.Items.Item.Path
End Sub
Yazdığınız kodu commandbutton1 koduna yazdım ve çalıştırdım. benim yapmak istediğim textbox1'e çift tıkladığımda bu yordamı gerçekleştirmek. birde ne yaparsam yapayım verdiğim adresin default olarak açılmasını sağlayamadım, örneğin "\\Server\d\M.I.S\Kalite\" gibi.sürekli belgelerim klasörünü görüyor, nasıl düzeltebilirim?

Not: Sizin düzenlediğiniz veritabanı formatını kullanarak bu veritabanını oluşturmaya çalışıyorum. daha öncede başka bir veritabanını bu formatta oluşturmuştum. paylaşıma verdiğiniz emekler boşa gitmiyor sizin anlayacağınız :)
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Yazdığınız kodu commandbutton1 koduna yazdım ve çalıştırdım. benim yapmak istediğim textbox1'e çift tıkladığımda bu yordamı gerçekleştirmek. birde ne yaparsam yapayım verdiğim adresin default olarak açılmasını sağlayamadım, örneğin "\\Server\d\M.I.S\Kalite\" gibi.sürekli belgelerim klasörünü görüyor, nasıl düzeltebilirim?

Not: Sizin düzenlediğiniz veritabanı formatını kullanarak bu veritabanını oluşturmaya çalışıyorum. daha öncede başka bir veritabanını bu formatta oluşturmuştum. paylaşıma verdiğiniz emekler boşa gitmiyor sizin anlayacağınız :)
Arkadaşlar bu konuda bana yardım edebilecek kimse yok mu acaba?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

Kod:
Sub DosyaYolu()
Set ObjFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin !", &H100,"\\Server\d\M.I.S\Kalite\")
[t1] = ObjFolder.Items.Item.Path
End Sub
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Merhaba arkadaşlar

sayın leventm ve sayın ripekin yardımlarıyla ekte gördüğünüz database oluşturdum. Kayıt adresi düğmesine tıklayıp istediğim adresi seçtiğimde textboxa adresi alabiliyorum. Ancak database bu şekilde kayıt edildiğinde spreadsheette bulunan "tüm dökümanlar" sütununda link haline gelmiyor. sebepse sanırım bu şekilde kayıt yaptığımda (örneğin 4. satır) daha önce link olarak kullanabildiğim format (1. ve 2. kayıtlar) kayboluyor. spreadsheette link olarak gösterebilmek için nasıl kayıt yapmalıyım? esirgemediğiniz yardımlarınız için çok teşekkür ederim.

Arkadaşlar bu soruya ek olarak; userform1'deki döküman tipi combo boxına tıklayıp seçim yaptığımda, yaptığım seçime göre ikinci combobox içeriğini oluştursun istiyorum. forumda birkaç örnek buldum (sayın veyselemre'nin örneği en pratik olanı gibi geldi, en son onu uyguladım) ama örnek kodları kendime uyarladığımda 2. combobox mutlaka boş geliyor. lütfen yardımcı olurmusunuz?
 
Son düzenleme:

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Merhaba arkadaşlar

sayın leventm ve sayın ripekin yardımlarıyla ekte gördüğünüz database oluşturdum. Kayıt adresi düğmesine tıklayıp istediğim adresi seçtiğimde textboxa adresi alabiliyorum. Ancak database bu şekilde kayıt edildiğinde spreadsheette bulunan "tüm dökümanlar" sütununda link haline gelmiyor. sebepse sanırım bu şekilde kayıt yaptığımda (örneğin 4. satır) daha önce link olarak kullanabildiğim format (1. ve 2. kayıtlar) kayboluyor. spreadsheette link olarak gösterebilmek için nasıl kayıt yapmalıyım? esirgemediğiniz yardımlarınız için çok teşekkür ederim.

Arkadaşlar bu soruya ek olarak; userform1'deki döküman tipi combo boxına tıklayıp seçim yaptığımda, yaptığım seçime göre ikinci combobox içeriğini oluştursun istiyorum. forumda birkaç örnek buldum (sayın veyselemre'nin örneği en pratik olanı gibi geldi, en son onu uyguladım) ama örnek kodları kendime uyarladığımda 2. combobox mutlaka boş geliyor. lütfen yardımcı olurmusunuz?
Tekrar merhaba

sizden ayrı kadığım sürede 1. sorumun cevabını hücre biçimlendirmeden yararlanarak çözdüm. ancak 2. soruma hala bir çözüm bulamadım (forumda birçok örnek var ama bir iki tanesi benimkine benzemesine rağmen çok karmaşık geldi. uygulamada zorlandım) lütfen yardımcı olurmusunuz?
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Tekrar merhaba

sizden ayrı kadığım sürede 1. sorumun cevabını hücre biçimlendirmeden yararlanarak çözdüm. ancak 2. soruma hala bir çözüm bulamadım (forumda birçok örnek var ama bir iki tanesi benimkine benzemesine rağmen çok karmaşık geldi. uygulamada zorlandım) lütfen yardımcı olurmusunuz?
Dalya dedik ama hala bir çözüm bulamadım, 2. dalyayı bulmadan yardımcı olabilecek arkadaşlarım yok mu acaba :) Şaka bir yana tıkandım resmen, yardımlarınızı dört gözle bekliyorum...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Döküman tipinin seçildiği comboboxa aşağıdaki kodu kopyalayın.

Kod:
Private Sub ALAN02_Change()
ALAN03.RowSource = ""
Set s1 = Sheets("DOKTIPI")
ilk = WorksheetFunction.Match(ALAN02, s1.[b:b], 0)
son = WorksheetFunction.CountIf(s1.[b:b], ALAN02) + ilk - 1
ALAN03.RowSource = "DOKTIPI!c" & ilk & ":c" & son
End Sub
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Döküman tipinin seçildiği comboboxa aşağıdaki kodu kopyalayın.

Kod:
Private Sub ALAN02_Change()
ALAN03.RowSource = ""
Set s1 = Sheets("DOKTIPI")
ilk = WorksheetFunction.Match(ALAN02, s1.[b:b], 0)
son = WorksheetFunction.CountIf(s1.[b:b], ALAN02) + ilk - 1
ALAN03.RowSource = "DOKTIPI!c" & ilk & ":c" & son
End Sub
sayın leventm öncelikle ilginize, yardımseverliğinize ve özellikle pratikliğinize şapka çıkartıyorum. sizden ricam ben ve benim gibi kod yazmaya çalışan acemiler için (eğer vaktiniz varsa) yukarıdaki kodun ne ifade ettiğini anlatırmısınız? çünkü diğer örneklere bakarak görüyorum ki işin bütün hamaliyetini kaldırıp pratik yoldan çözmüşsünüz. açıklamalarınız bizim için büyük bir rehber olacaktır eminim... sağlıcakla kalın...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kodların anlamını yanlarına yazdım umarım faydası olur.

Kod:
[LEFT]Private Sub ALAN02_Change()
ALAN03.RowSource = "" [B][COLOR=green]'ALAN03 comboboxını boşaltır.[/COLOR][/B]                    
Set s1 = Sheets("DOKTIPI") [COLOR=green][B]'s1 değişkenini DOKTIPI isimli sayfa olarak tanımlar.
[/B][/COLOR]ilk = WorksheetFunction.Match(ALAN02, s1.[b:b], 0) [B][COLOR=green]'ALAN02 comboboxından seçilen verinin bulunduğu ilk hücrenin satır değerini bulur.
[/COLOR][/B]son = WorksheetFunction.CountIf(s1.[b:b], ALAN02) + ilk - 1 [COLOR=green][B]'ALAN02 comboboxından seçilen verinin bulunduğu son hücrenin satır nosunu bulur.
[/B][/COLOR]ALAN03.RowSource = "DOKTIPI!c" & ilk & ":c" & son [B][COLOR=green]'Bulunan ilk ve son satır noları arasındaki verileri ALAN03 comboboxuna yükler.
[/COLOR][/B]End Sub[/LEFT]
Not: Bu mantığın doğru çalışması için aynı veriler altalta sıralınmış şekilde dizilmiş olmalıdır.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Kodların anlamını yanlarına yazdım umarım faydası olur.

Kod:
[LEFT]Private Sub ALAN02_Change()
ALAN03.RowSource = "" [B][COLOR=green]'ALAN03 comboboxını boşaltır.[/COLOR][/B]                    
Set s1 = Sheets("DOKTIPI") [COLOR=green][B]'s1 değişkenini DOKTIPI isimli sayfa olarak tanımlar.
[/B][/COLOR]ilk = WorksheetFunction.Match(ALAN02, s1.[b:b], 0) [B][COLOR=green]'ALAN02 comboboxından seçilen verinin bulunduğu ilk hücrenin satır değerini bulur.
[/COLOR][/B]son = WorksheetFunction.CountIf(s1.[b:b], ALAN02) + ilk - 1 [COLOR=green][B]'ALAN02 comboboxından seçilen verinin bulunduğu son hücrenin satır nosunu bulur.
[/B][/COLOR]ALAN03.RowSource = "DOKTIPI!c" & ilk & ":c" & son [B][COLOR=green]'Bulunan ilk ve son satır noları arasındaki verileri ALAN03 comboboxuna yükler.
[/COLOR][/B]End Sub[/LEFT]
Not: Bu mantığın doğru çalışması için aynı veriler altalta sıralınmış şekilde dizilmiş olmalıdır.
İlginize çok teşekkürler, eminim ben diğer arkadaşlarım için çok faydalı olacaktır.
 
Katılım
13 Kasım 2007
Mesajlar
11
Excel Vers. ve Dili
2007 TR - 2010 EN
Açıkçası gerçekten de pratikliğiniz ve bilginizden yararlanmak bir mutluluk. Rowsource olarak veri almak hiç aklıma gelmemişti tek tek okutuyordum. Teşekkürler
 
Üst