Excel dosyasında aşağıdaki gibi bir makro var. Bu makro ile dosya her açıldığında önce PC adını kontrol ediyor. Eğer PC adı "ABC" ise dosyaya yeni bir sayfa ekliyor. Eklediği sayfaya tarihe göre isim veriyor. Eğer yeni bir aya geçildi ise önceki sayfaları siliyor.
Sorun makro yeni aya geçildiğini
If Day(tarihn) = "1" Then
kodu ile ayın 1'i ise anlıyor. Dosya ayın birinde değil de ikisinde açılırsa eski aya ait sayfaları silmiyor. Bu kısmı nasıl düzeltebilirim acaba?
Private Sub Workbook_Open()
Dim tarihn
tarihn = DateAdd("d", 0, Date)
gun = Format(Date, "dd.mmmm")
Application.ScreenUpdating = False
If Environ("COMPUTERNAME") <> "ABC" Then Exit Sub
For a = 1 To Sheets.Count
If UCase(Sheets(a).Name) = UCase(gun) Then Exit Sub
Next
'Ay başında eski sayfaları sil***********************
Application.DisplayAlerts = False 'Uyarıları kapat
If Day(tarihn) = "1" Then 'Ayın 1 ise önceki sayfaları sil
For i = 1 To Worksheets.Count - 1
ActiveWindow.SelectedSheets.Delete
Next
End If
Application.DisplayAlerts = True 'Uyarıları aç
' Ay başında eski sayfaları silme sonu ****************
Worksheets.Add.Move before:=Sheets(1)
ActiveSheet.Name = Date
ActiveWindow.ActiveSheet.Name = gun 'Format(Date, "mmmm yyyy;@")
Exit Sub
Application.ScreenUpdating = True
End Sub
Sorun makro yeni aya geçildiğini
If Day(tarihn) = "1" Then
kodu ile ayın 1'i ise anlıyor. Dosya ayın birinde değil de ikisinde açılırsa eski aya ait sayfaları silmiyor. Bu kısmı nasıl düzeltebilirim acaba?
Private Sub Workbook_Open()
Dim tarihn
tarihn = DateAdd("d", 0, Date)
gun = Format(Date, "dd.mmmm")
Application.ScreenUpdating = False
If Environ("COMPUTERNAME") <> "ABC" Then Exit Sub
For a = 1 To Sheets.Count
If UCase(Sheets(a).Name) = UCase(gun) Then Exit Sub
Next
'Ay başında eski sayfaları sil***********************
Application.DisplayAlerts = False 'Uyarıları kapat
If Day(tarihn) = "1" Then 'Ayın 1 ise önceki sayfaları sil
For i = 1 To Worksheets.Count - 1
ActiveWindow.SelectedSheets.Delete
Next
End If
Application.DisplayAlerts = True 'Uyarıları aç
' Ay başında eski sayfaları silme sonu ****************
Worksheets.Add.Move before:=Sheets(1)
ActiveSheet.Name = Date
ActiveWindow.ActiveSheet.Name = gun 'Format(Date, "mmmm yyyy;@")
Exit Sub
Application.ScreenUpdating = True
End Sub
