makro da farklı kaydetme işlemi ile dosya adı değiştirme

Katılım
4 Mayıs 2007
Mesajlar
234
Excel Vers. ve Dili
office 2007 64 bit
office 2010 64 bit
Altın Üyelik Bitiş Tarihi
14-09-2023
excel de hazırlamış olduğum listeyi günlük olarak bilgisayarıma yedek olarak alma işlemini yapacak bi makro yapılabilirmi? eger böyle bir işlem yapılabiliyorsa makro ile bilgisayara yedekleme yaparken seçmiş oldugum bir folder in içine yapmış olduğum listenin ismine o günün tarihi neyse bir önceki günün tarihini atmasını istiyorum makroda böyle bişey yapabilirmiyiz?
örnegin bugün 17.05.2007 dosyanın ismi ise 16.05.2007 olmasını istiyorum.
 
Katılım
25 Ekim 2006
Mesajlar
76
Excel Vers. ve Dili
Office2003 Tr
Aşağıda benim kullandığım kod var. Dosyaya tarih ve saat adı vererek kaydediyor. Dosya yolunu kendinize göre ayarlayabilirsiniz fakat klasörü bir defaya mahsus elle oluşturacaksınız. Yani diyelim yolunuz "D:\cari yedek\....." D: altında cari yedek adlı bir klasör oluşturun. Bu arada kodlarda da göreceğiniz üzere yedek dosyanın şifresi "123" tür.

Kod:
Sub Auto_close()
MsgBox "PROGRAM KAPATILIYOR"
ActiveWorkbook.Save
On Error Resume Next
org = ThisWorkbook.FullName
tarih = Format(Now - 1, "dd_mm_yyyy_hh_mm")
Application.DisplayAlerts = False
Application.StatusBar = "Dosyalar Siliniyor !!!..."
Kill ("d:\Cari yedek\Cari_*.xls")
Application.StatusBar = "Bu uygulama d:\Cari yedek\Cari_" & tarih + ".xls olarak farklı kaydediliyor..."
ActiveWorkbook.SaveAs Filename:="d:\Cari yedek\Cari_" & tarih, FileFormat:=xlNormal, Password:="123", WriteResPassword:="123", ReadOnlyRecommended:=False
Application.StatusBar = False
Application.DisplayAlerts = False
Workbooks.Open(Filename:=org).RunAutoMacros Which:=xlAutoDeactivate
Windows("Cari_" & tarih + ".xls").Close False
End Sub
 
Katılım
4 Mayıs 2007
Mesajlar
234
Excel Vers. ve Dili
office 2007 64 bit
office 2010 64 bit
Altın Üyelik Bitiş Tarihi
14-09-2023
sayin Aktolgali çok teşekür ediyorum mükemmel oldu lakin bi sorum daha olacak size yardımcı olabilirseniz mükemmelin mükemmelü olacak :)
mesela bu gün 17 si program çalıştıgında 16 sını kaydediyor
18 i oldugunda tekrar kaydederken 17 sini 16 sının üzerine kaydediyor benim istedigim üzerine kaydetmemesi farkı şekilde kaydetmesi yani 16 17 18 19 20 si gibi yani..
eğer olursa kodu eklermisiniz..
yardımlarınız için çok teşekür ediyorum...
 
Katılım
25 Ekim 2006
Mesajlar
76
Excel Vers. ve Dili
Office2003 Tr
Biraz geç oldu ama, özür dileyerek belki başkasınında ihtiyacı olur diye cevaplayayım.

Kodların içinden aşağıdaki satırları silin yeterli...

Kod:
Application.StatusBar = "Dosyalar Siliniyor !!!..."
Kill ("d:\Cari yedek\Cari_*.xls")
 
