Soru Klasör altındaki dosyalara köprü ekleyen kodda yöntem değiştirme

Katılım
28 Eylül 2018
Mesajlar
112
Excel Vers. ve Dili
Office Pro Plus 2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2023
Aşağıdaki kod için excelimde 2 ayrı buton var. G1 hücresinde bir dosya klasör yolu oluşturuyorum. Bu yol sürekli değişebiliyor. Kopyala butonuna basıp daha sonra çalıştır butonuna bastığımda dosya seçme ekranına yolu yapıştırıyorum.

İstediğim şöyle birşey arkadaşlar, G1 hücresini kopyalamak için ayrı bir fonksiyon yazmak yerine Example1 koduna nasıl entegre edebiliriz. Example1 makrosunu çalıştırdığımda dosya yolu olarak g1 hücresindeki dosya yolunu almış olsun.

A1 hücresinden başlayıp aşağıya kadar klasördeki tüm dosyaları yolları ile köprü ekleyip oluşturuyor. Koda ekleyebilirmiyiz acaba A1 den değilde B3 den itibaren aşağıya kadar yapıştırsın

Kod:
Sub copyfekler()
Sheets("FF").Range("G1").copy
End Sub

Sub Example1()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xFiDialog As FileDialog
    Dim xPath As String
    Dim I As Integer
    Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
    If xFiDialog.Show = -1 Then
        xPath = xFiDialog.SelectedItems(1)
    End If
    Set xFiDialog = Nothing
    If xPath = "" Then Exit Sub
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFSO.GetFolder(xPath)
    For Each xFile In xFolder.Files
        I = I + 1
        ActiveSheet.Hyperlinks.Add Cells(I, 1), xFile.Path, , , xFile.Name
    Next
End Sub
 
Son düzenleme:

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,362
Excel Vers. ve Dili
2019 TR
Merhaba, klasör seçme işlemi olmadan, G1 hücresinde yazılı olan yol bilgisine göre işlem yapan kodlar.
Kod:
Sub Example1()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xFiDialog As FileDialog
    Dim xPath As String
    Dim I As Integer
'    Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
'    If xFiDialog.Show = -1 Then
'        xPath = xFiDialog.SelectedItems(1)
'    End If
'    Set xFiDialog = Nothing
xPath = Sayfa1.Range("G1").Text
    If xPath = "" Then Exit Sub
    Set xFSO = CreateObject("Scripting.FileSystemObject")
kontrol = xFSO.FolderExists(xPath)
If kontrol = True Then
    Set xFolder = xFSO.GetFolder(xPath)
    I = 2
    For Each xFile In xFolder.Files
        I = I + 1
        ActiveSheet.Hyperlinks.Add Cells(I, 2), xFile.Path, , , xFile.Name
    Next
Else
MsgBox "Klasör bulunamadı."
End If
End Sub
 
Katılım
28 Eylül 2018
Mesajlar
112
Excel Vers. ve Dili
Office Pro Plus 2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2023
Merhaba, klasör seçme işlemi olmadan, G1 hücresinde yazılı olan yol bilgisine göre işlem yapan kodlar.
Kod:
Sub Example1()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xFiDialog As FileDialog
    Dim xPath As String
    Dim I As Integer
'    Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
'    If xFiDialog.Show = -1 Then
'        xPath = xFiDialog.SelectedItems(1)
'    End If
'    Set xFiDialog = Nothing
xPath = Sayfa1.Range("G1").Text
    If xPath = "" Then Exit Sub
    Set xFSO = CreateObject("Scripting.FileSystemObject")
kontrol = xFSO.FolderExists(xPath)
If kontrol = True Then
    Set xFolder = xFSO.GetFolder(xPath)
    I = 2
    For Each xFile In xFolder.Files
        I = I + 1
        ActiveSheet.Hyperlinks.Add Cells(I, 2), xFile.Path, , , xFile.Name
    Next
Else
MsgBox "Klasör bulunamadı."
End If
End Sub
Aşağıdaki hatayı veriyor hocam çalışmadı. Birde A1 den itibaren aşağıya kadar köprü yaparak yapıştırıyor dosyaları bunu acaba manuel ayarlayabilirmiyiz c3 den itibaren örneğin aşağıya kadar yapıştırması için.

234259
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,362
Excel Vers. ve Dili
2019 TR
Merhaba, kullandığınız dosyada Option Explicit aktif ise kontrol değişkeni için tanımlama ister.
ActiveSheet.Hyperlinks.Add Cells(I, 3) satırında 3 değeri sütun numarasıdır, hangi sütuna yazdırmak isterseniz bu numarayı değiştirebilir ya da "C" gibi sütun harfi yazabilirsiniz.
C sütunundaki kayıtları temizlemesi için de bir satır ekledim.
G1 hücresinde yazılı olan yol bilgisine göre işlem yapar.
234267
Kod:
Sub Example1()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xFiDialog As FileDialog
    Dim xPath As String
    Dim I As Integer
    Dim kontrol As Boolean
    Dim son As Long
