AccessTr.neT

Tam Versiyon: Vba İle Döndüyü Sağlayıp Veriyi Çekmek
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4 5 6 7
kodu aşağıdaki gibi düzenleyip dener misiniz?
aslında find komutunu zaten yılı bulmakta kullandığınıza göre kullanabiliyorsunuz aynı mantığı burada da kullanacaksınız
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim bul As Range
    Dim trh As Date
    Dim CsutunTarih As Date
       
 
    With ThisWorkbook.Sheets("T1")
If (Target.Column = 3 Or Target.Column = 5) And Target.Row >= 1 Then
        If IsDate(Cells(Target.Row, "c")) And Len(Cells(Target.Row, "E") & "") > 0 Then
            SonStn = Cells(1, Columns.Count).End(xlToLeft).Column
                    Set bul = .Range("B1:" & .Cells(1, SonStn).Address).Find(Year(Cells(Target.Row, "C").Value), , , 1)
                    Set kaydir = .Range("A:A").Find(Cells(Target.Row, "E").Value, , , 1)
                    If (Not bul Is Nothing) And (Not kaydir Is Nothing) Then Cells(Target.Row, "F").Value = .Cells(kaydir.Row, bul.Column).Value
        End If
    End If
    End With
    Set bul = Nothing
End Sub
(03/10/2022, 13:12)berduş yazdı: [ -> ]kodu aşağıdaki gibi düzenleyip dener misiniz?
aslında find komutunu zaten yılı bulmakta kullandığınıza göre kullanabiliyorsunuz aynı mantığı burada da kullanacaksınız
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim bul As Range
    Dim trh As Date
    Dim CsutunTarih As Date
       
 
    With ThisWorkbook.Sheets("T1")
If (Target.Column = 3 Or Target.Column = 5) And Target.Row >= 1 Then
        If IsDate(Cells(Target.Row, "c")) And Len(Cells(Target.Row, "E") & "") > 0 Then
            SonStn = Cells(1, Columns.Count).End(xlToLeft).Column
                    Set bul = .Range("B1:" & .Cells(1, SonStn).Address).Find(Year(Cells(Target.Row, "C").Value), , , 1)
                    Set kaydir = .Range("A:A").Find(Cells(Target.Row, "E").Value, , , 1)
                    Debug.Print "Column : " & bul.Column, "Row : " & kaydir.Row
                    If (Not bul Is Nothing) And (Not kaydir Is Nothing) Then Cells(Target.Row, "F").Value = .Cells(kaydir.Row, bul.Column).Value
        End If
    End If
    End With
    Set bul = Nothing
End Sub

Teşekkür ederim.
Sayın berduş hocam
Allah cc razı olsun sizden ve konuyu açan arkadaştan bende böyle bir şey arıyordum .
rica ederim
iyi çalışmalar)
Not: aslında debug.print satırına gerek yok sadece veri Vba sayfasında görünsün diye kullanmıştım
o satır silinebilir
(04/10/2022, 10:24)berduş yazdı: [ -> ]rica ederim
iyi çalışmalar)
Not: aslında debug.print satırına gerek yok sadece veri Vba sayfasında görünsün diye kullanmıştım
o satır silinebilir

Hocam 2023 tarihine kadar veri alıyor 2024 2025 2026 tarihleri seçilince hata veriyor. Debug.Print kısmını silince hiç veri almıyor
şimdi denedim sorunsuz geliyor?
Sayfalar: 1 2 3 4 5 6 7