Otomatik Link oluşturmak

Katılım
9 Ekim 2009
Mesajlar
60
Excel Vers. ve Dili
2007 türkçe
Arkadaşlar merhaba,
Yine size işim düştü.Benim excel dosyamda bir sütunda abc-xyz-14-0001'den başlayıp 2000'e kadar giden bir sıralamam var.Aynı klasörün içinde hem excel dosyam hem de hemde bu sıralara karşılık gelen giden yazılarımın pdf leri var.
Daha önceden el ile yapmıştım fakat linkler bozuldu hepsini tekrar yapmam gerekiyor.Aynı şekilde başka bir sutun içinde başka dosyadan link atmam gerekiyor.
Ne yapmalıyım ki bütün bu pdfleri hızlı bir şekilde linkleyeyim.
ve sonrasında örneğin klasörün içine 587 nolu dosyayı attığımda excel de otomatik link oluştursun.
Yardımcı olabilirseniz memnun olurum.
saygılarımla,
 
Katılım
9 Ekim 2009
Mesajlar
60
Excel Vers. ve Dili
2007 türkçe
Değerli ustalarım; bu konuda yok mu yardım edecek birisi?
En azından yönlendirme yaparsanız kendimde çalışabilirim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Module kopyalayıp çalıştırın. Ayrıca dosya her açılışta otomatik güncel dosya isimlerini listeler. Listelemeyi A sütununda yapar.

Kod:
Sub Liste()

    Dim d As Object, kls, sat As Long, dosya
    
    Set d = CreateObject("Scripting.Filesystemobject")
    Set kls = d.GetFolder(ThisWorkbook.Path)

    Range("A:A").Clear
    
    sat = 1
    For Each dosya In kls.Files
        Cells(sat, "A") = dosya.Name
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(sat, "A"), _
            Address:=Cells(sat, "A")
        sat = sat + 1
    Next

End Sub

Sub Auto_Open()
    Liste
End Sub
.
 
Katılım
9 Ekim 2009
Mesajlar
60
Excel Vers. ve Dili
2007 türkçe
Ömer bey ilginize çok çok teşekkür ederim.
Macrodan çok anlamamakla birlikte Yazdığınız kodu visual basic'e yapıştırdım.Linklerin gelmesini istediğim sütun p hücresi olduğu için A yazan yerlere P yazdım.
Excel listesindeki P sutunu tamamen silindi.Yazmam gereken dosya adını nereye yazmam gerekir.Çalışma diye bir klasörün içinde Linkini atmak istediğim giden yazı klasörü var içinde de pdf ler.Pdfler 1-2-3-4-5-6-.....diye gidiyor.Excel listesinde ise abc-xyz-14-001 şeklinde sıralanıyor yani listede 001 biten hücrenin linki klasörüde 1 yazan..Excel sayfasıda bu çalışma klasörünün içinde Excel sayfasının P sutununda giden yazı numaraları halihazırda yazıyor.(abc-xyz-14-001 şeklinde)Yine bu klasörün içinde giden dökümanlar adı altında bir tane daha klasörüm var.V sütununda 0698 dan başlayarak sıralanıyor. Giden klasörümde buna karşılık gelen pdfl er 698 ile başlıyor.Klasörde 698 ile başlıyor Excelde sadece 0698diye yazıyor ve bu sırayla sıralanıyor.
Birde yazdığınız kodda Giden yazı ve Giden dökümanlar isimlerini nereye yazacağımı belirtirseniz çok memnun olurum.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Dosyaların kodu çalıştırdığınız Excel ile aynı klasör içinde olduğunu söylememişmiydiniz. Ben bu şekilde düşünerek yazmıştım "ThisWorkbook.Path"

Set kls = d.GetFolder(ThisWorkbook.Path)

Kırmızı bölüme dosya yolunu yazabilirsiniz.

Örnek ... "C:\deneme" yazabilirsiniz.

.
 
Katılım
9 Ekim 2009
Mesajlar
60
Excel Vers. ve Dili
2007 türkçe
Run Time Error
Path Not Found diyor anlamadım.Sanırım ben beceremedim.
Evet bir klasörün içinde 2 tane daha klasör var ve excel sayfası var.
Sadece giden yazı klasöründekileri p sutununa linklesek oda yetecek bana.kodu aşağıdaki gibi yazmıştım.
Sub Liste()

Dim d As Object, kls, sat As Long, dosya

Set d = CreateObject("Scripting.Filesystemobject")
Set kls = d.GetFolder(C:\Documents and Settings\gokhan.yilmaz\Desktop\ÇALIŞMA\GİDEN YAZI)

Range("P:p").Clear

sat = 1
For Each dosya In kls.Files
Cells(sat, "P") = dosya.Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells(sat, "P"), _
Address:=Cells(sat, "P")
sat = sat + 1
Next

End Sub

Sub Auto_Open()
Liste
End Sub
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Dosya yolunu yazarken çift tırnak kullanmamışsınız.

Set kls = d.GetFolder("C:\Documents and Settings\gokhan.yilmaz\Desktop\ÇALIŞMA\GİDEN YAZI")

.
 
Katılım
9 Ekim 2009
Mesajlar
60
Excel Vers. ve Dili
2007 türkçe
Tırnakları ekledim bu sefer başka bir hata verdi.(the macros in this project are disabled) Bu şekilde engellenmiştir dedi.
Üstad senide yoruyourm hakkını helal et.iki dosya için değilde sadece tek dosya için deneyebilirmyiz.
 
Katılım
9 Ekim 2009
Mesajlar
60
Excel Vers. ve Dili
2007 türkçe
Üstad linkleri attı.Ancak hiçbiride çalışmıyor.Ve sıralamasıda 1-10-100-101-102-103 diye gidiyor yani önce 1 leri almış sonra 2 lere geçiyor.Ve V sutunuda sadece .pdf yazıyor.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Bu şekilde deneyin. Linkleri açması gerekir. Sıralama olayını kontrol etmedim. Sadece dosyaları alarak link verdim.

Kod:
Sub Liste()

    Dim d As Object, kls, sat As Long, dosya, yol As String
    
    yol = "C:\Documents and Settings\gokhan.yilmaz\Desktop\ÇALIŞMA\GİDEN YAZI"
    Set d = CreateObject("Scripting.Filesystemobject")
    Set kls = d.GetFolder(yol)

    Range("P:P").Clear
    
    sat = 1
    For Each dosya In kls.Files
        Cells(sat, "P") = dosya.Name
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(sat, "P"), _
            Address:=yol & "\" & Cells(sat, "P")
        sat = sat + 1
    Next

End Sub

Sub Auto_Open()
    Liste
End Sub
.
 
Üst