Farklı kaydet makrosu için yardım

Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
Arkadaşlar merhaba,

Günlük birtakım verilerin girildiği bir çalışma kitabım var.
gün sonunda rapor mail ile ilgili yerlere gönderiliyor.
sonrasında da farklı kaydet ile "D" içerisindeki "GÖNDERİLEN RAPORLAR" klasörü içindeki ilgili YIL, AY klasörüne o günün tarihinin adı verilerek arşivleniyor.

bunu bir butona atayacağım bir makro ile yapmak istiyorum.
günün tarihini çalışma sayfası üzerindeki ilgili hücreden alınabilir.

bu konuda bana yardımcı olabilecek bir arkadaş var mıdır acaba?
şimdiden teşekkürler.
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,371
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Örnek dosyanızı ekleme imkanınız var mı acaba ?
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,371
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Bunu da deneyebilirsiniz
Sub FARKLIKAYDET()
Application.ScreenUpdating = False
sheets("sayfa2").Copy
ActiveWorkbook.Application.Dialogs(xlDialogSaveAs).Show
ActiveWorkbook.Close False
Application.ScreenUpdating = True
MsgBox "ÇALIŞMA FARKLI KAYDEDİLMİŞTİR...."
End Sub
 
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
örnek çalışma ile ilgili bir durum yok aslında.
bilgisayarım "D" de "GÖNDERİLEN RAPORLAR" adında bir klasörüm var.
bu klasörün içinde de 2015, 2016 gibi yıl klasörleri var.
yıl klasörlerinin içinde de ay klasörleri mevcut.

farklı kaydet makrosunu çalıştırdığımda D içerisindeki uygun "yıl" ve onun içindeki uygun "AY" klasörünü bularak dosya ismini 03.01.2016 şeklinde o günün tarihi olacak şekilde kaydetmesini istiyorum. o günün tarihini çalışma kitabı içindeki "KAYIT" sayfasındaki "O1" hücresinden alabilir.
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,371
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Ayı otomatik olarak bulmayı bilemem ama aşağıdaki kodlar 2016 yılı dosyası içerisine kayıt yapacaktır.

Sub Farklı_Kaydet()

Application.ScreenUpdating = False
Sheets("KAYIT").Copy
ActiveWorkbook.SaveAs Filename:="D:\GÖNDERİLEN RAPORLAR\2016\" & Range("O1") & ".xls"
ActiveWindow.Close
Application.ScreenUpdating = True

End Sub
 
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
Mustafa bey birkaç değişiklik ile verdiğiniz kod işime yaradı.
çok teşekkür ederim. saygılar.
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,371
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Kolay gelsin. İyi çalışmalar....
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,371
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Bu arada sayenizde 1000. mesajı devirmişiz. Excel web ailesine teşekkürler...
 
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
Mustafa bey, aşağıdaki kod da dosya ismini "O1" hücresinden alıyor. bu gaybaşarılı.
acaba dosya kayıt yerini belirlerken "2016" yı "O2", "OCAK" yazan yeri de "O3" hücrelerinden almamız mümkün mü?


ActiveWorkbook.SaveAs Filename:="D:\GÖNDERİLEN RAPORLAR\2016\OCAK\" & Range("O1") & ".xls"
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,371
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Kodda bulunan ilgili bölümü aşağıdaki gibi değiştiriniz.

D:\GÖNDERİLEN RAPORLAR\2016\OCAK\" & Range("O1") & Range("O2") & Range("O3") & ".xls"

Kodda bulunan & Range("O2") kısmı üzerinde siz gerekli düzenlemeleri ekleme yada çıkarma olacak şekilde üzerinde yapınız
 
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
maalesef olmadı. kayıt ismi değişiyor. kayıt yeri değişmiyor.
 
