Soru Günü almak

Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Merhaba arkadaşlar

Textbox1 de 22.01.2023

şeklinde tarih yazıyor.

buradan günü , ayı ve yılı ayrı birer değişkene nasıl alabilirim ?

Dim gnn as date
Dim ayy as date
Dim yll as date

gnn = Format(Text1.Text, "dd")
ayy = Format(Text1.Text, "mm")
yll = Format(Text1.Text, "yyyy")


bu şekilde yaptım . fakat olmadı.


yardımcı arkadaşa şimdiden teşekkürler.
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
572
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
Değişkenlerini tarih olarak tanimladiniz, sayı değeri almak istiyorsunuz ona göre tanımlayın
Örnek Dim gg as long gibi
 
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Tanımladım. Evet sayı olarak aldı. Ancak olmadı...

şöyleki :

bir fonksiyonum var ayın son gününü bulan.

Function AyinSonGunu(ByVal tarih As Date) As Byte
Dim SonGun As Byte
SonGun = DatePart("d", DateAdd("d", -1, DateAdd("m", 1, _
DateAdd("d", -DatePart("d", tarih) + 1, Date))))
AyinSonGunu = SonGun
End Function





Kullanımı :

tr1 = AyinSonGunu(gnn) & "." & Month(ayy) & "." & Year(yll)
SonGun = WeekdayName(Weekday(tr1, 0), False, 0)
MsgBox "Girilen tarihdeki ay " & AyinSonGunu(gnn) & _
" gün ve Son günü : " & SonGun, , "Tarih : " & Text1.Text


bu şekilde kullandığımızda doğru sonucu vermiyor .
 

Korhan Ayhan

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

C++:
Option Explicit

Function MONTHLASTDAY(My_Date As Date)
    MONTHLASTDAY = WorksheetFunction.EoMonth(My_Date, 0)
End Function
 
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
@Korhan Ayhan

üstteki vermiş olduğum "Kullanım" koduna göre düzenleme yapmalıyım.

Teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi kullanabilirsiniz.

C++:
Option Explicit

Function MONTHLASTDAY(My_Date As Date)
    MONTHLASTDAY = WorksheetFunction.EoMonth(My_Date, 0)
End Function

Sub Test()
    Dim Tarih As Date
    
    Tarih = Date

    MsgBox "Girilen ayın son günü ; " & Day(MONTHLASTDAY(Tarih)) & vbCrLf & vbCrLf & Date
End Sub
 
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
@Korhan Ayhan

Korhan bey, kodu vb6 da kullanacağım. Bu sebepten alttaki fonksiyon hata veriyor.

Function MONTHLASTDAY(My_Date As Date)
MONTHLASTDAY = WorksheetFunction.EoMonth(My_Date, 0)
End Function
 

Korhan Ayhan

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

C++:
Option Explicit

Function AyinSonGunu(ByVal Tarih As Date) As Byte
    Dim SonGun As Byte
    SonGun = DatePart("d", DateAdd("d", -1, DateAdd("m", 1, _
    DateAdd("d", -DatePart("d", Tarih) + 1, Date))))
    AyinSonGunu = SonGun
End Function

Sub Test()
    Dim Tarih As Date
   
    Tarih = Date

    MsgBox "Girilen ayın son günü ; " & AyinSonGunu(Tarih) & vbCrLf & vbCrLf & Tarih
End Sub
 
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Bugünün tarihi girilirse sonuç doğru çıkıyor. Ancak Tarih değişkenine "20.10.2000" gibi bir tarih girildiğinde hatalı sonuç veriyor.

Tarih = Date
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben sizin kullandığınız fonksiyonun doğru çalıştığını düşünmüştüm.

Umarım önerim VB6 da çalışır.

C++:
Option Explicit

Function AyinSonGunu(ByVal Tarih As Date) As Byte
    Dim Songun As Variant
    Tarih = DateAdd("m", 1, Tarih)
    Songun = "01/" & DatePart("m", Tarih) & "/" & DatePart("yyyy", Tarih)
    Songun = CLng(CDate(Songun)) - 1
    AyinSonGunu = Day(Songun)
End Function

Sub Test()
    Dim Tarih As Date
    
    Tarih = "20.10.2000"

    MsgBox "Girilen ayın son günü ; " & AyinSonGunu(Tarih) & vbCrLf & vbCrLf & Tarih
End Sub
 
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
@Korhan Ayhan bey , Benim göndermiş olduğum ve sizin son göndermiş olduğunuz fonksiyon date olarak girildiğinde düzgün çalışıyor.

ama tarihi manuel girdiğimizde, Fonksiyonlar düzgün çalışmıyor...

yada şöyle söyleyeyim;

günü sabit tutup, ay ve yılı değiştirdiğimizde sizin göndermiş olduğunuz kod çalışıyor.

******************************************************

Göndermiş olduğunuz kod hatasız çalışıyor hocam. bir yerde hata yapmışım.


Çok Teşekkür ediyorum. elinize sağlık. Tamamdır...
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
VB6 da deneme şansım yok.

Aşağıdaki gibi bir fonksiyon buldum. Belki işinize yarar.

C++:
Function LastDayOfMonth(My_Date)
   LastDayOfMonth = Day(DateAdd("d", -1, DateAdd("m", 1, DateAdd("d", 1 - DatePart("d", My_Date), My_Date))))
End Function
 
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
VB6 da deneme şansım yok.

Aşağıdaki gibi bir fonksiyon buldum. Belki işinize yarar.

C++:
Function LastDayOfMonth(My_Date)
   LastDayOfMonth = Day(DateAdd("d", -1, DateAdd("m", 1, DateAdd("d", 1 - DatePart("d", My_Date), My_Date))))
End Function

Bu kodda düzgün çalışıyor.

Tamamdır... Elinize sağlık hocam.
 
Üst