'    Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
'    If xFiDialog.Show = -1 Then
'        xPath = xFiDialog.SelectedItems(1)
'    End If
'    Set xFiDialog = Nothing
son = Sheets("FF").Cells(Rows.Count, "C").End(3).Row
Sheets("FF").Range("C3:C" & son).Clear
xPath = Sheets("FF").Range("G1").Text
    If xPath = "" Then Exit Sub
    Set xFSO = CreateObject("Scripting.FileSystemObject")
kontrol = xFSO.FolderExists(xPath)
If kontrol = True Then
    Set xFolder = xFSO.GetFolder(xPath)
    I = 2
    For Each xFile In xFolder.Files
        I = I + 1
        ActiveSheet.Hyperlinks.Add Cells(I, 3), xFile.Path, , , xFile.Name
    Next
Else
MsgBox "Klasör bulunamadı."
End If
End Sub
 
Katılım
28 Eylül 2018
Mesajlar
112
Excel Vers. ve Dili
Office Pro Plus 2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2023
Süper oldu ellerine sağlık hocam
 
Katılım
28 Eylül 2018
Mesajlar
112
Excel Vers. ve Dili
Office Pro Plus 2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2023
Merhaba, kullandığınız dosyada Option Explicit aktif ise kontrol değişkeni için tanımlama ister.
ActiveSheet.Hyperlinks.Add Cells(I, 3) satırında 3 değeri sütun numarasıdır, hangi sütuna yazdırmak isterseniz bu numarayı değiştirebilir ya da "C" gibi sütun harfi yazabilirsiniz.
C sütunundaki kayıtları temizlemesi için de bir satır ekledim.
G1 hücresinde yazılı olan yol bilgisine göre işlem yapar.
Ekli dosyayı görüntüle 234267
Kod:
Sub Example1()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xFiDialog As FileDialog
    Dim xPath As String
    Dim I As Integer
    Dim kontrol As Boolean
    Dim son As Long
'    Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
'    If xFiDialog.Show = -1 Then
'        xPath = xFiDialog.SelectedItems(1)
'    End If
'    Set xFiDialog = Nothing
son = Sheets("Güncellemeler").Cells(Rows.Count, "A").End(1).Row
Sheets("Güncellemeler").Range("A1:A" & son).Clear
xPath = Sheets("Güncellemeler").Range("G1").Text
    If xPath = "" Then Exit Sub
    Set xFSO = CreateObject("Scripting.FileSystemObject")
kontrol = xFSO.FolderExists(xPath)
If kontrol = True Then
    Set xFolder = xFSO.GetFolder(xPath)
    I = 1
    For Each xFile In xFolder.Files
        I = I + 1
        ActiveSheet.Hyperlinks.Add Cells(I, 1), xFile.Path, , , xFile.Name
    Next
Else
MsgBox "Klasör bulunamadı."
End If
End Sub
Bu kodlar çalışıyor ama bir ilave daha rica edeceğim

Hocam bu kod ile belirli klasör deki tüm pdf leri listeliyoruz. Peki bunu ilgili klasör ve tüm alt klasörleri şeklinde değiştirebilir miyiz ?

G1 hücresi değil de ben o g1 olan yere ana klasör yolunu yazayım alt klasörlerinde de ne kadar pdf varsa hepsini listelesin hocam ? Mümkün mü
 
Katılım
28 Eylül 2018
Mesajlar
112
Excel Vers. ve Dili
Office Pro Plus 2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2023
Bu kodlar çalışıyor ama bir ilave daha rica edeceğim

Hocam bu kod ile belirli klasör deki tüm pdf leri listeliyoruz. Peki bunu ilgili klasör ve tüm alt klasörleri şeklinde değiştirebilir miyiz ?

G1 hücresi değil de ben o g1 olan yere ana klasör yolunu yazayım alt klasörlerinde de ne kadar pdf varsa hepsini listelesin hocam ? Mümkün mü
Arkadaşlar bu konu hakkında yardım bekliyorum hala.

Yardımcı olabilirseniz sevinirim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,548
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Aşağıdaki hatırlatmam size özel değildir...

Konuyu inceleyen diğer üyelerimizinde bu konuya dikkat etmeleri başlıklarının cevapsız kalma riskini azaltacaktır.


Konu başlıklarınızda çok genel ifadeler kullanmamanızı rica ederim. Bunu şu sebeple talep ediyoruz.

Arama yapan ve aynı sıkıntıdan muzdarip olan üyeler kolaylıkla bulabilsinler diye talep ediyoruz.

Yoksa birçok üye aşağıdaki şekilde genel başlıklar kullanıyorlar; (Gözümüze çarpanları sürekli düzeltmek zorunda kalıyoruz...)

Kod revize (???)
Makro revize (???)
Makro konusunda yardım (???)
Formül konusunda yardım (???)


Özellikle aşağıdaki ifadelerin kullanılmamasını hatırlatmak isterim. Sizler konu başlığınızı uygun şekilde tercih ettiğinizde zaten forumun ana penceresinde görünüyor. Konuya ilgi duyan üyelerimizde soruları cevaplıyorlar.

Acil (???)
Destek (???)
Yardım (???)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,548
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Daha önce benzer sorular için hazırladığımız örnekleri inceleyiniz.

 
Üst