Pdf Dosyasını makro ile açıp farklı kaydetmek.

Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Merhabalar , acaba indirilen bir pdf dosyasını makro ileı açtırıp a1 hücresindeki yeni değer ile yeni isim vererek farklı kaydetme ve eski dosyayı silmek mümkün müdür, mümkün ise kodları konusunda yardımcı olur musunuz.
ilginiz için şimdiden teşekkür ederim.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Dosyayı açmaya gerek var mı?
Linkteki çalışmayı inceleyiniz.

Pdf dosyasının bulunduğu klasör ile farklı kaydedilecek klasör aynı klasör olduğu varsayılmıştır.
Eğer pdf dosyanızın bulunduğu klasör ile farklı kayıt edilecek klasör farklı klasörler ise yollarını yazın, kodu güncelleyim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Eski dosyanın adını değiştirince silmeye gerek kalmayacak.
A1 de aradığınız dosya ismi
B1 de istediğiniz yeni dosya ismi
Aradığınız dosya Excelinizle aynı klasör altında
Eğer değilse kodda ilgili yeri değiştirmelisiniz.

Boş bir Module içine yerleşltirip çalıştırabilirisniz.
C++:
Sub Test()
Dim OldName As String, NewName As String
Dim Yol As String
    Yol = ThisWorkbook.Path ' Klasör farklı bir yerdeyse burayı değiştirmelisiniz
    OldName = Dir(Yol & "\" & [A1].Value & "*.pdf") ' eski isimli dosyayı buluyoruz
    NewName = [B1] & ".pdf" ' dosyaya verilecek yeni isim uzantısıyla beraber oluşturuluyor
    Name OldName As NewName 'İsim değiştiriliyor
End Su
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Eski dosyanın adını değiştirince silmeye gerek kalmayacak.
A1 de aradığınız dosya ismi
B1 de istediğiniz yeni dosya ismi
Aradığınız dosya Excelinizle aynı klasör altında
Eğer değilse kodda ilgili yeri değiştirmelisiniz.

Boş bir Module içine yerleşltirip çalıştırabilirisniz.
C++:
Sub Test()
Dim OldName As String, NewName As String
Dim Yol As String
    Yol = ThisWorkbook.Path ' Klasör farklı bir yerdeyse burayı değiştirmelisiniz
    OldName = Dir(Yol & "\" & [A1].Value & "*.pdf") ' eski isimli dosyayı buluyoruz
    NewName = [B1] & ".pdf" ' dosyaya verilecek yeni isim uzantısıyla beraber oluşturuluyor
    Name OldName As NewName 'İsim değiştiriliyor
End Sub
ilginiz için teşekkür ederim bu kodlar tamda işimi gördü.
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Dosyayı açmaya gerek var mı?
Linkteki çalışmayı inceleyiniz.

Pdf dosyasının bulunduğu klasör ile farklı kaydedilecek klasör aynı klasör olduğu varsayılmıştır.
Eğer pdf dosyanızın bulunduğu klasör ile farklı kayıt edilecek klasör farklı klasörler ise yollarını yazın, kodu güncelleyim.
bu dosyayı arişivime ekledim ilginiz için teşekkür ederim.
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
ilginiz için teşekkür ederim bu kodlar tamda işimi gördü.
Afınıza sığınarak bir şey daha sormak istiyorum, ben bu formülü döngü içinde kullanacağım için her defasında aynı pdf in adını değiştirmemesi adına adı değişen pdf i yeni bir klasöre atabilir miyiz?
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Eski dosyanın adını değiştirince silmeye gerek kalmayacak.
A1 de aradığınız dosya ismi
B1 de istediğiniz yeni dosya ismi
Aradığınız dosya Excelinizle aynı klasör altında
Eğer değilse kodda ilgili yeri değiştirmelisiniz.

Boş bir Module içine yerleşltirip çalıştırabilirisniz.
C++:
Sub Test()
Dim OldName As String, NewName As String
Dim Yol As String
    Yol = ThisWorkbook.Path ' Klasör farklı bir yerdeyse burayı değiştirmelisiniz
    OldName = Dir(Yol & "\" & [A1].Value & "*.pdf") ' eski isimli dosyayı buluyoruz
    NewName = [B1] & ".pdf" ' dosyaya verilecek yeni isim uzantısıyla beraber oluşturuluyor
    Name OldName As NewName 'İsim değiştiriliyor
End Su
Afınıza sığınarak bir şey daha sormak istiyorum, ben bu formülü döngü içinde kullanacağım için her defasında aynı pdf in adını değiştirmemesi adına adı değişen pdf i yeni bir klasöre atabilir miyiz?
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Eski dosyanın adını değiştirince silmeye gerek kalmayacak.
A1 de aradığınız dosya ismi
B1 de istediğiniz yeni dosya ismi
Aradığınız dosya Excelinizle aynı klasör altında
Eğer değilse kodda ilgili yeri değiştirmelisiniz.

Boş bir Module içine yerleşltirip çalıştırabilirisniz.
C++:
Sub Test()
Dim OldName As String, NewName As String
Dim Yol As String
    Yol = ThisWorkbook.Path ' Klasör farklı bir yerdeyse burayı değiştirmelisiniz
    OldName = Dir(Yol & "\" & [A1].Value & "*.pdf") ' eski isimli dosyayı buluyoruz
    NewName = [B1] & ".pdf" ' dosyaya verilecek yeni isim uzantısıyla beraber oluşturuluyor
    Name OldName As NewName 'İsim değiştiriliyor
End Su
bu iki hatayı aldım ilk denediğimde sorun yoktu aslında nedeni ne olabilir acaba?
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Kodları aynen kullanıp o hatalarıo alıyorsanız öyle bir dosya o klasörde yoktur.

Yapmak istediğinizi biraz daha net anlatır mısınız?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sorumu biraz da açayım.

Döngüden kastınız nedir?
1. Aynı klasörde birden fazla pdf var ve bunların hepsinin adını Exceldeki tek bir hücreden mi verceksiniz?
2. Aynı klasörde birden fazla pdf var ve bunların hepsinin adını Exceldeki birden fazla olan bir aralıktan mı vereceksiniz?
3. Aynı klasörde birden fazla pdf var ve bunların adını exceldeki örneğin A2:A10 aralığında aratıp var olanın ismini B2:B10 aralığına göre mi değişeceksiniz?
4. Yoksa klasörde tek bir pdf var ve ismini exceldeki bir aralıktan alarak kopyalarını oluşturup farklı klasöre mi atacaksınız?


Dosyaları taşıyacağınız klasör nedir?
1. Klasörün adı ve yolu sabit midir?
2. Klasörün adı excel dosyasında bir hücredemidir?
3. Klasör yok ve kodlar çalışınca klasör oluşturulacak mıdır?

Gördüğünüz üzere sorular giderek artıyor. Bu sebeple sorunuzu net ifadelerle anlatmanız işlerimizi kolaylaştıracaktır.
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Sorumu biraz da açayım.

Döngüden kastınız nedir?
1. Aynı klasörde birden fazla pdf var ve bunların hepsinin adını Exceldeki tek bir hücreden mi verceksiniz?
2. Aynı klasörde birden fazla pdf var ve bunların hepsinin adını Exceldeki birden fazla olan bir aralıktan mı vereceksiniz?
3. Aynı klasörde birden fazla pdf var ve bunların adını exceldeki örneğin A2:A10 aralığında aratıp var olanın ismini B2:B10 aralığına göre mi değişeceksiniz?
4. Yoksa klasörde tek bir pdf var ve ismini exceldeki bir aralıktan alarak kopyalarını oluşturup farklı klasöre mi atacaksınız?


Dosyaları taşıyacağınız klasör nedir?
1. Klasörün adı ve yolu sabit midir?
2. Klasörün adı excel dosyasında bir hücredemidir?
3. Klasör yok ve kodlar çalışınca klasör oluşturulacak mıdır?

Gördüğünüz üzere sorular giderek artıyor. Bu sebeple sorunuzu net ifadelerle anlatmanız işlerimizi kolaylaştıracaktır.
Döngüden kastım
Selenium kütüphanesi ile birleştirilmiş bir for next döngüsüdür döngü sonunda yapılan her işlemde 1 pdf dosyası indirilecek ve döngü yeni işleme geçmeden pdf dosya adı değiştirilip döngünün başında klasör oluşturma komutu ile bugünün tarihi verilmiş klasör içine atılacaktır.
Döngü sonucu aynı klasörde 1 pdf olacak ve adı değiştirildikten sonra bugün tarihli klasöre atılacak yani download klasöründe döngü başında hiç pdf dosyası olmayacak.
1-hayır
2-hayır
3-hayır
4- evet
Dosyaların taşınacağı klasör hakkında,
Dosyaların indirileceği klasör sabit adları değiştikten sonra atılacakları klasör tarih ile aynı klasör olacaktır.
1-hayır
2-evet
3-klasör döngü başında bugünün tarihi ile oluşturulmuştur makrosu yazılmıştır.

sorularınıza eksiksiz cevap verdiğimi umuyor ilgi ve alakanıza çok teşekkür ediyorum . saygılarımla...
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Kodları aynen kullanıp o hatalarıo alıyorsanız öyle bir dosya o klasörde yoktur.

Yapmak istediğinizi biraz daha net anlatır mısınız?
resimde komutların altında expression bölümünde dosyaları buluyor adları değer olarak alıyor lakin kayıt edeceği dosyayı bulamadığını söylüyor.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
O kodlar yerine aşağıdaki kodları kullanıp denermisin.
İndirme kodlarınızı, belirttiğim üst kısma ilave edin. Ya da benim verdiğimi mevcut kodlarınızın altına ekleyin.
İsmi değişecek olan pdf dosyanızın adını kodda belirttiğim yere girin.
Yeni dosyanın adı excel sayfasındaki A1 hücresinden gelecektir.
Bügün tarihli isme sahip Klasörün bulunacağı yolu da kodlara değişken olarak atadım. kendinize uyarlarsınız

C++:
Sub DosyaNameAndMove()

Rem sizin kodlarınız
Rem ................
Rem .................

'Buradan itibaren yeni kodları ilave edebilirsiniz

Dim xFilePath As String, xFolderPath As String
Dim xFSObje As Object, xFolder As Object
Dim xFile As Object, xDosyaTipi As String
Dim xFolderOldName As String, xFolderNewName As String
Dim OldName As String, NewName

    xFolderPath = ThisWorkbook.Path
    xFolderName = Format(Date, "yyyymmdd")
    xFileOldName = "deneme.pdf"
    NewName = [A1] & ".pdf"
    Set xFSObje = CreateObject("Scripting.Filesystemobject")
    Set xFolder = xFSObje.getfolder(xFolderPath)

    Rem indirdiğiniz dosyanın olduğu yolu girin
    Rem eğer excel dosyanızla aynı klasörde ise aşağıdaki gibi girebilirsiniz.
    xFilePath = ThisWorkbook.Path

    For Each xFile In xFolder.Files
        If xFile.Name = xFileOldName Then
            If xFSObje.folderexists(xFolderPath & "\" & xFolderName) = False Then
                xFSObje.createfolder (xFolderPath & "\" & xFolderName)
            End If
            xFSObje.movefile xFile.Path, xFolderPath & "\" & xFolderName & "\" & NewName
            Exit For
        End If
    Next
    Set xFSObje = Nothing: Set xFolder = Nothing: Set xFile = Nothing
    xFilePath = vbNullString: xDosyaTipi = vbNullString
End Sub
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
O kodlar yerine aşağıdaki kodları kullanıp denermisin.
İndirme kodlarınızı, belirttiğim üst kısma ilave edin. Ya da benim verdiğimi mevcut kodlarınızın altına ekleyin.
İsmi değişecek olan pdf dosyanızın adını kodda belirttiğim yere girin.
Yeni dosyanın adı excel sayfasındaki A1 hücresinden gelecektir.
Bügün tarihli isme sahip Klasörün bulunacağı yolu da kodlara değişken olarak atadım. kendinize uyarlarsınız

C++:
Sub DosyaNameAndMove()

Rem sizin kodlarınız
Rem ................
Rem .................

'Buradan itibaren yeni kodları ilave edebilirsiniz

Dim xFilePath As String, xFolderPath As String
Dim xFSObje As Object, xFolder As Object
Dim xFile As Object, xDosyaTipi As String
Dim xFolderOldName As String, xFolderNewName As String
Dim OldName As String, NewName

    xFolderPath = ThisWorkbook.Path
    xFolderName = Format(Date, "yyyymmdd")
    xFileOldName = "deneme.pdf"
    NewName = [A1] & ".pdf"
    Set xFSObje = CreateObject("Scripting.Filesystemobject")
    Set xFolder = xFSObje.getfolder(xFolderPath)

    Rem indirdiğiniz dosyanın olduğu yolu girin
    Rem eğer excel dosyanızla aynı klasörde ise aşağıdaki gibi girebilirsiniz.
    xFilePath = ThisWorkbook.Path

    For Each xFile In xFolder.Files
        If xFile.Name = xFileOldName Then
            If xFSObje.folderexists(xFolderPath & "\" & xFolderName) = False Then
                xFSObje.createfolder (xFolderPath & "\" & xFolderName)
            End If
            xFSObje.movefile xFile.Path, xFolderPath & "\" & xFolderName & "\" & NewName
            Exit For
        End If
    Next
    Set xFSObje = Nothing: Set xFolder = Nothing: Set xFile = Nothing
    xFilePath = vbNullString: xDosyaTipi = vbNullString
End Sub
Ömer bey ilginiz için teşekkür ederim ilk paylaştığınız kod ile ilgili hataları çözüp kendi makrom içinde call komutu ile çağırarak kullanmayı deneyeceğim her şey için teşekkür ederim , saygılarımla...
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
İkinci verdiğim kodu Call ile çağırıp kullanıyorsanız, başta
xFileOldName değişkenini Public yada Global hale getirip kendi kodlarınızda oluşturduğunuz pdf adını bu değişkene atamalısınız.

Benim verdiğm kodlarda değişkenleri zaten .ok karıştırmışım ve xFileOldName için tanım bile yapmamışım.
Sadece aşağıdaki satırı silin ya da pasif yapın. Ben zaten kendim kodları denerken klasörde böyle bir pdf oluşturmuştum. Artık gerek yok.
xFileOldName = "deneme.pdf"
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Eski dosyanın adını değiştirince silmeye gerek kalmayacak.
A1 de aradığınız dosya ismi
B1 de istediğiniz yeni dosya ismi
Aradığınız dosya Excelinizle aynı klasör altında
Eğer değilse kodda ilgili yeri değiştirmelisiniz.

Boş bir Module içine yerleşltirip çalıştırabilirisniz.
C++:
Sub Test()
Dim OldName As String, NewName As String
Dim Yol As String
    Yol = ThisWorkbook.Path ' Klasör farklı bir yerdeyse burayı değiştirmelisiniz
    OldName = Dir(Yol & "\" & [A1].Value & "*.pdf") ' eski isimli dosyayı buluyoruz
    NewName = [B1] & ".pdf" ' dosyaya verilecek yeni isim uzantısıyla beraber oluşturuluyor
    Name OldName As NewName 'İsim değiştiriliyor
End Su
ilk kod derken bundan bahsetmiştim Ömer bey,
 
Katılım
15 Mart 2014
Mesajlar
20
Excel Vers. ve Dili
2010
türkçe
Altın Üyelik Bitiş Tarihi
11-09-2022
Kodları aynen kullanıp o hatalarıo alıyorsanız öyle bir dosya o klasörde yoktur.

Yapmak istediğinizi biraz daha net anlatır mısınız?
Merhabalar

Bende bir yardım rica etsem bu konuda acaba.
Ccc.pdf dosyam olsun. Aaaa klasöründe
Bu dosyayı çoğaltarak

Excelimde örneğin a sutunumdaki altalta yazılı olan.
Ha0001
Ha0002
Ha0003.....


Gibi listede yazılı olan isimlerde çoğaltmak istiyorum.

Şimdiden teşekkürler
 
Üst