• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

tarihi arttırma

Katılım
6 Mart 2009
Mesajlar
133
Excel Vers. ve Dili
office 2007
mesela a sütunda aynı yıl ama farklı zamanlardaki tarihi bir sonraki senenin aynı günü geldiğinde yılı 1 sene olarak arttıracak bir makro yazabilirmiyiz acaba
 

Ekli dosyalar

Selamlar,

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Sub TARİHLERİ_DÜZENLE()
    Dim X As Long
    
    For X = 2 To Range("A65536").End(3).Row
        If Cells(X, 1) <> Date Then
            If Day(Cells(X, 1)) = Day(Date) And Month(Cells(X, 1)) = Month(Date) Then
                Cells(X, 1) = DateSerial(Year(Cells(X, 1)) + 1, Month(Cells(X, 1)), Day(Cells(X, 1)))
            End If
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Selamlar hocam

Selamlar,

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Sub TARİHLERİ_DÜZENLE()
    Dim X As Long
    
    For X = 2 To Range("A65536").End(3).Row
        If Cells(X, 1) <> Date Then
            If Day(Cells(X, 1)) = Day(Date) And Month(Cells(X, 1)) = Month(Date) Then
                Cells(X, 1) = DateSerial(Year(Cells(X, 1)) + 1, Month(Cells(X, 1)), Day(Cells(X, 1)))
            End If
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub

son zamanlarda vba- kodlarına merak sardım hergün sizlerin sayesinde excel.web.tr. den yeni şeyler öğrendikçe daha bir iştahla sarılıyorum. teşekkürler
 
soruyu tam anlatamadım

a sütunundaki verilerimde değişik tarihler var bunlardan gün ve ayı geldiğinde mesela 01.01.2010 tarihi 01.01.2011 olacak şekilde bir makro mümkünmü
 
Selamlar,

Önerdiğim kod zaten tarih kontrolü yaparak tarihin yıl değerini bir arttırıyor. Siz sadece bir butona tanımlayıp çalıştıracaksınız.
 
Selamlar,

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Sub TARİHLERİ_DÜZENLE()
    Dim X As Long
    
    For X = 2 To Range("A65536").End(3).Row
        [COLOR="Red"]If Cells(X, 1) = Date Then[/COLOR]
            If Day(Cells(X, 1)) = Day(Date) And Month(Cells(X, 1)) = Month(Date) Then
                Cells(X, 1) = DateSerial(Year(Cells(X, 1)) + 1, Month(Cells(X, 1)), Day(Cells(X, 1)))
            End If
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub

Sayın Korhan AYHAN hocam,
Arkadaşımızın istediği, zannederim "A" sütunundaki tarihler bugüne eşit ise ilgili satırdaki tarih bir yıl sonrası olsun.
Bu durumda sizinde müsadeniz ile, kodlarda yukarıda görülen kırmızı renkli işaretlenen satırı değiştirmemiz gerekli.

Ancak mevcut hali ile wolwaren arkadaşımızın talebi doğrultusunda işlem yapılırsa bir yıl sonraki tarih yine hatalı olacaktır.

Örneğin "A" sütununda 3.satırdaki tarih : 16.04.2011 olsun.
Bir yıl sonrası : 15.04.2012 olur.

Bilginize.
 
merhabalar

sayın korhan ve kuman beye teşekkürler öncelikle durum şu 01.01.2009 tarihli bir alanım var bu bir sonraki sene otomatik olarak 01.01. de 2010 nu göstersin ve bunu otomatik yapsın mesela 01.01. de 2011 geçsin gibi bir hücreye bugünün tarihini formülle yazsak ve o hücreye bakarak a sütunda ki tarih 01.01.gösterdiğinde sadece yılını değiştirsin. sizin yaptığınız doğru ama buton atayıp sürekli basmam gerekecek
 
Selamlar,

Butona sürekli basmanıza gerek yok. Kodu dosyanızın açılış bölümüne uygularsanız dosyanızın açılışında tarihler otomatik güncellenmiş olur.

Önerdiğim kodu aşağıdaki şekilde düzenleyip kullanabilirsiniz.

Kod:
Option Explicit
 
Sub AUTO_OPEN()
    Dim X As Long
 
    Sheets("Sayfa1").Select
 
    For X = 2 To Range("A65536").End(3).Row
        If Cells(X, 1) <> Date Then
            If Day(Cells(X, 1)) = Day(Date) And Month(Cells(X, 1)) = Month(Date) Then
                Cells(X, 1) = DateSerial(Year(Cells(X, 1)) + 1, Month(Cells(X, 1)), Day(Cells(X, 1)))
            End If
        End If
    Next
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Geri
Üst