• DİKKAT

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

Type Mismatch Hatası

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
777
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Merhaba arkadaşlar. Öncelikle herkesin geçmiş Kurban Bayramı mübarek olsun.

Ekte gönderdiğim dosyada değişken tanımlama hatası veriyor. Hepsini Variant olarak tanımlasam da aynı hatayı veriyor. Rica etsem yardımcı olabilir misiniz.
 

Ekli dosyalar

Merhaba, kodunuz aşağıdaki satırda hata veriyor.
bul değeri boş geliyor.

ilk_kutu_no = Right(bul, 1)
 
Bu tür hataları anlayabilmek için F8 ile adım adım kodları izlemeniz gerekir.
 
If TypeName(c) = "textbox" Then

yukarıdaki bölümü aşağıdakiyle değiştir

If TypeName(c) = "TextBox" Then
 
bunuda düzelt

Yanlış = Case "ÇArşamba"
Doğru = Case "Çarşamba"
 
burasıda yanlış

yanlış = caal olustur
doğru =Call olustur
 
Merhaba arkadaşlar.

Eklediğim dosyada gün isimlerinin üzerine çift tıklama yapıldığında, A1 hücresine tarihi yazdırmak istiyorum ama yanlış bir tarih yazıyor. Rica etsem yardımcı olabilir misiniz.

Yardım edecek arkadaşlar için Textbox10 form açıldığında görünmüyor ama Userformu sağa doğru genişletince görünüyor. gün isimlerinde sadece ik iki sıra için kod girilmiştir.
 

Ekli dosyalar

Böyle dene
Range("a1") = CDate(Format(t8.Text, "00") & "." & Format(TextBox10.Text, "00") & "." & Format(TextBox1.Text, "0000"))
 
Alttaki kodu formunuzun kod bölümüne uygulayınız.

Rich (BB code):
Sub My_Date(TB As MSForms.TextBox)
    Range("A1") = CDate(DateSerial(TextBox1, TextBox10, TB.Text))
End Sub

Günlere ait her TextBox için aşağıdaki gibi kodu uygulayınız. Kalın fontlu bölüme dikkat ederek uygulayınız.

Rich (BB code):
Private Sub t1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    My_Date t1
End Sub
 
Alttaki kodu formunuzun kod bölümüne uygulayınız.

Rich (BB code):
Sub My_Date(TB As MSForms.TextBox)
    Range("A1") = CDate(DateSerial(TextBox1, TextBox10, TB.Text))
End Sub

Günlere ait her TextBox için aşağıdaki gibi kodu uygulayınız. Kalın fontlu bölüme dikkat ederek uygulayınız.

Rich (BB code):
Private Sub t1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    My_Date t1
End Sub

Teşekkürler Korhan bey.
 
Merhaba arkadaşlar.

Eklediğim dosyada dtp formundaki Textbox2'de ayları artırırken bir sorun yok Aralık ayına kadar geliyor fakat ayları geriye doğru ilerletirken Şubat'ta iken tıklama yapıldığında Ocak ayına gelmeden "Belirtilen nesne bulunamadı" diye hata veriyor. Rica etsem bunun için de yardımcı olabilir miisiniz.
 

Ekli dosyalar

Rich (BB code):
Dim c, bul As Variant
For Each c In dtp.Controls
If TypeName(c) = "TextBox" Then
If c.Text = "1" Then
bul = c.Name
Exit For
End If
End If
Next c

kırmızı bölüme eklemelisiniz
 
Rich (BB code):
Dim c, bul As Variant
For Each c In dtp.Controls
If TypeName(c) = "TextBox" Then
If c.Text = "1" Then
bul = c.Name
Exit For
End If
End If
Next c

kırmızı bölüme eklemelisiniz

Çok teşekkürler Halit bey. İyi akşamlar.
 
Merhaba arkadaşlar.

Eklediğim dosyada tarih seçici de günlerin üzerine çift tıklandığında Hangi Userform1 üzerindeki hangi Textbox'a tarihin yazılması gerekiyor ise yazıyor. Ama Bu örnek dosya ve 1 Userform ve 3 adet Textbox var. Benim üzerinde çalıştığım dosyada ise 14 ayrı Userform da 31 ayrı Textbox'a tarih girilmesi gerekiyor.
Örnek dosyada tarihin yazılması gereken Textboxları, tarih seçici formdaki gün isimlerinin bulunduğu Textboxlarda tek tek kodunu yazmak gerekiyor.
Üzerinde çalıştığım dosyada 14 ayrı formda tarihi girişi yapılacak 31 ayrı Textbox var. Bu duruma göre tarih seçici adlı formdaki gün isimlerinin olduğu 42 adet Textbox'a 14 adet form ve 31 adet Textbox'un kodlarını tek tek yazmam gerekiyor. Bu kodları daha kısa yoldan yapmak mümkün değil midir.

Mesela Userform5 deki Textbox3'e tarih girileceği zaman "tarihgirilecektext" değişkenine Userform5 ve Textbox3 ü atayıp, tek bir değişken üzerinden tarih girilecek 31 adet Textbox'a yazdırma yapamaz mıyız.

Yardımcı olursanız çok sevinirim.
 

Ekli dosyalar

Geri
Üst