Soru formülü textboxa uyarlama

Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
arkadaşlar aradım taradım bir türlü bulamadım.
aşağıdaki formülü textboxa uyarlamak istiyorum.
formül ile listede birden çok olan kayıtın en son tarihli olanını textboxa yazdırmak istiyorum.

ARA(2;1/($B:$B=M2);$D:$D)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Kendinize uyarlarsınız.

C++:
TextBox1 = Evaluate("=LOOKUP(2,1/(B:B=""" & Range("M2").Value & """),D:D)")
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
teşekkürler hocam ancak hata verdi

benim istediğim aşağıdaki listede b sütununda plakalar var. aynı plakadan birkaç tane var en son hangi tarihte yakıt alınmış ise o tarihin SON KM, ALDIĞI YAKIT hücresindeki veriyi textbox1 e almak istiyorum.


TARİH

PLAKA

ZİMMET SAHİBİ

SON KM

İLK KM

YAPILAN KM

ALDIĞI YAKIT

BİRİM

11.10.2022​

35 YKZ 45

ali veli

1555555​

1250000​

305555​

50​

DENEME

24.10.2022​

35 YKZ 50

ahmet mehmet

200000​

175000​

25000​

50​

DENEME

25.10.2022​

35 YKZ 50

davut kamil

150000​

125000​

25000​

50​

DENEME

10.05.2022​

35 YKZ 45

davut kamil

1100​

200000​

25000​

50​

deneme

25.10.2022​

35 YKZ 45

ali veli

2000​

1500​

500​

10000​

DENEME

        
        
        
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Uyarladığınız hata veren örnek dosyanızı paylaşın inceleyelim.
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
Korhan hocam dosya eklemeyi bilmediğim için yapamıyorum ayrıca dosyada plakalar var dosya.tc gibi adreslere de koymak istemiyorum.

yukarıda ifade ettiğim gibi birden çok aynı plaka farklı tarihlerde akaryakıt almış. userformu çalıştırıp plakayı comboboxtan seçtiğimde seçtiğim plakanın en son yakıt aldığı tarihteki son km, ilk km ve aldığı yakıtı textboxlara getirsin istiyorum.
yukarıdaki tablodan örnek vermem gerekirse;

combobox =35 YKZ 50 (combobox change)
textbox1 = 150000
textbox2 = 125000
textbox3 = 25000
şeklinde listeden plakayı bulup en son tarihteki verileri textboxa doldursun istiyorum.

şimdiden teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Plakalar yerine sanal değerler yazarak paylaşabilirsiniz.
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
hocam dosya tc çalıştığım yerde banlı giriş dahi yapamıyorum.
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
neyse hocam olmuyorsa kalsın teşekkür edrim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Olur elbette..

Başka paylaşım sitelerine yükleyebilirsiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Paylaştığınız veriden yola çıkarak aşağıdaki çözümü hazırladım. Deneyiniz.

C++:
Private Sub ComboBox1_Change()
    Dim Last_Row As Long, Table_Row As Long, My_Formula As String
    
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    
    If Me.ComboBox1 <> "" Then
        Table_Row = Cells(Rows.Count, 1).End(3).Row
        My_Formula = "=LOOKUP(2,1/(B2:B1048576=""" & Me.ComboBox1.Value & """),ROW(B2:B1048576))"
        My_Formula = Replace(My_Formula, 1048576, Table_Row)
        On Error Resume Next
        Last_Row = 0
        Last_Row = Evaluate(My_Formula)
        On Error GoTo 0
        If Last_Row > 0 Then
            TextBox1 = Cells(Last_Row, "D")
            TextBox2 = Cells(Last_Row, "E")
            TextBox3 = Cells(Last_Row, "F")
        End If
    End If
End Sub
 
Katılım
27 Nisan 2022
Mesajlar
27
Excel Vers. ve Dili
2019, vba06,visual studio 2019
hocam teşekkür ederim.
oldu fakat bir hata var
35 YKZ 998 24.10.2022 ve 10.06.2022 tarihlerinde var sizin gönderdiğiniz kodu uyarladığımda 24.10.2022 yi getirmesi gerekirken 10.06.2022 getiriyor.




11.10.2022​

34 YKZ 11

24.10.2022​

34 YKZ 998

25.10.2022​

34 YKZ 11

10.06.2022​

34 YKZ 998

26.10.2022​

34 YKZ 11

26.10.2022

34 FZ 189

26.10.2022

34 YKZ 11

 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sanırım tarihler sıralı değil?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Private Sub ComboBox1_Change()
    Dim Last_Row As Long, Table_Row As Long
    Dim My_Formula As String, Search_Text As Variant
    
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    
    If Me.ComboBox1 <> "" Then
        Table_Row = Cells(Rows.Count, 1).End(3).Row
        Search_Text = Me.ComboBox1.Value
        My_Formula = "=MATCH(""" & Search_Text & """&MAX(IF(B1:B1048576=""" & _
                      Search_Text & """,A1:A1048576)),B1:B1048576&A1:A1048576,0)"
        My_Formula = Replace(My_Formula, 1048576, Table_Row)
        On Error Resume Next
        Last_Row = 0
        Last_Row = Evaluate(My_Formula)
        On Error GoTo 0
        If Last_Row > 0 Then
            TextBox1 = Cells(Last_Row, "D")
            TextBox2 = Cells(Last_Row, "E")
            TextBox3 = Cells(Last_Row, "F")
        End If
    End If
End Sub
 
Üst