hücre içindeki değeri kopyala ve save as ederken yeni dosya ismi olarak yapıştır

Katılım
23 Şubat 2024
Mesajlar
18
Excel Vers. ve Dili
2016 excel
Herkese merhaba.

Forumda baktım, benzer bir konu var ama varsa da aradığım sorunun çözümünü ben bulamadım.

Soru sormadan önce mutlaka foruma ve benzer sitelere bakıyorum, mükerrer bir konu işlenmesi diye....

Müsait arkadaşlardan yardım bekliyorum...

Mesela A1 hücresininin içindeki değeri seçmek, ve dosyayı save as ederken bu ismi yapıştırmak istiyorum.

Bunu yaptım ama hücre içeriği değiştiğinde de yine baştaki değeri alıyor.

Tam olarak açıklamak gerekirse; A1 hücresinde cem yazacağım, save as dediğimde dosyayı cem ismi ile masaüstündeki 2025 adlı bir klasöre kaydedecek.

Sonra A1 hücresinin değerini Ali yapacağım, bu sefer de dosyayı Ali ismi ile yine aynı klasöre kaydedecek.

Sonra değer Emrah olacak...Hakan' a kadar gidecek mesela.

Böylelikle elimdeki dosyaların ismi Cem, Ali, Emrah..... ve Hakan olacak.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
686
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Kod:
Sub SaveAsCemWithoutMacro()
    Dim dosyaAdi As String
    Dim masaustu As String
    Dim hedefKlasor As String
    Dim tamDosyaYolu As String
    Dim yeniDosya As Workbook

    dosyaAdi = Trim(Range("A1").Value)   
    If dosyaAdi = "" Then
        MsgBox "A1 hücresine bir dosya adı giriniz!", vbExclamation, "Uyarı"
        Exit Sub
    End If
   
    masaustu = Environ("USERPROFILE") & "\Desktop"   
    hedefKlasor = masaustu & "\2025"
   
    If Dir(hedefKlasor, vbDirectory) = "" Then
        MkDir hedefKlasor
    End If
   
    tamDosyaYolu = hedefKlasor & "\" & dosyaAdi & ".xlsx"   
    Set yeniDosya = Workbooks.Add
   
    ThisWorkbook.Sheets(1).Cells.Copy
    yeniDosya.Sheets(1).Cells.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
  
    yeniDosya.SaveAs Filename:=tamDosyaYolu, FileFormat:=xlOpenXMLWorkbook   
    yeniDosya.Close SaveChanges:=False
   
    MsgBox "Dosya başarıyla makrosuz kaydedildi: " & tamDosyaYolu, vbInformation, "Kayıt Tamamlandı"
End Sub
Bu makroyu sayfanın kod bölümüne yapıştırın sonra sayfa üzerine buton oluşturup makroyu buna bağlayınız.Sonra ;
A1 hücresine "cem" veya istediğiniz başka bir isim yazın.
Makroyu çalıştırın.
Dosya masaüstündeki "2025" klasörüne, "cem.xlsx" olarak kaydedilecektir.
Eğer "2025" klasörü yoksa, makro otomatik olarak oluşturacaktır.
 

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
168
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
Kod:
Sub SaveAsCemWithoutMacro()
    Dim dosyaAdi As String
    Dim masaustu As String
    Dim hedefKlasor As String
    Dim tamDosyaYolu As String
    Dim yeniDosya As Workbook

    dosyaAdi = Trim(Range("A1").Value)  
    If dosyaAdi = "" Then
        MsgBox "A1 hücresine bir dosya adı giriniz!", vbExclamation, "Uyarı"
        Exit Sub
    End If
  
    masaustu = Environ("USERPROFILE") & "\Desktop"  
    hedefKlasor = masaustu & "\2025"
  
    If Dir(hedefKlasor, vbDirectory) = "" Then
        MkDir hedefKlasor
    End If
  
    tamDosyaYolu = hedefKlasor & "\" & dosyaAdi & ".xlsx"  
    Set yeniDosya = Workbooks.Add
  
    ThisWorkbook.Sheets(1).Cells.Copy
    yeniDosya.Sheets(1).Cells.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
 
    yeniDosya.SaveAs Filename:=tamDosyaYolu, FileFormat:=xlOpenXMLWorkbook  
    yeniDosya.Close SaveChanges:=False
  
    MsgBox "Dosya başarıyla makrosuz kaydedildi: " & tamDosyaYolu, vbInformation, "Kayıt Tamamlandı"
End Sub
Bu makroyu sayfanın kod bölümüne yapıştırın sonra sayfa üzerine buton oluşturup makroyu buna bağlayınız.Sonra ;
A1 hücresine "cem" veya istediğiniz başka bir isim yazın.
Makroyu çalıştırın.
Dosya masaüstündeki "2025" klasörüne, "cem.xlsx" olarak kaydedilecektir.
Eğer "2025" klasörü yoksa, makro otomatik olarak oluşturacaktır.
hocam kodunuzda yeniDosya.SaveAs yerine yeniDosya.SaveCopyAs şeklinde yazılsa daha işlevsel. sizin SaveCopyAs ile dosyanın kopyasını istediği isimle oluşturur. Hali hazırda daha önce açtığı excel dosyası hala açık kalır. SaveAs te ise daha önce açtığı excel dosyası kapanır. yeni dosya açılmış olur. SaveCopyAs daha işlevsel @gravity80
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
686
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Sayın @volki_112

Evet, SaveCopyAs komutu, mevcut dosyanın belirlenen ad ve konumda bir kopyasını oluştururken, dosyayı açık bırakması açısından farklı bir işlev sunar. SaveAs ise dosyanın adını ve konumunu değiştirerek mevcut dosyayı yeni adla kaydedip kapatır.İki şekildede kullanılabilir.

Eğer mevcut çalışma dosyanızın ismini değiştirerek kaydetmek ve o dosya üzerinde çalışmaya devam etmek istiyorsanız,

SaveAs kullanmalısınız.

 

Eğer mevcut dosyanız açık kalsın ve sadece belirli bir yere kopyasını oluşturmak istiyorsanız,

SaveCopyAs daha işlevsel olacaktır.

 

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
168
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
Sayın @volki_112

Evet, SaveCopyAs komutu, mevcut dosyanın belirlenen ad ve konumda bir kopyasını oluştururken, dosyayı açık bırakması açısından farklı bir işlev sunar. SaveAs ise dosyanın adını ve konumunu değiştirerek mevcut dosyayı yeni adla kaydedip kapatır.İki şekildede kullanılabilir.

Eğer mevcut çalışma dosyanızın ismini değiştirerek kaydetmek ve o dosya üzerinde çalışmaya devam etmek istiyorsanız,

SaveAs kullanmalısınız.

 

Eğer mevcut dosyanız açık kalsın ve sadece belirli bir yere kopyasını oluşturmak istiyorsanız,

SaveCopyAs daha işlevsel olacaktır.

bende bunu anlatmaya çalışıyordum. Teşekkürler
 
Katılım
23 Şubat 2024
Mesajlar
18
Excel Vers. ve Dili
2016 excel
değerli arkadaşlarım.
Kıymetli yorum ve yardımınız için teşekkür ederim.
Muhasebeciyiz adlı üyenin kodu çalıştı, bir kaç ufak değişiklik de ben ilave ettim.
Paylaşımlarınız için tekrardan teşekkür ediyorum.
Saygılarımla.
 
Üst