iki tarihide datepickerden seçmek

BYSERTTAS

Altın Üye
Katılım
9 Ekim 2012
Mesajlar
142
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2021 TR 32 Bit
Altın Üyelik Bitiş Tarihi
22-01-2026
Herkese iyi aksamlar diliyorum.
ekli dosyada beceremediğim bazı noktalar var .Ögrenmek amaçlı denemeler yapıyorum. forumdan copy-paste yöntemiyle bir şeyler yapmaya çalıştım becerebildiğim kadarıyla. Yapmaya çalıştığım ve yapamadıklarım şunlar. yardımlarınızı beklerim.
  • User Formdakı Ilk Endeks tarıhı (Tılktarıh) ıle Son Endeks (Tsontarıh) Tarıhını Takvımden gırmek ıstıyorum. Ilkını yaptım ıkıncısını yapamadım.
  • Ikıncısı ıcın ayrı bır modül mu olmalı yada nasıl yapabılırım.
  • Tarıh Formatlarının Örnek(01.01.2023) seklınde gıremıyorum. Gun ve Ay hanesı ıkı basamaklı olmalı Önce Gun Sonra Ay Sonrada Yıl seklınde olmalı
  • 2/22/2023 yerıne 22.02.2023 seklınde olmalı
  • Tarih girildikten sonra formun otomatik kapatılması (Dtp. isimli form kapatılsın Faturalar Formu Acık kalsın
 

Ekli dosyalar

Son düzenleme:
Katılım
9 Mart 2023
Mesajlar
5
Excel Vers. ve Dili
Tamamı
Herkese iyi aksamlar diliyorum.
ekli dosyada beceremediğim bazı noktalar var .Ögrenmek amaçlı denemeler yapıyorum. forumdan copy-paste yöntemiyle bir şeyler yapmaya çalıştım becerebildiğim kadarıyla. Yapmaya çalıştığım ve yapamadıklarım şunlar. yardımlarınızı beklerim.
  • User Formdakı Ilk Endeks tarıhı (Tılktarıh) ıle Son Endeks (Tsontarıh) Tarıhını Takvımden gırmek ıstıyorum. Ilkını yaptım ıkıncısını yapamadım.
  • Ikıncısı ıcın ayrı bır modül mu olmalı yada nasıl yapabılırım.
  • Tarıh Formatlarının Örnek(01.01.2023) seklınde gıremıyorum. Gun ve Ay hanesı ıkı basamaklı olmalı Önce Gun Sonra Ay Sonrada Yıl seklınde olmalı
  • 2/22/2023 yerıne 22.02.2023 seklınde olmalı
  • Tarih girildikten sonra formun otomatik kapatılması (Dtp. isimli form kapatılsın Faturalar Formu Acık kalsın

Sonuncu sorunuza yanıt vererek başlayalım. Nitekim dosyayı indiremediğim için detayları göremiyorum, ancak verdiğim örnek kodları kendi çalışmanıza kolayca uyarlayabilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then ' A1 hücresi değiştirildiğinde
        Dim DtpForm As Object ' Dtp adlı formu kapatmak için
        Set DtpForm = VBA.UserForms("Dtp")
        DtpForm.Hide ' formu gizleyin veya kapatın

        Dim FaturaForm As Object ' Fatura adlı formu açık tutmak için
        Set FaturaForm = VBA.UserForms("Faturalar")
        FaturaForm.Show ' formu gösterin
    End If
End Sub
Bu kod, belirtilen A1 hücresinde herhangi bir değişiklik yapıldığında (yani bir tarih girildiğinde), Dtp adlı formu kapatır ve Faturalar adlı formu açık tutar.

Bu kodu Tarihin değişeceği sayfanın modülünde yer alan Worksheet_Change olay prosedürüne eklediğiniz zaman çalışır.
 
Katılım
9 Mart 2023
Mesajlar
5
Excel Vers. ve Dili
Tamamı
Diğer sorunuz,

Kod:
Sub TarihGirisi()
    Dim Tarih As String ' kullanıcının girdiği tarih
    Dim DtpFormat As String ' dönüştürülecek tarih biçimi
    Dim TarihDtp As Date ' dönüştürülmüş tarih
   
    DtpFormat = "dd.mm.yyyy" ' dönüştürülecek tarih biçimi
   
    Tarih = InputBox("Tarih girin:", "Tarih Girişi") ' kullanıcıdan tarih girişi istenir
   
    If IsDate(Tarih) Then ' girdi bir tarih ise
        TarihDtp = CDate(Tarih) ' tarihi dönüştür
        Range("A1").Value = Format(TarihDtp, DtpFormat) ' hücreye dönüştürülmüş tarihi yaz
    Else
        MsgBox "Geçersiz tarih girişi!" ' girdi bir tarih değilse hata mesajı göster
    End If
End Sub
 
Katılım
9 Mart 2023
Mesajlar
5
Excel Vers. ve Dili
Tamamı
Evet, ikinci tarihi de takvimden seçmek için ayrı bir modül oluşturmanız gerekiyor. Bu modülde de takvim kontrolü kullanabilirsiniz.

İlk önce, DateTimePicker kontrolünü User Form'a eklemelisiniz. İkinci tarihi seçmek için de bir buton ekleyebilirsiniz. Butona tıklandığında, takvimden tarih seçmek için ikinci bir form açılacak.

İlk tarihi seçmek için oluşturduğunuz kodu bir alt-prosedür olarak taşıyabilirsiniz. Bu şekilde, kodunuzu tekrar kullanmak zorunda kalmadan ikinci tarihi seçebilirsiniz.

Aşağıdaki kod örneği, User Form'da iki tarih seçmenize olanak tanır:

Kod:
Private Sub UserForm_Initialize()
    ' Form açıldığında, tarih girişleri için takvim kontrolüne varsayılan tarihleri atayın
    Me.DtpTilkTar.Value = Date
    Me.DtpSonTar.Value = Date
End Sub

Private Sub BtnIkinciTarih_Click()
    ' İkinci tarihi seçmek için takvim formunu açın
    TakvimForm2.Show
End Sub

Private Sub BtnTarihKaydet_Click()
    ' İlk tarihi seçmek için alt-prosedürü çağırın
    Call TarihSec(Me.DtpTilkTar)
    
    ' İkinci tarihi seçmek için alt-prosedürü çağırın
    Call TarihSec(TakvimForm2.DtpIkinciTar)
    
    ' Seçilen tarihleri hücrelere yazın
    Range("A1").Value = Me.DtpTilkTar.Value
    Range("B1").Value = TakvimForm2.DtpIkinciTar.Value
    
    ' Formları kapatın
    Me.Hide
    TakvimForm2.Hide
End Sub

Private Sub TarihSec(Dtp As MSComctlLib.DTPicker)
    ' Takvimden tarih seçmek için kullanılan alt-prosedür
    Dtp.ShowDatePicker = True
    Dtp.Show
End Sub
Bu kodda, UserForm_Initialize alt-prosedüründe, tarih girişleri için varsayılan tarihler atanır. İlk tarihi seçmek için BtnTarihKaydet_Click alt-prosedürü kullanılır. Bu alt-prosedür, önce TarihSec alt-prosedürünü kullanarak ilk tarihi seçmenizi sağlar, sonra da BtnIkinciTarih_Click alt-prosedürü ile ikinci tarihi seçmek için ikinci bir form açar.

İkinci formun kodu ayrı bir modül olarak aşağıdaki gibi olabilir:

Kod:
Private Sub DtpIkinciTar_Change()
    ' Seçilen tarihi formda gösterin
    Me.TxtIkinciTar.Value = Format(Me.DtpIkinciTar.Value, "dd.mm.yyyy")
End Sub

Private Sub UserForm_Initialize()
    ' Form açıldığında, takvim kontrolüne varsayılan tarihi atayın
    Me.DtpIkinciTar.Value = Date
End Sub
 

BYSERTTAS

Altın Üye
Katılım
9 Ekim 2012
Mesajlar
142
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2021 TR 32 Bit
Altın Üyelik Bitiş Tarihi
22-01-2026
Benim İcin okadar zor ki bunları uygulamak. dasya uzerınde degisiklikleri yaparsanız kolayca ogrenebilirim. Dosyayı yenıden yukluyorumç
 

Ekli dosyalar

Üst