• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

klasör seçerek adresi textboxa alma

Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
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.
 
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
 
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 :)
 
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?
 
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
 
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:
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?
 
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...
 
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
 
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...
 
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.
 
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.
 
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
 
Geri
Üst