Son düzenleme:
Katılım
29 Mart 2005
Mesajlar
5
Arkadaşlar size iki excel dosyasının adresini veriyorum. Biri bir klasör içindeki tüm alt klasörlerdekiler de dahil tüm dosyaların isimlerini değiştirmek için ki hızlı çalışır, diğeri de sadece resim dosyalarını görüp yeniden adlandırmanız içindir. Ben ve tanıdıklarım çok faydalandı, özellikle resim dosyalarının isimlerini değiştirmek için bir nimet sayılır.
Ayrıca iki ayrı klasörün içindeki dosyaların aynı mı farklı mı değişmiş mi olduğunu anlamak için bir dosya daha ekledim.
İlaveten kısa linkli rapidshare gibi sitelerin uzun link adlarını göstermek için de bir dosya ekledim, bu özellikle cryptoload gibi programlar için çok kolaylaştırıcı.
Bir ilave daha; bir klasör içindeki dosyaları, başka bir klasöre, asıl kaynaktan silerek, ister aynı isimle ister başka isimle kopyalamak için bir dosya ekledim.
Bir de iç içe oluşturulmuş klasörlerde belli bir düzen olsun diye tüm alt klasörlerin bir defada kolayca isimlerinin değiştirilmesini sağlayacak bir dosya ekledim.
http://rapidshare.com/files/285346061/DOSYA_ADI_DEGISTIR_Resimler_Icin.xls
http://rapidshare.com/files/285346144/DOSYA_ADI_DEGISTIR_Tum_Dosyalar.xls
http://rapidshare.com/files/285346818/IKI_AYRI_KLASORUN_DOSYALARINI_KARSILASTIR.xls
http://rapidshare.com/files/285346989/KISA_LINKLERIN_UZUN_HALINI_BULMA.xls
http://rapidshare.com/files/285354370/DOSYA_KOPYALAMA_VE_SILME.xls
http://rapidshare.com/files/285355369/KLASOR_ADI_DEGISTIR.xls
 
Son düzenleme:
Katılım
1 Temmuz 2008
Mesajlar
2
Excel Vers. ve Dili
EXCEL 2007 TR
excell dosyasında sayfa 1 deki N7 hücresini dosyaya isim olarak kaydetme

daha yeni yeni makrolar ile uğraşmaya başladım.

bir dosyada ve bu dosyanın bir sayfasındaki bir hücredeki veriyi o dosyaya isim olarak atayıp farklı kaydetmesini istiyorum.

yardımcı olabilirseniz sevinirim.
 

CANEReis

Altın Üye
Katılım
20 Aralık 2011
Mesajlar
4
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2007
Excel Vers. ve Dili Ofis 2016 TR 64 Bit
Excel Vers. ve Dili Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
17-10-2028
excell dosyasında sayfa 1 deki N7 hücresini dosyaya isim olarak kaydetme

daha yeni yeni makrolar ile uğraşmaya başladım.

bir dosyada ve bu dosyanın bir sayfasındaki bir hücredeki veriyi o dosyaya isim olarak atayıp farklı kaydetmesini istiyorum.

yardımcı olabilirseniz sevinirim.

Evet aynı konuyu araştırıyorum, yardımcı olabilecek var mı acaba, hatta ben iki veya daha fazla hücrede ki verileri birleştirip dosya adı olarak vermesini istiyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
En basit haliyle aşağıdaki gibi olabilir..

C++:
Option Explicit

Sub SaveAs_File()
    Dim File_Name As String, File_Format As Byte
    
    File_Name = Sheets("Sheet1").Range("A1") & " " & Sheets("Sheet1").Range("A2") & ".xlsx"
    File_Format = 51
    
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=File_Name, FileFormat:=File_Format, Local:=True
    Application.DisplayAlerts = True
End Sub
 

CANEReis

Altın Üye
Katılım
20 Aralık 2011
Mesajlar
4
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2007
Excel Vers. ve Dili Ofis 2016 TR 64 Bit
Excel Vers. ve Dili Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
17-10-2028
En basit haliyle aşağıdaki gibi olabilir..

C++:
Option Explicit