Katılım
12 Aralık 2015
Mesajlar
1,227
Excel Vers. ve Dili
Türkçe Ofis 2007
Sayın mozakay
O1 Hücresine tarih formatında dosyaya verilecek tarihi girerseniz.
Kod:
ActiveWorkbook.SaveAs Filename:="D:\GÖNDERİLEN RAPORLAR\" & Year(Range("o1")) & "\" & MonthName(Month(Range("o1"))) & "\" & Format(Range("o1"), "dd.mm.yyyy") & ".xls"
 
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
Ali bey o şekilde denediğimde "GÖNDERİLEN RAPORLAR" klasörü içine 20016 yani yıl adı ile kayıt yapıyor. oya benim istediğim yıl ve ayı çalışma sayfası içindeki tarihten alarak ilgili klasör içine o günün tarihi adıyla kayıt yapması.
 
Katılım
12 Aralık 2015
Mesajlar
1,227
Excel Vers. ve Dili
Türkçe Ofis 2007
Zaten öyle yapıyor olması gerek, O1 hücresi tarih formatında ise ve O1 hücresinde 01.01.2016 yazıyorsa D>GÖNDERİLEN RAPORLAR>2016>Ocak klasörünün içine 01.01.2016.xls olarak kayıt eder. D>GÖNDERİLEN RAPORLAR klasörünün içine yapmaması gerek. Ben tekrar denedim.
 
Son düzenleme:
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
Mustafa bey, verdiğiniz kod çok işime yaradı. biraz sorun yaşadım. bazı klasörlere kayıt yapıp bazılarına yapmıyordu. klasör isimlerini küçük harfle yazarak sorunu çözdüm.

çok teşekkür ederim. ellerinize sağlık.
 
Katılım
12 Aralık 2015
Mesajlar
1,227
Excel Vers. ve Dili
Türkçe Ofis 2007
Farlı kaydetmek istediğiniz Sheet adını "rapor" diye değiştirip A! hücresine örneğin "01.01.2016" yazıp makroyu çalıştırırsanız. D sürücüsünde yoksa "GÖNDERİLEN RAPORLAR" diye bir klasör, onun içinde "2016" diye bir klasör ve onun içinde de "Ocak" klasörü oluşturuyor. Onun içinde de "01.01.2016.xls" doyasını kaydediyor.
Örnek Ekte
http://s6.dosya.tc/server5/mzdw25/a.zip.html
Kod:
Sub Makro5()

On Error Resume Next
Application.ScreenUpdating = False
  Application.DisplayAlerts = False
 Set Dosya = CreateObject("Scripting.FileSystemObject")
   yol = "D:\GÖNDERİLEN RAPORLAR"
yılyol = "D:\GÖNDERİLEN RAPORLAR\" & Year(Range("A1"))
 ayyol = "D:\GÖNDERİLEN RAPORLAR\" & Year(Range("A1")) & "\" & MonthName(Month(Range("A1")))
 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
  gelen = ayyol & "\" & Range("A1") & ".xls"
    If Not Dosya.FileExists(gelen) Then
 Sheets("rapor").Copy
 ActiveWorkbook.SaveAs gelen
 ActiveWorkbook.Close
    Else
     Response = MsgBox("Bu dosya var üstüne yazılmasını istiyorsanız 'Evet'e tıklayın", vbYesNo)
     If Response = vbYes Then
    Sheets("rapor").Copy
 ActiveWorkbook.SaveAs gelen
 ActiveWorkbook.Close
     End If
   End If
   Application.DisplayAlerts = True
   Application.ScreenUpdating = True
MsgBox "İşlem bitti"
End Sub
 
Son düzenleme:
Katılım
12 Aralık 2015
Mesajlar
1,227
Excel Vers. ve Dili
Türkçe Ofis 2007
Kusura bakmayın O1 hüzresinde değil A1 Hücresine tarih yazılacak Siz Kodları istediğiniz hücreye göre ayarlayabilirsiniz.
 
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
Işte bu harika oldu. Nasıl teşekkür etem azdır. Emeğinize sağlık.
 
Katılım
31 Ocak 2014
Mesajlar
82
Excel Vers. ve Dili
excell 2007
Ali bey aslında bir sorunum daha var. konu açtım. örnek dosya isteniyor. hazırladım ama gönderemedim. hücre rengine göre makro başka sayfadaki satırı silen makro ya ihtiyacım var. bu konuda da yardımcı olmanız mümkün mü acaba?
 
Üst