Klasör içindeki dosyalara bağlantı oluşturmak

Katılım
18 Mart 2021
Mesajlar
14
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
24-03-2022
Merhabalar.
Çalıştığım kurumda ağ üzerindeki bir klasörde bulunan .pdf uzantılı dosyalara kolay erişimi sağlamak için yardıma ihtiyacım var.Excelde Combobox kutucuğuna dosya ismini yazıp Commandbutton a bastığımda pdf dosyasının açılmasını istiyorum.Bunun için internette araştırma yaparak aşağıdaki excel dosyasındaki şekliyle denedim fakat istediğim sonucu alamadım. Ağ üzerinde çok sayıda kişi arama yapmak için bu excel dosyasını kullanacağından sadece combobox ve command butonlarının gözükeceği şekilde bir düzenleme yapmak mümkün müdür acaba.?
Yardımlarınızı bekliyorum.Teşekkürler.

commanbutton1


Private Sub CommandButton1_Click()
For Each bul In Sheets("Sayfa1").Range("A1:A" & Range("A100").End(3).Row)
If bul = ComboBox1.Value Then
bul.Offset(i, 0).Activate
Dim strFilePath As String
strFilePath = "\\dosya yolu\" & ComboBox1.Value & ".pdf"
ThisWorkbook.FollowHyperlink (strFilePath)
Exit For
End If
Next bul

End Sub

workbook

Private Sub WorkBook_open()
For i = 1 To 200
Sayfa1.ComboBox1.AddItem Range("A" & i).Value
Next i
End Sub


yukarıdaki kodlarda aldığım hatalar şunlar:

Run time error -2147221014(800401ea) şeklinde bir hata ekrana çıkıyor ve dosya açılamıyor şeklinde uyarı veriyor.Debug butonuna bastığımda ThisWorkbook.FollowHyperlink (strFilePath) bu satırı sarıya boyayarak uyarı veriyor.
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
strFilePath = "\\dosya yolu\" & ComboBox1.Value & ".pdf"

Bu satırdaki "dosya yolu" yazan yeri kendinize göre uyarladınız mı ?
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Ağdan çalıştıaracaksanız. \\Bilgisayar Adı\Klasör Adı\ şeklinde uyarlamanız gerekiyor.
Paylaşılan klasörün altındaki ikinci bir klasörden açacaksanız onu da belirtmelisiniz. \\Bilgisayar Adı\Klasör Adı\İkinci Klasör adı\
Ayrıca Sayfa1'de A sütununa yazdığınız dosya isimlerinde uzantı da olmamalı.

Örn. ABC.pdf yi Excelde ABC olarak belirtmelisiniz.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Örnek olarak inceleyin

Kod:
Sub Example1()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim i As Integer

Set objFSO = CreateObject("Scripting.FileSystemObject")
Columns("A:D").ClearContents
Set objFolder = objFSO.GetFolder("\\0.0.0.\etd\turn") 'Klasör adresini buraya yazın
i = 2
For Each objFile In objFolder.Files
uzanti = objFSO.GetExtensionName(objFile)

'If strFileExt = "pdf" Or strFileExt = "xlsx" Or strFileExt = "xls" Then
If uzanti = "pdf" Then
'Range(Cells(i + 1, 1), Cells(i + 1, 1)).Select
Range("A" & i).Value = objFile.Name
Range("B" & i).Value = objFile.Path
Range("c" & i).Value = uzanti
Range("d" & i).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
objFile.Path, _
TextToDisplay:=objFile.Name
i = i + 1
End If

Next

End Sub
 
Katılım
18 Mart 2021
Mesajlar
14
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
24-03-2022
Ağdan çalıştıaracaksanız. \\Bilgisayar Adı\Klasör Adı\ şeklinde uyarlamanız gerekiyor.
Paylaşılan klasörün altındaki ikinci bir klasörden açacaksanız onu da belirtmelisiniz. \\Bilgisayar Adı\Klasör Adı\İkinci Klasör adı\
Ayrıca Sayfa1'de A sütununa yazdığınız dosya isimlerinde uzantı da olmamalı.

Örn. ABC.pdf yi Excelde ABC olarak belirtmelisiniz.
Evet klasör adında bir karışıklık olmuş şimdi halloldu teşekkürler.Bu dosyayı ağdan başkası açtığında herhangi bir değişiklik yapmaması için dosya açılınca uygulama gibi sadece commandbutton ve combobox un gözükeceği bir düzenleme mümkün mü acaba?
 
Katılım
18 Mart 2021
Mesajlar
14
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
24-03-2022
Örnek olarak inceleyin

Kod:
Sub Example1()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim i As Integer

Set objFSO = CreateObject("Scripting.FileSystemObject")
Columns("A:D").ClearContents
Set objFolder = objFSO.GetFolder("\\0.0.0.\etd\turn") 'Klasör adresini buraya yazın
i = 2
For Each objFile In objFolder.Files
uzanti = objFSO.GetExtensionName(objFile)