Sub SaveAs_File()
    Dim File_Name As String, File_Format As Byte

    File_Name = Sheets("Sheet1").Range("A1") & " " & Sheets("Sheet1").Range("A2") & ".xlsx"
    File_Format = 51

    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=File_Name, FileFormat:=File_Format, Local:=True
    Application.DisplayAlerts = True
End Sub

Hocam teşekkürler. Verdiğiniz kodu aşağıda ki gibi düzenledim. Dosyayı kaydediyor. Ancak bunu "C:\DEVRİYE TAKİP ÇİZELGELERİ" klasörü içerisine, "GÜNLÜK DEV.FAAL." sayfasında ki P2 hücresinde bulunan tarihin yıl kısmını alıp bir klasör oluşturacak, sonra bu oluşturduğu klasörün içinde yine "GÜNLÜK DEV.FAAL." sayfasında ki P2 hücresinde bulunan tarihin ay kısmını alıp bir klasör daha oluşturarak içerisine kaydecek şekilde nasıl yapabilirim

C++:
Private Sub CommandButton6_Click()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim File_Name As String, File_Format As Byte

Set Dosya = CreateObject("Scripting.FileSystemObject")
yol = "C:\DEVRİYE TAKİP ÇİZELGELERİ"
If Not Dosya.FolderExists(yol) Then
        Dosya.CreateFolder (yol)
End If
    File_Name = yol & "\" & Sheets("GÜNLÜK DEV.FAAL.").Range("P2") & " TARİHLİ " & Sheets("GÜNLÜK DEV.FAAL.").Range("B5") & " DEVRİYE TAKİP ÇİZELGESİ" & ".xlsm"
    File_Format = 52
        If Not Dosya.FileExists(File_Name) Then
            ActiveWorkbook.SaveCopyAs File_Name
        Else
        Response = MsgBox("!!! BU DOSYA ZATEN VAR !!! ÜSTÜNE YAZILMASINI İSTİYORSANIZ EVET'e TIKLAYIN", vbYesNo)
        If Response = vbYes Then
            ActiveWorkbook.SaveCopyAs File_Name
        End If
        End If
   
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
   
End Sub
 
Son düzenleme:

CANEReis

Altın Üye
Katılım
20 Aralık 2011
Mesajlar
4
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2007
Excel Vers. ve Dili Ofis 2016 TR 64 Bit
Excel Vers. ve Dili Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
17-10-2028
Aşağıda ki duruma kadar getirdim, klasörleri açıyor, ama dosyayı oluşturmuyor. Bir önceki mesajımda belirttiğim üzere C:\DEVRİYE TAKİP ÇİZELGELERİ klasörünün içerisine dosyayı oluşturuyordu, nerede hata yapıyorum?

Kod:
Private Sub CommandButton6_Click()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim File_Name As String, File_Format As Byte

Set Dosya = CreateObject("Scripting.FileSystemObject")
yol = "C:\DEVRİYE TAKİP ÇİZELGELERİ"
yılyol = "C:\DEVRİYE TAKİP ÇİZELGELERİ\" & Year(Sheets("GÜNLÜK DEV.FAAL.").Range("P2"))
ayyol = "C:\DEVRİYE TAKİP ÇİZELGELERİ\" & Year(Sheets("GÜNLÜK DEV.FAAL.").Range("P2")) & "\" & MonthName(Month(Sheets("GÜNLÜK DEV.FAAL.").Range("P2")))
If Not Dosya.FolderExists(yol) Then
        Dosya.CreateFolder (yol)
End If
If Not Dosya.FolderExists(yılyol) Then
        Dosya.CreateFolder (yılyol)
End If
If Not Dosya.FolderExists(ayyol) Then
        Dosya.CreateFolder (ayyol)
