Gün Sonu Raporu

Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Merhaba arkadaşlar

makrolar ile etiket ürettirmek için kullandığım bir Excel kitabı var. Tabi ki gün içerisinde basılan tüm etiketler Rapor aldı sayfada kayıt altına alınıyor. Günlük on bin kadar satır üretiyor e haliyle çalışma kitabı feci halde kasıyor.

Butona tıkladığımda makronun yapmasını istediğim şey şu ;

  1. Rapor sayfasını yeni bir kitap oluşturup oraya kopyala
  2. Oluşturduğun yeni kitabın adını o an ki tarih ve saat olarak ayarla
  3. Kitabı ana Excel dosyasının veri yoluna "/Raporlar" klasörünün içerisine kaydet
  4. Yeni oluşturulan dosyayı kapat.

Bu işlemleri yapacak bir makroya ihtiyacım var. Forumda benzer bir konu buldum fakat düzenleme yapamadım. Yardımcı olabilirseniz çok sevinirim.
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Merhaba, istediğiniz işlemi yapan kodlar.
Kod:
Sub test()
Application.ScreenUpdating = False
Dim s1 As Worksheet, yol As String, ad As String

Set s1 = Sheets("Rapor")
yol = ThisWorkbook.Path & "\Raporlar\"
ad = Format(Now, "dd.mm.yyyy hh_ss_nn") & ".xlsx"

s1.Copy
ActiveWorkbook.SaveAs yol & ad
ActiveWindow.Close

Set s1 = Nothing
yol = Empty
ad = Empty
Application.ScreenUpdating = True
End Sub
 
Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Merhaba, istediğiniz işlemi yapan kodlar.
Kod:
Sub test()
Application.ScreenUpdating = False
Dim s1 As Worksheet, yol As String, ad As String

Set s1 = Sheets("Rapor")
yol = ThisWorkbook.Path & "\Raporlar\"
ad = Format(Now, "dd.mm.yyyy hh_ss_nn") & ".xlsx"

s1.Copy
ActiveWorkbook.SaveAs yol & ad
ActiveWindow.Close

Set s1 = Nothing
yol = Empty
ad = Empty
Application.ScreenUpdating = True
End Sub
Çok teşekkür ederim tam istediğim gibi çalıştı. Ama bir şeyi unuttum, rapor sayfasını yeni dosyaya aktardık fakat ana dosyadaki rapor sayfasını temizlemeyi unuttuk.

Rapor sayfasında ; İlk satırda başlıklar var (A:H arası) ilk satır hariç tüm sayfayı temizlemesi gerekiyor.
 
Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Çok teşekkür ederim tam istediğim gibi çalıştı. Ama bir şeyi unuttum, rapor sayfasını yeni dosyaya aktardık fakat ana dosyadaki rapor sayfasını temizlemeyi unuttuk.

Rapor sayfasında ; İlk satırda başlıklar var (A:H arası) ilk satır hariç tüm sayfayı temizlemesi gerekiyor.
Şu şekilde çözdüm. Ama seçme silme yaptığı için işlem yavaş dönüyor. Farklı bir öneriniz varsa alabilirim
Kod:
Sub raportemizle()
    Sayfa5.Activate
    Range("A3:H3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Sayfa1.Activate
    Range("E2").Select
    ActiveWorkbook.Save
End Sub
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Rica ederim. İşlem sonrası rapor sayfasının temizlenmesi için kodu güncelledim.
Kod:
Sub test()
Application.ScreenUpdating = False
Dim s1 As Worksheet, yol As String, ad As String
Dim son As Long

Set s1 = Sheets("Rapor")
yol = ThisWorkbook.Path & "\Raporlar\"
ad = Format(Now, "dd.mm.yyyy hh_nn_ss") & ".xlsx"

s1.Copy
ActiveWorkbook.SaveAs yol & ad
ActiveWindow.Close

son = s1.Cells(Rows.Count, 1).End(3).Row
s1.Range("A2:H" & son + 1).Clear

Set s1 = Nothing
yol = Empty
ad = Empty
son = 0
Application.ScreenUpdating = True
End Sub
 
Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Rica ederim. İşlem sonrası rapor sayfasının temizlenmesi için kodu güncelledim.
Kod:
Sub test()
Application.ScreenUpdating = False
Dim s1 As Worksheet, yol As String, ad As String
Dim son As Long

Set s1 = Sheets("Rapor")
yol = ThisWorkbook.Path & "\Raporlar\"
ad = Format(Now, "dd.mm.yyyy hh_nn_ss") & ".xlsx"

s1.Copy
ActiveWorkbook.SaveAs yol & ad
ActiveWindow.Close

son = s1.Cells(Rows.Count, 1).End(3).Row
s1.Range("A2:H" & son + 1).Clear

Set s1 = Nothing
yol = Empty
ad = Empty
son = 0
Application.ScreenUpdating = True
End Sub
Çok teşekkür ederim.
 
Üst