'If strFileExt = "pdf" Or strFileExt = "xlsx" Or strFileExt = "xls" Then
If uzanti = "pdf" Then
'Range(Cells(i + 1, 1), Cells(i + 1, 1)).Select
Range("A" & i).Value = objFile.Name
Range("B" & i).Value = objFile.Path
Range("c" & i).Value = uzanti
Range("d" & i).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
objFile.Path, _
TextToDisplay:=objFile.Name
i = i + 1
End If

Next

End Sub
hocam cevabınız için teşekkürler fakat vba konusunda çok yeniyim kodu tam olarak nereye yazacağımı anlayamadım.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Sayın sagacious boş bir excel dosyası açarak bir modül oluşturun.
Kodu modüle yapıştırın.
Ağ adresini istenilen yere yapıştırın (pdf dosyalarını arayacağınız ağ adresi)
Verdiğim kod ağ adresinizdeki pdf dosyalara link oluşturacaktır.
Bu mantığa göre isterseniz kendi kodunuzu düzenleyebilirsiniz.

Ayrıca Vba ayrıntılı bilgi için bakınız.

https://www.youtube.com/watch?v=5YNlPN0SliE
 
Katılım
18 Mart 2021
Mesajlar
14
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
24-03-2022
Sayın sagacious boş bir excel dosyası açarak bir modül oluşturun.
Kodu modüle yapıştırın.
Ağ adresini istenilen yere yapıştırın (pdf dosyalarını arayacağınız ağ adresi)
Verdiğim kod ağ adresinizdeki pdf dosyalara link oluşturacaktır.
Bu mantığa göre isterseniz kendi kodunuzu düzenleyebilirsiniz.

Ayrıca Vba ayrıntılı bilgi için bakınız.

https://www.youtube.com/watch?v=5YNlPN0SliE
teşekkür ederim.
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
A sütununu gizleyip, combobox ve command butonu istediğiniz yere koyun.
Gözden geçir ve sayfayı koruyu seçin, isterseniz parola girin ve onaylayın. Sayfada değişiklik yapılamayacaktır.
Ekleme yapacağınız zaman gözden geçir ve sayfa korumasını seçer düzenleme yapar ve tekrar korumayı aktif edersiniz.

Düğme ve combobox excel sayfasında değil de örnek resimdeki gibi formda açılsın diyorsanız. Farklı işlemler yapmak gerekir. :)

226285


VBA editöri açın form ekleyin combobox ve Command buton düğmelerini forma ekleyi ve kodları aşağıdaki gibi düzenleyin.

Userform kod sayfasına eklenecek.

Private Sub CommandButton1_Click()
For Each bul In Sheets("Sayfa1").Range("A1:A" & Range("A100").End(3).Row)
If bul = ComboBox1.Value Then
bul.Offset(i, 0).Activate
Dim strFilePath As String
strFilePath = "\\Dosya Yolu\" & ComboBox1.Value '& ".pdf"
ThisWorkbook.FollowHyperlink (strFilePath)
Exit For
End If
Next bul
End Sub

Bu çalışma kitabındaki kod aşağıdaki gibi düzenlenecek.

Private Sub WorkBook_open()
For i = 1 To 200
UserForm1.ComboBox1.AddItem Range("A" & i).Value
Next i
UserForm1.Show
End Sub



Evet klasör adında bir karışıklık olmuş şimdi halloldu teşekkürler.Bu dosyayı ağdan başkası açtığında herhangi bir değişiklik yapmaması için dosya açılınca uygulama gibi sadece commandbutton ve combobox un gözükeceği bir düzenleme mümkün mü acaba?
 
Son düzenleme:
Katılım
18 Mart 2021
Mesajlar
14
Excel Vers. ve Dili
2016 excel
Altın Üyelik Bitiş Tarihi
24-03-2022
A sütununu gizleyip, combobox ve command butonu istediğiniz yere koyun.
Gözden geçir ve sayfayı koruyu seçin, isterseniz parola girin ve onaylayın. Sayfada değişiklik yapılamayacaktır.
Ekleme yapacağınız zaman gözden geçir ve sayfa korumasını seçer düzenleme yapar ve tekrar korumayı aktif edersiniz.

Düğme ve combobox excel sayfasında değil de örnek resimdeki gibi formda açılsın diyorsanız. Farklı işlemler yapmak gerekir. :)

Ekli dosyayı görüntüle 226285


VBA editöri açın form ekleyin combobox ve Command buton düğmelerini forma ekleyi ve kodları aşağıdaki gibi düzenleyin.

Userform kod sayfasına eklenecek.

Private Sub CommandButton1_Click()
For Each bul In Sheets("Sayfa1").Range("A1:A" & Range("A100").End(3).Row)
If bul = ComboBox1.Value Then
bul.Offset(i, 0).Activate
Dim strFilePath As String
strFilePath = "\\Dosya Yolu\" & ComboBox1.Value '& ".pdf"
ThisWorkbook.FollowHyperlink (strFilePath)
Exit For
End If
Next bul
End Sub

Bu çalışma kitabındaki kod aşağıdaki gibi düzenlenecek.

Private Sub WorkBook_open()
For i = 1 To 200
UserForm1.ComboBox1.AddItem Range("A" & i).Value
Next i
UserForm1.Show
End Sub
Hocam bu hali tam istediğim gibi oldu,Teşekkürler.
 
Üst