Farklı Kaydederken Dosya İçindeki Seçili Hücreden İsim Verme

uzeyir.celikel

Altın Üye
Katılım
27 Aralık 2014
Mesajlar
33
Excel Vers. ve Dili
TR
Altın Üyelik Bitiş Tarihi
08-01-2025
Dosyanın tamamını farklı kaydederken, kayıt yerini soracak ve dosya içinde seçili hücrede yazan bilgileri dosya ismine vermek istiyorum.
Farklı makrolar buldum fakat bir türlü uyarlayamadım.
Yardımcı olabilirseniz çok sevinirim...
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Hata veren kodunuzu görebilir miyiz ya da dosyanızı?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Aşağıdaki haliyle o kodları kullanabilirsin.
C++:
Option Explicit

Sub Save_As_ActiveWorkbook()
    Dim Fso As Object, Target_File As Workbook, File_Folder As Object, File_Path As String, File_Name As String
 
    Set File_Folder = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin!", &H100)

    If File_Folder Is Nothing Then
        MsgBox "İşleme devam edebilmeniz için klasör seçmelisiniz!", vbCritical
        Exit Sub
    End If
 
    If File_Folder = "Desktop" Or File_Folder = "Masaüstü" Then
        File_Path = Environ("UserProfile") & "\" & File_Folder & "\"
    Else
        File_Path = File_Folder.Items.Item.Path & "\"
    End If
    File_Name = Sheets(ActiveSheet.Name).Cells(1, 1).Value & ".xlsx"
    Set Fso = VBA.CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Fso.CopyFile ThisWorkbook.FullName, File_Path & "Temp_File." & Fso.GetExtensionName(ThisWorkbook.Name), True
    Set Target_File = Workbooks.Open(File_Path & "Temp_File." & Fso.GetExtensionName(ThisWorkbook.Name), False, False)
    On Error Resume Next
    ActiveSheet.DrawingObjects.Delete
    Target_File.SaveAs File_Name, 51
    ActiveWorkbook.Close
    'Kill File_Path & "Temp_File." & Fso.GetExtensionName(ThisWorkbook.Name)
    On Error GoTo 0
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set Fso = Nothing
    MsgBox "Dosyanız aşağıdaki klasöre yedeklenmiştir." & vbCr & vbCr & _
           File_Name, vbInformation
End Sub
 

uzeyir.celikel

Altın Üye
Katılım
27 Aralık 2014
Mesajlar
33
Excel Vers. ve Dili
TR
Altın Üyelik Bitiş Tarihi
08-01-2025
Aşağıdaki haliyle o kodları kullanabilirsin.
C++:
Option Explicit

Sub Save_As_ActiveWorkbook()
    Dim Fso As Object, Target_File As Workbook, File_Folder As Object, File_Path As String, File_Name As String

    Set File_Folder = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin!", &H100)

    If File_Folder Is Nothing Then
        MsgBox "İşleme devam edebilmeniz için klasör seçmelisiniz!", vbCritical
        Exit Sub
    End If

    If File_Folder = "Desktop" Or File_Folder = "Masaüstü" Then
        File_Path = Environ("UserProfile") & "\" & File_Folder & "\"
    Else
        File_Path = File_Folder.Items.Item.Path & "\"
    End If
    File_Name = Sheets(ActiveSheet.Name).Cells(1, 1).Value & ".xlsx"
    Set Fso = VBA.CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Fso.CopyFile ThisWorkbook.FullName, File_Path & "Temp_File." & Fso.GetExtensionName(ThisWorkbook.Name), True
    Set Target_File = Workbooks.Open(File_Path & "Temp_File." & Fso.GetExtensionName(ThisWorkbook.Name), False, False)
    On Error Resume Next
    ActiveSheet.DrawingObjects.Delete
    Target_File.SaveAs File_Name, 51
    ActiveWorkbook.Close
    'Kill File_Path & "Temp_File." & Fso.GetExtensionName(ThisWorkbook.Name)
    On Error GoTo 0
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set Fso = Nothing
    MsgBox "Dosyanız aşağıdaki klasöre yedeklenmiştir." & vbCr & vbCr & _
           File_Name, vbInformation
End Sub
Dosya ismini almadı bu şekilde
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Bu kodlarınızı ben kendimde denedim ve başarılıydı.
Kodlarınızı f8 ile adımlayın.

Target_File.SaveAs File_Name, 5

