DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
dostlarım bana ayraçsız tarih giriş makrosu lazım.örn.ben hücreye 121207 yazdığımda o tarih şeklini alması gerek.
sitede bulamadım.başlık var ama dosya yok.
teşekkür ederim
range("a1")=format([COLOR=red]tarih[/COLOR], "ddmmyy")
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo f1
If Not Intersect(Target, [A1:A100]) Is Nothing Then
Target.NumberFormat = "@"
Application.EnableEvents = False
If Len(Target) = 6 Or Len(Target) = 8 Then
arrchar = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
For i = 1 To Len(Target)
For j = 0 To UBound(arrchar)
If Mid(Target, i, 1) = arrchar(j) & "" Then: x = x + 1
Next j
Next i
If x = 0 Then
MsgBox "Yazdığınız değer, tarih için uygun değil", vbCritical, "UYARI"
Target = Empty
Target.Select
GoTo f1
End If
x = 0
Select Case Len(Target)
Case 6:
If IsDate(Left(Target, 2) & "/" & Mid(Target, 3, 2) & "/" & Right(Target, 2)) Then
Target = CDate(Left(Target, 2) & "/" & Mid(Target, 3, 2) & "/" & Right(Target, 2)) * 1
Else
Target = Empty
Target.Select
GoTo f1
End If
Case 8
If IsDate(Left(Target, 2) & "/" & Mid(Target, 3, 2) & "/" & Right(Target, 4)) Then
Target = CDate(Left(Target, 2) & "/" & Mid(Target, 3, 2) & "/" & Right(Target, 4)) * 1
Target = Empty
Target.Select
GoTo f1
End If
End Select
Target.NumberFormat = "dd/mm/yyyy"
Else
MsgBox "Tarih için 6 veya 8 karakterlik veri girmelisiniz", vbCritical, "UYARI"
Target = Empty
Target.Select
GoTo f1
End If
End If
f1:
Application.EnableEvents = True
End Sub
Seyit Tiken Hocam, eğer senin çözüm doğruysa -ki ben bu durumda soruyu yanlış anlamış oluyorum- yanarım yanarım, harcadığım zamanaHücre Biçimlendirme > İsteğe Uyarlanmış > Tür, 00"."00"."0000 şeklinde yazıp deneyiniz.
Peki, 6 basamaklı bir sayı girdiğinizde bunun tarih olup olmadığının kontrolü de yok, bu kodlarda ... 6 ve 8 basamaklı, tamamı sayılardan oluşan ne girerseniz girin tarih olarak algılamakta ...çok işime yaradı fakat hücreye iki haneli sayı da girmem gereken zamanlarda iki haneli sayı giremiyorum.
Sayın fpc, bu yöntem sadece görüntüyü kurtarıyor.Seyit Tiken Hocam, eğer senin çözüm doğruysa -ki ben bu durumda soruyu yanlış anlamış oluyorum- yanarım yanarım, harcadığım zamana(Çözümünüz çok pratik çünkü)
O zaman, kodları aşağıdaki gibi revize edin.Yani üstat mümkünse iki hane sayı girmek bazen gerekiyor.eğer oluyorsa çok sevinirim teşekkürler
ben hücreye ya tarih 6 haneli yada 2 haneli sayı giriyorum.Başka bir şey yazmıyorum
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo f1
If Not Intersect(Target, [A1:A100]) Is Nothing Then
Target.NumberFormat = "@"
Application.EnableEvents = False
If Len(Target) = 6 Or Len(Target) = 8 Then
arrchar = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
For i = 1 To Len(Target)
For j = 0 To UBound(arrchar)
If Mid(Target, i, 1) = arrchar(j) & "" Then: x = x + 1
Next j
Next i
If x = 0 Then
MsgBox "Yazdığınız değer, tarih için uygun değil", vbCritical, "UYARI"
Target = Empty
Target.Select
GoTo f1
End If
x = 0
Select Case Len(Target)
Case 6:
If IsDate(Left(Target, 2) & "/" & Mid(Target, 3, 2) & "/" & Right(Target, 2)) Then
Target = CDate(Left(Target, 2) & "/" & Mid(Target, 3, 2) & "/" & Right(Target, 2)) * 1
Else
Target = Empty
Target.Select
GoTo f1
End If
Case 8
If IsDate(Left(Target, 2) & "/" & Mid(Target, 3, 2) & "/" & Right(Target, 4)) Then
Target = CDate(Left(Target, 2) & "/" & Mid(Target, 3, 2) & "/" & Right(Target, 4)) * 1
Target = Empty
Target.Select
GoTo f1
End If
End Select
Target.NumberFormat = "dd/mm/yyyy"
ElseIf Len(Target) <= 2 Then
[COLOR=green]' Target.NumberFormat = "@"[/COLOR]
Else
MsgBox "2, 6 veya 8 karakterlik veri girmelisiniz", vbCritical, "UYARI"
Target = Empty
Target.Select
GoTo f1
End If
End If
f1:
Application.EnableEvents = True
End Sub