Hücredeki formülü içerik olarak algılama?

SerTkaN

Altın Üye
Katılım
27 Kasım 2019
Mesajlar
77
Excel Vers. ve Dili
Microsoft Office 2016
Altın Üyelik Bitiş Tarihi
16-02-2030
Çalışma sayfamda A3 hücresinden asağı doğru B3 hücresinden asağı doğru tarih verisi girilince otomatik sayı numarası verecek formül var ve sağ taraftada aşağı ve yukarı köprü formülü, fakat hücredeki formülü metin olarak aldıladığından asağı git butonu düzgün çalışmıyor maalesef. Formülün metin olarak algılanmasını nasıl engelleyebiliriz? Bakan üstadlara teşekkür ederim.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,418
Excel Vers. ve Dili
2019 Türkçe
Alternatif çözüm.

Oraya formül yazmanıza gerek yok, B sütununa tarih yazdığınızda kod ile otomatik sıra numarası verilebilir hem böylelikle gereksiz formüller kullanmamış olursunuz ve dosyanız ağırlaşmaz.
Aşağı ve yukarı butonlarında bir işlem yapmaya gerek yok.

VBA kısmında şifre olduğu için dosyaya ben uygulayamadım.
Önce A sütunundaki tüm formülleri silin ve genel sayfasının kod kısmına aşağıdaki kodu kopyalayınız.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("B2:B" & Rows.Count), Target) Is Nothing Then
        If Not IsDate(Target) Then
            MsgBox "Lütfen geçerli bir tarih giriniz."
            Exit Sub
        Else
            Range("A3") = 1
            With Range("A4").Resize(Cells(Rows.Count, "B").End(xlUp).Row - 3)
                .Formula = "=A3+1"
                .Value = .Value
            End With
        End If
    End If
End Sub
 

SerTkaN

Altın Üye
Katılım
27 Kasım 2019
Mesajlar
77
Excel Vers. ve Dili
Microsoft Office 2016
Altın Üyelik Bitiş Tarihi
16-02-2030
Alternatif çözüm.

Oraya formül yazmanıza gerek yok, B sütununa tarih yazdığınızda kod ile otomatik sıra numarası verilebilir hem böylelikle gereksiz formüller kullanmamış olursunuz ve dosyanız ağırlaşmaz.
Aşağı ve yukarı butonlarında bir işlem yapmaya gerek yok.

VBA kısmında şifre olduğu için dosyaya ben uygulayamadım.
Önce A sütunundaki tüm formülleri silin ve genel sayfasının kod kısmına aşağıdaki kodu kopyalayınız.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("B2:B" & Rows.Count), Target) Is Nothing Then
        If Not IsDate(Target) Then
            MsgBox "Lütfen geçerli bir tarih giriniz."
            Exit Sub
        Else
            Range("A3") = 1
            With Range("A4").Resize(Cells(Rows.Count, "B").End(xlUp).Row - 3)
                .Formula = "=A3+1"
                .Value = .Value
            End With
        End If
    End If
End Sub
Hocam teşekkür ederim cevabınız için, denedim hata verdi ama VBA şifre kaldırdım.
 

Ekli dosyalar

Son düzenleme:

SerTkaN

Altın Üye
Katılım
27 Kasım 2019
Mesajlar
77
Excel Vers. ve Dili
Microsoft Office 2016
Altın Üyelik Bitiş Tarihi
16-02-2030
@Muzaffer Ali Hocam kodu şu şekilde güncelleyerek hata kalktı gibi.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("B2:B" & Rows.Count), Target) Is Nothing Then
If Not IsDate(Target) Then
MsgBox "Lütfen geçerli bir tarih giriniz."
Exit Sub
Else
' Tarih girilen hücre ile aynı satırdaki A hücresine değer yaz
If Target.Row = 3 Then
Cells(Target.Row, "A").Value = 1
ElseIf Target.Row > 3 Then
' Önceki satırdaki A sütunundaki değeri alıp 1 artır
Cells(Target.Row, "A").Value = Cells(Target.Row - 1, "A").Value + 1
End If

' Alternatif başka bir işlem varsa buraya yazılabilir
End If
End If
End Sub
 
Son düzenleme:
Üst