Tarihleri makro ile yazdırmak...

Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Merhaba arkadaşlar herkese kolay gelsin; Bir isteğim var zahmet olmaz ise cevabınızı bekliyorum;
G ve K sütunlarında tarihler var; Eğer G sütununda veri yoksa (tarih) buraya K sütunundaki tarihin 40 gün öncesini yazsın, (Örnek; =K sütunu - 40 ), yine K sütununda veri yoksa (tarih) bu sefer K sütununa (Örnek; =G sütunu + 40) şeklinde makro yazmasını istiyorum. Örneği ekli dosyamda mevcut teşekkürler.
 

Ekli dosyalar

Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Sayın abim güzel eline sağlık ama, diğer satırlardaki tarihlerde işlem yapamıyorum, yani kodu ben çalıştırmak istiyorum, eksik olanı doldur şeklinde sadece boş olanı doldursun silmeme müsade etmiyor.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,803
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Aşağıdaki kodlarla yapabilirsiniz.

Kodlar A sütununda bulunan "S.No" adeti kadar kontrol yapar.
Örnekteki dosyanızda boş bırakmışsınız normalde "S.No" dolu olacağını varsaydım.

Kod:
Sub Test()
    Dim Say As Long
    Dim Bak As Range
    Say = Cells(Rows.Count, "A").End(3).Row
    For Each Bak In Range("A2:A" & Say)
        If Cells(Bak.Row, "G").Value = Empty Then
            Cells(Bak.Row, "G").Value = DateAdd("d", -40, Cells(Bak.Row, "K").Value)
        ElseIf Cells(Bak.Row, "K").Value = Empty Then
            Cells(Bak.Row, "K").Value = DateAdd("d", -40, Cells(Bak.Row, "G").Value)
        End If
    Next
End Sub
Dosyanız ekte.
 

Ekli dosyalar

Son düzenleme:

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,512
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
#3 numaralı mesajınızdaki taleplerinizi karşılayan dosya #2 numaralı mesaja eklenmiştir.

Selamlar...
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Merhaba arkadaşlar herkese günaydın Sayın Dalgalıkur'un yazmış olduğu koda ek yaptım ama çalıştıramadım Yardımcı olursanız sevinirim. Tesekkurler.
 

Ekli dosyalar

Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Merhaba arkadaşlar; Herkese hayırlı günler diliyorum.
Ekli dosyamda K sütunundaki tarihleri doldurmak için aşağıdaki kodu sizlerin yazmış olduğu kottan uyarladım. K sütunu boş ise J sütunundaki tarihe 1 ekleyerek K sütunundaki tarihleri dolduruyor.
Sub BAŞLAMA_TARİHİ_DOLDUR()
Dim Say As Long
Dim Bak As Range
Say = Cells(Rows.Count, "A").End(3).Row
For Each Bak In Range("A2:A" & Say)
If Cells(Bak.Row, "K").Value = Empty Then
Cells(Bak.Row, "K").Value = Cells(Bak.Row, "J").Value + 1
End If
Next
End Sub
Ancak;
Ekli dosyada sistemden almış olduğum, tarihleri bir türlü doldurmuyor, boş olan yerleri K3,K5,K6,K7,K9,K11.... elimle Delete ile silince dolduruyor, bunu yapmadan kodda nasıl bir değişiklik yapılmalı ki hepsini kodla doldurayım. Teşekkürler.
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Merhaba.
For satırından sonraki If.... satırını aşağıdaki gibi değiştirerek kullanabilirsiniz.
Rich (BB code):
        If Cells(Bak.Row, "K").Value = Empty Or Cells(Bak.Row, "K").Value = Chr(160) Then
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Teşekkür ederim, Cumaya gidiyorum, gelince deneyeceğim, eline sağlık abi dua ile kal hayırlı cumalar.
 
Katılım
24 Şubat 2009
Mesajlar
1,070
Excel Vers. ve Dili
2016
Sayın Ömer bey eline sağlık oldu, abi birde K sütunu boş olup, J sütununda tarih varsa (veri) K sütununa yazması için nasıl yapmak gerekir.
Örneğin J de veri yoksa 01.01.1900 yazıyor, Yani koşul K boş olup, J de veri varsa işlem yapacak teşekkürler.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Önceki cevabımda değişiklik önerdiğim satırı bu kez aşağıdaki şekilde değiştirin.
Rich (BB code):
        If IsDate(Cells(Bak.Row, "J")) And (Cells(Bak.Row, "K").Value = Empty Or Cells(Bak.Row, "K").Value = Chr(160)) Then
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Kolay gelsin.
 
Üst