• DİKKAT

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

textbox tarih

Katılım
8 Nisan 2005
Mesajlar
77
textboxa yazmış olduğum tarihi hücreye bazen tarih olarak bazende metin olarak kaydediyor kayıt yapmış olduğum hücrlerin formatı tarih olduğu halde bu neden kaynaklanabilir kodlarda hata olabilirmi?
kodlar aşağıdaki gibi;

Private Sub CommandButton1_Click()

Call UserForm_Initialize
sat = Sheets(ComboBox1.Value).[a1:a65536].Find(ComboBox2.Value).Row
Sheets(ComboBox1.Value).Cells(sat, 13) = TextBox2.Value
ComboBox2.Value = ""
TextBox1.Value = ""
TextBox2.Value = ""

End Sub

Private Sub UserForm_Initialize()

TextBox1 = Format(TextBox1, "dd""/""mm""/""yyyy")
TextBox2 = Format(TextBox2, "dd""/""mm""/""yyyy")
For B = 1 To Sheets.Count
ComboBox1.AddItem Sheets(B).Name
Next

End Sub
 
Sheets(ComboBox1.Value).Cells(sat, 13) = TextBox2.Value

Yukarıdaki satırı aşağıdaki gibi değiştirerek deneyin.

Sheets(ComboBox1.Value).Cells(sat, 13) = clng(cdate(TextBox2.Value))

not:Hücrenizi tarih formatına getirmeyi unutmayın. Textboxada tarihi eğer yıl içinde bulunduğumuz yıl ise 5-6 şeklinde (gün-ay) olarak yazmanız yeterlidir.
 
sayın leventm verdiğiniz örnekte olduğu gibi yazdım her zaman tarih olarak atıyor problem çözüldü. fakat textboxı bazen boş bırakmam gerekiyor o zaman

RUN TIME ERROR '13'
TYPE MISMATCH

hatası verdi

sanırım sizin verdiğiniz örnekte textboxta sürekli bir tarih olması şart
 
Bu durumda bir if ile textbox boş ise buna önlem alın. Ã?rneğin;

if textbox2="" then Sheets(ComboBox1.Value).Cells(sat, 13) =""
 
tarihi hücreye tarih olarak atamak için yukarıdaki örneği dosyama uygulamak istedim... kodum aşağıdaki gibi oldu
Sheets("Sayfa2").Range("K16").Value = CLng(CDate(TextBox42.Value))
..sonrasında hesaplama yapan makro kullanıyorum..
Hücreyi boş bıraktığımda hata vermemesi için yukarıdaki if li kodu kullanmak istedim ancak başaramadım.. Nasıl yapmalıyımki hücre boş kaldığında problem çıkmasın?
 
Buna net cevap vermek için hücre boş kaldığında neden hata verdiğini anlamak gerekir yani kodlarınızı vermelisiniz. Ama en kısa yoldan kodlarınızın başına ilk satır olarak "on error resume next" satırını ilave edebilirsiniz.
 
Dosya büyük ekleyemiyorum. Kullandığım kodları yazmaya çalışayım..
Textbox42 ye girdiğim tarih K16 hücresine gidiyor. Kodları
1) Sheets("Sayfa2").Range("K16").Value = CLng(CDate(TextBox42.Value))
2) Private Sub TextBox42_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox42 = Format(TextBox42, "dd""/""mm""/""yyyy")
End Sub
makromun içinde ki
Range("K16").Select
Selection.Copy
Range("I4:I8").Select
ActiveSheet.Paste
kodu kullanıp
Sonrasında http://www.excel.web.tr/viewtopic.php?t=2661 de bulunan hesapla makrosunu çalıştırıyorum.. Hesapla makrosu hata veriyor. Tarihin matin olarak algılandığını düşünüyorum..
 
aşağıdaki gibi yapmak istedim ancak biryerlerde hata yapıyorum... doğrusu nedir?
If TextBox42 = "" Then GoTo 20
Sheets("Sayfa2").Range("K16").Value = CLng(CDate(TextBox42.Value)) '
Range("K16").Select
Selection.Copy
Range("I4").Select
ActiveSheet.Paste
hesapla
Range("L5").Select
Selection.Copy
Range("L11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=Fal
20
TextBox47 = Format(Sheets("Sayfa2").[K21], "###,##0.00")
End Sub
 
Geri
Üst