sinotto
Altın Üye
- Katılım
- 21 Aralık 2021
- Mesajlar
- 5
- Excel Vers. ve Dili
- türkçe
- Altın Üyelik Bitiş Tarihi
- 30-01-2025
Merhaba,
Excel'in ilk sayfasını masaüstünde oluşturmuş olduğum klasörün içerisinde istemiş olduğum isimle kaydetmek istiyorum.
Aşağıda bulunan kod ile istediğim pdf yerine boş klasör kaydediyor. ( Seçmiş olduğum dosyaya klasör olarak kaydediyor. ) Pdf olarak kaydolması için sheet1'in, nasıl bir yol izlemem gerekiyor.
Desteğinizi rica ederim.
Option Explicit
Dim Klasör, Klasöryolu, Buldum, BilgiMesajı, wsÖRNEK As Variant
Dim ÖrnekDosya, YeniDosya, Dosyaxlsm, ad As Variant
Private Sub CommandButton1_Click()
Set Klasör = CreateObject("Scripting.fileSystemObject")
Klasöryolu = ThisWorkbook.Path & "\" & "2022_Masraflar"
Buldum = Klasör.folderexists(Klasöryolu)
If Buldum = True Then
BilgiMesajı = MsgBox("2022_Masraflar" & vbNewLine & "Adlı Klasör Mevcut", vbInformation, "Bilgi Mesajı")
Else
Klasör.createfolder Klasöryolu
BilgiMesajı = MsgBox("2022_Masraflar" & "Klasörü Açılmıştır", vbInformation, "Bilgi Mesajı")
End If
On Error Resume Next
ad = InputBox("Masraf Numarasını ve Firma İsmini giriniz. Örnek: KOZMATİN_00001.")
MkDir Klasöryolu & "\" & ad
BilgiMesajı = MsgBox(ad & " Klasörü Açılmıştır", vbInformation, "Bilgi Mesajı")
'------------------- DOSYA KOPYALAMA
Dim Klasör1 As String, Dosya As String
Dim Masraf_Dosyası As Workbook, Nesne As Object
ad = ThisWorkbook.Path & "\" & "2022_Masraflar" & "\" & ad
If Dir(ad, vbDirectory) = "" Then
MkDir (ad)
End If
Dosya = ad & "\" & Sheets("Masraf_Dosyası").Range("C8").Value & " " & Sheets("Masraf_Dosyası").Range("I8").Value & " " & Sheets("Masraf_Dosyası").Range("I9").Value & ".pdf"
If Dir(Dosya) = "" Then
Application.DisplayAlerts = False
Sheets("Masraf_Dosyası").Copy
Set Masraf_Dosyası = ActiveWorkbook
Masraf_Dosyası.Sheets(1).Name = Sheets("Masraf_Dosyası").Range("I9").Value & ".pdf"
For Each Nesne In ActiveSheet.OLEObjects
If Nesne.progID = "Forms.CommandButton.1" Then
Nesne.Delete
End If
Next
Masraf_Dosyası.SaveAs Dosya
Masraf_Dosyası.Close
MsgBox "Masraf kayıt edilmiştir.", vbInformation
Else
MsgBox "Bu masraf dosyası daha önce kayıt edilmiştir.", vbCritical
End If
End Sub
Excel'in ilk sayfasını masaüstünde oluşturmuş olduğum klasörün içerisinde istemiş olduğum isimle kaydetmek istiyorum.
Aşağıda bulunan kod ile istediğim pdf yerine boş klasör kaydediyor. ( Seçmiş olduğum dosyaya klasör olarak kaydediyor. ) Pdf olarak kaydolması için sheet1'in, nasıl bir yol izlemem gerekiyor.
Desteğinizi rica ederim.
Option Explicit
Dim Klasör, Klasöryolu, Buldum, BilgiMesajı, wsÖRNEK As Variant
Dim ÖrnekDosya, YeniDosya, Dosyaxlsm, ad As Variant
Private Sub CommandButton1_Click()
Set Klasör = CreateObject("Scripting.fileSystemObject")
Klasöryolu = ThisWorkbook.Path & "\" & "2022_Masraflar"
Buldum = Klasör.folderexists(Klasöryolu)
If Buldum = True Then
BilgiMesajı = MsgBox("2022_Masraflar" & vbNewLine & "Adlı Klasör Mevcut", vbInformation, "Bilgi Mesajı")
Else
Klasör.createfolder Klasöryolu
BilgiMesajı = MsgBox("2022_Masraflar" & "Klasörü Açılmıştır", vbInformation, "Bilgi Mesajı")
End If
On Error Resume Next
ad = InputBox("Masraf Numarasını ve Firma İsmini giriniz. Örnek: KOZMATİN_00001.")
MkDir Klasöryolu & "\" & ad
BilgiMesajı = MsgBox(ad & " Klasörü Açılmıştır", vbInformation, "Bilgi Mesajı")
'------------------- DOSYA KOPYALAMA
Dim Klasör1 As String, Dosya As String
Dim Masraf_Dosyası As Workbook, Nesne As Object
ad = ThisWorkbook.Path & "\" & "2022_Masraflar" & "\" & ad
If Dir(ad, vbDirectory) = "" Then
MkDir (ad)
End If
Dosya = ad & "\" & Sheets("Masraf_Dosyası").Range("C8").Value & " " & Sheets("Masraf_Dosyası").Range("I8").Value & " " & Sheets("Masraf_Dosyası").Range("I9").Value & ".pdf"
If Dir(Dosya) = "" Then
Application.DisplayAlerts = False
Sheets("Masraf_Dosyası").Copy
Set Masraf_Dosyası = ActiveWorkbook
Masraf_Dosyası.Sheets(1).Name = Sheets("Masraf_Dosyası").Range("I9").Value & ".pdf"
For Each Nesne In ActiveSheet.OLEObjects
If Nesne.progID = "Forms.CommandButton.1" Then
Nesne.Delete
End If
Next
Masraf_Dosyası.SaveAs Dosya
Masraf_Dosyası.Close
MsgBox "Masraf kayıt edilmiştir.", vbInformation
Else
MsgBox "Bu masraf dosyası daha önce kayıt edilmiştir.", vbCritical
End If
End Sub