Bu satıra geldiğinde (satır sarı olacak) File_Name değişkeni hangi değeri alıyor bakar mısınız? (Mouse ile File_Nam üzere gelebilir ya da Watch Window penceresine değişkeni ekleyip takip edebilirsiniz.
232525
 

uzeyir.celikel

Altın Üye
Katılım
27 Aralık 2014
Mesajlar
33
Excel Vers. ve Dili
TR
Altın Üyelik Bitiş Tarihi
08-01-2025
Bu kodlarınızı ben kendimde denedim ve başarılıydı.
Kodlarınızı f8 ile adımlayın.

Target_File.SaveAs File_Name, 5

Bu satıra geldiğinde (satır sarı olacak) File_Name değişkeni hangi değeri alıyor bakar mısınız? (Mouse ile File_Nam üzere gelebilir ya da Watch Window penceresine değişkeni ekleyip takip edebilirsiniz.
Ekli dosyayı görüntüle 232525
Temp_File ismi ile kaydediyor malesef
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
Option Explicit

Sub Save_As_ActiveWorkbook()
    Dim Fso As Object, Target_File As Workbook, File_Folder As Object, File_Path As String, File_Name As String
 
    Set File_Folder = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin!", &H100)

    If File_Folder Is Nothing Then
        MsgBox "İşleme devam edebilmeniz için klasör seçmelisiniz!", vbCritical
        Exit Sub
    End If
 
    If File_Folder = "Desktop" Or File_Folder = "Masaüstü" Then
        File_Path = Environ("UserProfile") & "\" & File_Folder & "\"
    Else
        File_Path = File_Folder.Items.Item.Path & "\"
    End If
    File_Name = Sheets(ActiveSheet.Name).Cells(1, 1).Value '& ".xlsx"
    Set Fso = VBA.CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Fso.CopyFile ThisWorkbook.FullName, File_Path & File_Name & "." & Fso.GetExtensionName(ThisWorkbook.Name), True
    Set Target_File = Workbooks.Open(File_Path & File_Name & "." & Fso.GetExtensionName(ThisWorkbook.Name), False, False)
    On Error Resume Next
    ActiveSheet.DrawingObjects.Delete
    Target_File.SaveAs File_Name, 51
    ActiveWorkbook.Close
    'Kill File_Path & "Temp_File." & Fso.GetExtensionName(ThisWorkbook.Name)
    On Error GoTo 0
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set Fso = Nothing
    MsgBox "Dosyanız aşağıdaki klasöre yedeklenmiştir." & vbCr & vbCr & _
           File_Name, vbInformation
End Sub
 

uzeyir.celikel

Altın Üye
Katılım
27 Aralık 2014
Mesajlar
33
Excel Vers. ve Dili
TR
Altın Üyelik Bitiş Tarihi
08-01-2025
C++:
Option Explicit

Sub Save_As_ActiveWorkbook()
    Dim Fso As Object, Target_File As Workbook, File_Folder As Object, File_Path As String, File_Name As String

    Set File_Folder = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin!", &H100)

    If File_Folder Is Nothing Then
        MsgBox "İşleme devam edebilmeniz için klasör seçmelisiniz!", vbCritical
        Exit Sub
    End If

    If File_Folder = "Desktop" Or File_Folder = "Masaüstü" Then
        File_Path = Environ("UserProfile") & "\" & File_Folder & "\"
    Else
        File_Path = File_Folder.Items.Item.Path & "\"
    End If
    File_Name = Sheets(ActiveSheet.Name).Cells(1, 1).Value '& ".xlsx"
    Set Fso = VBA.CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Fso.CopyFile ThisWorkbook.FullName, File_Path & File_Name & "." & Fso.GetExtensionName(ThisWorkbook.Name), True
    Set Target_File = Workbooks.Open(File_Path & File_Name & "." & Fso.GetExtensionName(ThisWorkbook.Name), False, False)
    On Error Resume Next
    ActiveSheet.DrawingObjects.Delete
    Target_File.SaveAs File_Name, 51
    ActiveWorkbook.Close
    'Kill File_Path & "Temp_File." & Fso.GetExtensionName(ThisWorkbook.Name)
    On Error GoTo 0
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set Fso = Nothing
    MsgBox "Dosyanız aşağıdaki klasöre yedeklenmiştir." & vbCr & vbCr & _
           File_Name, vbInformation
End Sub
Çok Teşekkür ederim ilginiz için güzel oldu...
 
Üst