Textbox'a girilen tarihi match fonk. kullanma

Katılım
29 Mart 2005
Mesajlar
58
Arkadaşlar

Forumda buna benzer soruları incelememe rağmen sorunumu çözemedim.

Textbox1 e girilen tarihi L sütununda bulmaya çalışıyorum.
satır = Application.WorksheetFunction.Match(TextBox1.Value, [L1:L65536], 0) bu kod hata veriyor

L sütunundaki tarih formatı gg.aa.yyyy şeklinde

sorun formatla ilgili mi ? ne yapılabilir
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

satır = [l1:l65536].find(TextBox1.Value).row
 
Katılım
29 Mart 2005
Mesajlar
58
sayın leventm

denedim olmadı. kodun devamı aşağıdaki gibi... object variable hatası veriyor

Worksheets("TEZGAH").Select
satır = [l1:l65536].Find(TextBox1.Value).Row
Cells(satır, 12).Select
ActiveCell.CurrentRegion.Select
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sorun muhtemelen ya hücredeki yada Textboxtaki tarihin metin olarak algılanmasından kaynaklanıyor. Birde aşağıdaki gibi deneyin.

[vb:1:6397a4f09e]Worksheets("TEZGAH").Select
satır = [L1:L65536].Find(clng(cdate(TextBox1.Value))).Row
Cells(satır, 12).Select
ActiveCell.CurrentRegion.Select[/vb:1:6397a4f09e]
 
Katılım
29 Mart 2005
Mesajlar
58
yine olmadı. Yalnız ben textbox için herhangi bir format tanımlaması yapmadım
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Birde aşağıdaki gibi deneyin. Tarih için format tanımlamanıza gerek yok, örneğin textboxa 5-6 gibi yazın bu 5 haziran olarak algılanacaktır.

[vb:1:da0dd0aea1]Worksheets("TEZGAH").Select
satır = [L1:L65536].Find(cdate(TextBox1.Value)).Row
Cells(satır, 12).Select
ActiveCell.CurrentRegion.Select [/vb:1:da0dd0aea1]
 
Katılım
29 Mart 2005
Mesajlar
58
leventm .... öncelikle kusura bakmayın diyecem çünkü l1 hücresindeki tarih =a1 gibi bir formülle alınıyor. hücredeki formülü silip elle tarih girince kod sorunsuz çalışıyor ama l1= a1 benim için gerekli
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu durumda döngülü bir çözüm önereceğim, çalışması yavaştır fakat kesin çözümdür.

[vb:1:3806e4c197]For a = 1 To Cells(65536, 12).End(xlUp).Row
If CDate(TextBox1.Value) = Cells(a, 12).Value Then
Cells(Cells(a, 12).Row, 12).Select
Exit For
End If
Next[/vb:1:3806e4c197]
 
Üst