İşgünlerine ait sheet açmak.

Katılım
22 Mart 2005
Mesajlar
307
Merhaba;

Örnek tablodaki kodlar ile aylık olarak takip ettiğim çalışma kitabıma işgünlerine ait sheetler açabiliyorum.
Bu çalışma kitabımı her aya ait olarak (iş günlerine ait günlük bilgiler) olarak tutuyorum.
Problemim şu;
Daha önceki aya ait oluşturduğum örneğin Nisan-06 ayı çalışma kitabımı (03/05/2006 tarihinde) bugün açtığımda önceki ayın
çalışması olduğu halde yine 02/05/2006 olarak sheet açıyor.
Yani ay geçti ise ben o çalışma kitabımı açmış olsam dahi yeni sheet oluşturmasın (02/05/0006) gibi şu an açıyor.
 

L_M

Katılım
28 Şubat 2005
Mesajlar
27
Kod:
Sub Auto_Open()
Dim tarih As Date, i As Integer
tarih = isgunu(Date)
If Format(Date, "mmmm-yy") & ".xls" <> ThisWorkbook.Name Then
MsgBox "Bu aya ait bir çalışma kitabı olmadığı için yeni sayfa açmadım."
Exit Sub
End If
Sayfaadi = Format(tarih, "dd-mm-yyyy")
For i = 1 To Sheets.Count
If Sheets(i).Name = Sayfaadi Then Exit Sub
Next i
Sheets.Add.Name = Sayfaadi
End Sub
 
Katılım
22 Mart 2005
Mesajlar
307
Merhb;
Kodlar için teşekkürler. Fakat bu kodlar çalışma kitabının Nisan-06 yada Mayıs-06 ayına ait olduğunu nasıl algılayacak.

Kaldı ki bu kodları ben çalışma kitabına uygulayınca ilgili ay geçince farklı kaydet deyim Mayıs-06, Haziran-06 .... gibi oluşturarak içindeki geçmiş dönem sayfalarını sileceğim .. Bu durumda bu kod herseferinde
MsgBox "Bu aya ait bir çalışma kitabı olmadığı için yeni sayfa açmadım.
Diyecek..
 

L_M

Katılım
28 Şubat 2005
Mesajlar
27
balca' Alıntı:
Merhb;
Kodlar için teşekkürler. Fakat bu kodlar çalışma kitabının Nisan-06 yada Mayıs-06 ayına ait olduğunu nasıl algılayacak.
Algılamada problem olacağını sanmam. :)
if Format(Date, "mmmm-yy") & ".xls" <> ThisWorkbook.Name Then satırı o işi yapar.

balca' Alıntı:
Kaldı ki bu kodları ben çalışma kitabına uygulayınca ilgili ay geçince farklı kaydet deyim Mayıs-06, Haziran-06 .... gibi oluşturarak içindeki geçmiş dönem sayfalarını sileceğim .. Bu durumda bu kod herseferinde
MsgBox "Bu aya ait bir çalışma kitabı olmadığı için yeni sayfa açmadım.
Diyecek..
bu kısımdan ilk mesajınızda bahsetmediniz yani ben neler yapacağınızı bilemem ki.

Kod:
Sub Auto_Open()
Dim tarih As Date, i As Integer
'tarih olarak sizin isgunu fonksiyonundan çıkan
'tarihi kullandım
tarih = isgunu(Date)
If Format(tarih, "mmmm-yy") & ".xls" <> ThisWorkbook.Name Then
If MsgBox("Bu aya ait bir çalışma kitabı olmadığı için yeni sayfa açmadım.Şinci farklı kaydet yapacağım kabul mü?", vbYesNo) = vbYes Then
ThisWorkbook.SaveAs ThisWorkbook.Path & Application.PathSeparator & Format(Date, "mmmm-yy")
Sheets.Add.Name = Format(tarih, "dd-mm-yyyy")
For Each sh In ThisWorkbook.Sheets
If sh.Name <> Format(tarih, "dd-mm-yyyy") Then
Application.DisplayAlerts = False 'veri varsa sormadan silecek.
sh.Delete
End If
Next
Exit Sub
Else
MsgBox "bu kitaba da yeni sayfa açmadım, farklı kaydette yapmadım, hiç bir şey yapmadım"
Exit Sub
End If
End If
Sayfaadi = Format(tarih, "dd-mm-yyyy")
Application.DisplayAlerts = true
For i = 1 To Sheets.Count
If Sheets(i).Name = Sayfaadi Then Exit Sub
Next i
Sheets.Add.Name = Sayfaadi
End Sub
 
Katılım
18 Aralık 2005
Mesajlar
12
Sayın L M ;

bir önceki sayfayı kopyalaması için nereyi değiştirmem gerekli,yeni boş bir sayfa açıyor ben ise bir önceki sayfanın içinde değişiklik yapıyorum bunun için förmülde nereyi değiştirmem gerekli şimididen teşekkür ederim...

For Each sh In ThisWorkbook.Sheets.copy

yapıyorum olmuyor
 
Katılım
18 Aralık 2005
Mesajlar
12
sayın L_M, size hem özelden hem burdan ulaşmaya çalışıyorum :yardim:
 
Üst