Formülü koda çevirme

Katılım
27 Eylül 2023
Mesajlar
50
Excel Vers. ve Dili
Office 2016 Türkçe
Arkadaşlar kolay gelsin.
Ekli çalışma sayfasında ayrıntılı olarak anlattığım gibi B sütununa tarihleri girdiğim zaman M ve N sütunlarında B sütununa girdiğim tarihin formül olmadan sayfanın kod bölümüne eklenecek bir kod yardımı ile otomatik olarak ay ve yılı yazması için nasıl bir kod kullanabilirim.?

Örnek dosya
 
Son düzenleme:
Katılım
6 Kasım 2004
Mesajlar
244
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
25-07-2023
İstediğiniz VBA kodunu oluşturmak için şu adımları takip edebilirsiniz:

  1. Sayfa koduna erişin:
    • Excel'de ilgili çalışma sayfasına sağ tıklayın ve "Kod Görüntüle" seçeneğine tıklayın.
  2. Kod ekleyin: Aşağıdaki VBA kodunu kod penceresine yapıştırın. Bu kod, B sütununa tarih girildiğinde, M ve N sütunlarına o tarihi otomatik olarak kopyalar:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    ' Sadece B sütunundaki değişiklikleri kontrol et
    If Not Intersect(Target, Me.Columns("B")) Is Nothing Then
        ' Her değişiklik olan hücreyi döngüye al
        For Each cell In Target
            ' Eğer hücre boş değilse, tarihi M ve N sütunlarına yazdır
            If IsDate(cell.Value) Then
                cell.Offset(0, 11).Value = cell.Value ' M sütununa yaz
                cell.Offset(0, 12).Value = cell.Value ' N sütununa yaz
            End If
        Next cell
    End If
End Sub
3.Kodu test edin:
  • B sütununa tarih girdiğinizde, M ve N sütunlarına bu tarih otomatik olarak yazılacaktır.
Bu VBA kodu, her tarih girişi yapıldığında M ve N sütunlarına aynı tarihin kopyalanmasını sağlar. Kodun çalışıp çalışmadığını kontrol etmek için B sütununa bir tarih girdikten sonra M ve N sütunlarını gözlemleyebilirsiniz
 
Katılım
6 Kasım 2004
Mesajlar
244
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
25-07-2023
Hücre biçimlendirmeden de ister ay ister yıl dilediğiniz formata çevirebilirsiniz.
 
Katılım
27 Eylül 2023
Mesajlar
50
Excel Vers. ve Dili
Office 2016 Türkçe
Hocam çok teşekkür ederim. Kod mükemmel çalışıyor. Bir de diyelim ki B sütununda herhangi bir tarihi sildik. O zaman siline tarihin karşısında M ve N sütunlarında bulunan ay ve yıl değerinin de otomatik silinmesi için bir düzenleme yapılabilir mi.
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,177
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Alternatif:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
sat = Target.Row
süt = Target.Column
If sat >= 4 And süt = 2 And Cells(sat, süt) = "" Then
Range("m" & sat & ":n" & sat).ClearContents
End If
If sat >= 4 And süt = 2 And Cells(sat, süt) <> "" Then
Cells(sat, "m") = Format(Cells(sat, süt), "mmmm") 'ay adı
Cells(sat, "n") = Format(Cells(sat, süt), "yyyy") ' yıl adı
End If
End Sub

İyi çalışmalar.
 
Katılım
6 Kasım 2004
Mesajlar
244
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
25-07-2023
Hocam çok teşekkür ederim. Kod mükemmel çalışıyor. Bir de diyelim ki B sütununda herhangi bir tarihi sildik. O zaman siline tarihin karşısında M ve N sütunlarında bulunan ay ve yıl değerinin de otomatik silinmesi için bir düzenleme yapılabilir mi.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    ' Sadece B sütunundaki değişiklikleri kontrol et
    If Not Intersect(Target, Me.Columns("B")) Is Nothing Then
        ' Her değişiklik olan hücreyi döngüye al
        For Each cell In Target
            ' Eğer hücre boş ise, M ve N sütunlarındaki değerleri sil
            If IsEmpty(cell.Value) Then
                cell.Offset(0, 11).ClearContents ' M sütununu sil
                cell.Offset(0, 12).ClearContents ' N sütununu sil
            ' Eğer hücre dolu ve bir tarihse, M ve N sütunlarına yazdır
            ElseIf IsDate(cell.Value) Then
                cell.Offset(0, 11).Value = cell.Value ' M sütununa yaz
                cell.Offset(0, 12).Value = cell.Value ' N sütununa yaz
            End If
        Next cell
    End If
End Sub
Bu düzenleme ile B sütunundaki herhangi bir tarih silindiğinde, o tarihin karşısındaki M ve N sütunlarındaki veriler de otomatik olarak silinecektir.
 
Katılım
27 Eylül 2023
Mesajlar
50
Excel Vers. ve Dili
Office 2016 Türkçe
Arkadaşlar yoğunluktan dolayı daha yeni kontrol edebildim. Çok çok teşekkür ederim. Emeğinize sağlık
 
Üst