End If
 File_Name = yol & "\" & yılyol & "\" & ayyol & "\" & Sheets("GÜNLÜK DEV.FAAL.").Range("P2") & " TARİHLİ " & Sheets("GÜNLÜK DEV.FAAL.").Range("B5") & " DEVRİYE TAKİP ÇİZELGESİ" & ".xlsm"
    File_Format = 52
        If Not Dosya.FileExists(File_Name) Then
            'Application.DisplayAlerts = False
            ActiveWorkbook.SaveCopyAs File_Name
        Else
        Response = MsgBox("!!! BU DOSYA ZATEN VAR !!! ÜSTÜNE YAZILMASINI İSTİYORSANIZ EVET'e TIKLAYIN", vbYesNo)
        If Response = vbYes Then
            ActiveWorkbook.SaveCopyAs File_Name
        End If
        End If
    
    'ActiveWorkbook.SaveAs Filename:=File_Name, FileFormat:=File_Format, Local:=True
    'Application.DisplayAlerts = True
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kodu F8 tuşu ile adım adım çalıştırıp değerleri kontrol edebilirsiniz.
 

CANEReis

Altın Üye
Katılım
20 Aralık 2011
Mesajlar
4
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2007
Excel Vers. ve Dili Ofis 2016 TR 64 Bit
Excel Vers. ve Dili Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
17-10-2028
Çalışan Kod, ihtiyacı olan arkadaşlar kullanabilir.
"P2" hücresi tarihin yazılı olduğu hücreyi,
"B5" hücresi tarihe eklenecek metnin olduğu hücreyi,
"GÜNLÜK DEV.FAAL." P2 ve B5 hücrelerinin olduğu sayfa adını,
"DEVRİYE TAKİP ÇİZELGELERİ" C sürücüsüne oluşturulacak ana klasörü
ifade etmektedir.
Çalışmakta olduğumuz excel kitabını, farklı kaydet butonu ekleyerek, C sürücüsü içerisinde ismini verdiğimiz ana klasör altında, Yıl klasörü altına da Ay klasörü açtıktan sonra, tarihi ile birlikte isim vererek makro içerebilir (.xlsm) excel dosyası olarak kaydetmeye yarar.


Kod:
Private Sub CommandButton6_Click()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim File_Name As String, File_Format As Byte

Set Dosya = CreateObject("Scripting.FileSystemObject")
yol = "C:\DEVRİYE TAKİP ÇİZELGELERİ"
yılyol = "C:\DEVRİYE TAKİP ÇİZELGELERİ\" & Year(Sheets("GÜNLÜK DEV.FAAL.").Range("P2"))
ayyol = "C:\DEVRİYE TAKİP ÇİZELGELERİ\" & Year(Sheets("GÜNLÜK DEV.FAAL.").Range("P2")) & "\" & MonthName(Month(Sheets("GÜNLÜK DEV.FAAL.").Range("P2")))
If Not Dosya.FolderExists(yol) Then
        Dosya.CreateFolder (yol)
End If
If Not Dosya.FolderExists(yılyol) Then
        Dosya.CreateFolder (yılyol)
End If
If Not Dosya.FolderExists(ayyol) Then
        Dosya.CreateFolder (ayyol)
End If
 File_Name = ayyol & "\" & Sheets("GÜNLÜK DEV.FAAL.").Range("P2") & " TARİHLİ " & Sheets("GÜNLÜK DEV.FAAL.").Range("B5") & " DEVRİYE TAKİP ÇİZELGESİ" & ".xlsm"
    File_Format = 52
        If Not Dosya.FileExists(File_Name) Then
            'Application.DisplayAlerts = False
            ActiveWorkbook.SaveCopyAs File_Name
        Else
        Response = MsgBox("!!! BU DOSYA ZATEN VAR !!! ÜSTÜNE YAZILMASINI İSTİYORSANIZ EVET'e TIKLAYIN", vbYesNo)
        If Response = vbYes Then
            ActiveWorkbook.SaveCopyAs File_Name
        End If
        End If
    
    'ActiveWorkbook.SaveAs Filename:=File_Name, FileFormat:=File_Format, Local:=True
    'Application.DisplayAlerts = True
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
End Sub
 
Üst