• DİKKAT

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

Formülü koda çevirme

  • Konbuyu başlatan Konbuyu başlatan mkuru28
  • Başlangıç tarihi Başlangıç tarihi
Katılım
27 Eylül 2023
Mesajlar
76
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:
İ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
 
Hücre biçimlendirmeden de ister ay ister yıl dilediğiniz formata çevirebilirsiniz.
 
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.
 
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.
 
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.
 
Arkadaşlar yoğunluktan dolayı daha yeni kontrol edebildim. Çok çok teşekkür ederim. Emeğinize sağlık
 
Geri
Üst