Birönceki işgünü tarihini yaz.

Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Arkadaşlar merhaba;

C3 hücresine birönceki işgünü tarihini makro ile nasıl yazdırabilirim. (Cumartesi-Pazar tatil, diğer resmi tatilleri dikkate alsa daha iyi olur da almasada olur)

Kodları öyle yazmalıyım ki örneğin bugün 25/06/2007 ise C3 hücresine 22/06/2007 yazmalı.

(Formül veya fonksiyon istemiyorum)
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodları kullanabilirsiniz.

[a2] yazılan yeri kendinize göre uyarlayınız.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [a2]) Is Nothing Then Exit Sub
Select Case Weekday(Target.Value, vbMonday)
Case Is = 1
ilk = Target - 3
Case Is = 2
ilk = Target - 1
Case Is = 3
ilk = Target - 1
Case Is = 4
ilk = Target - 1
Case Is = 5
ilk = Target - 1
Case Is = 6
ilk = Target - 1
Case Is = 7
ilk = Target - 2
End Select
[c3] = ilk
End Sub
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
........................................
 
Son düzenleme:
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Teşekkürler. Kodu ilgili sayfanın VBA sına yapıştırıyorum ama çalışmıyor.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
A2 hücresine veri girdiğinizde çalışması gerekiyor.
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Teşekkürler Sn. Ripek.
Alternatif olarak kullanabilirim. Aşağıdaki kodlar ilede çözdüm.

Sub Auto_Open()
'[c3] = Date - 1
Range("c3").Select
ActiveCell.FormulaR1C1 = "=IF(WEEKDAY(TODAY()-1,1)=1,TODAY()-2,TODAY()-1)"
Range("C4").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=İŞGÜNÜ(R[-1]C,1)"
Range("c3:c4").Select
Selection.Copy
Range("c3").Select
Selection.PasteSpecial Paste:=xlValues
Range("c3").Select
Application.CutCopyMode = False
End Sub
 
Üst