SpinButton ile Tarih Değiştirme

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Herkese selamlar,
UserForm üzerinde bir TextBox ile bir SpinButton mevcut. SpinButton'un "SpinDown ile SpinDown" özelliği ile TextBox'un içindeki güncel tarihi(gün-ay-yıl) eksiltme ve artırma şeklinde yapabilir mi? Yani UserForm aktif olduğu(açıldığı) zaman TextBox'un içinde güncel tarih belirecek ve SpinButton'un "SpinDown ile SpinDown" özelliği ile güncel tarih, GÜN bazında EKSİLTME ve ARTIRMA şeklinde olacak. Teşekkür ediyorum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

Kod:
Private Sub SpinButton1_SpinDown()
TextBox1 = Format(Date - SpinButton1, "dd.mm.yyyy")
End Sub
 
Private Sub SpinButton1_SpinUp()
TextBox1 = Format(Date + SpinButton1, "dd.mm.yyyy")
End Sub
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Levent Bey teşekkür ediyorum. Ufak bir pürüz söz konusu. SpinButton'un alt tırnağına basıldığı zaman, BÜGÜN'ün tarihi geriye doğru gitsin. Eğer BÜGÜN'ün tarihi 24.11.2006 ise, SpinButton'un alt tırnağına basıldığında, GÜN bazında 23-22-21... şeklinde yapılabilir mi? Yaptığınız uygulamada alt tırnağa basıldığı zaman GÜNÜN TARİHİ sabit kalıyor, yani GÜN tarihi eksiltmiyor. SpinButton'un üst tırnağında sorun yok. GÜNÜN tarihini ileriye götürüyor. Demek istenilen ALT TIRNAKLA, GÜNÜN tarihinden geriye gitmek. Saygı ve sevgilerimi sunuyorum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu durumda aşağıdaki gibi deneyin.

Kod:
Private Sub SpinButton1_SpinDown()
TextBox1 = Format(CDate(TextBox1) - 1, "dd.mm.yyyy")
End Sub
 
Private Sub SpinButton1_SpinUp()
TextBox1 = Format(CDate(TextBox1) + 1, "dd.mm.yyyy")
End Sub
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Şimdi HARİKA oldu. NO SORUN. Efendim, teşekkürlerimi ve saygılarımı arz ediyorum.
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Başka bir alternatif

Private Sub SpinButton1_SpinDown()
TextBox1.Text = Format(CDate(TextBox1.Text) - CDate(SpinButton1.SmallChange), "dd/mm/yyyy")
End Sub

Private Sub SpinButton1_SpinUp()
TextBox1.Text = Format(CDate(TextBox1.Text) + CDate(SpinButton1.SmallChange), "dd/mm/yyyy")
End Sub

Private Sub UserForm_Initialize()
TextBox1.Text = Format(Date, "dd/mm/yyyy")
End Sub
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Bence Takvim denetimi için TextBox yerine DTPicker kontrolünü kullansanız daha iyi edersiniz. Eğer spin buttonlu olmasını isterseniz UpDown özelliğini True yapınız.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Excel 2003 de bu kontrol standart gelmiyor mu? ben başka bir yerden almadım standart olmalı.

2. sorunuz; UpDown belirttiğim kontrolün bir özelliği. Normalde combobox görünümündedir UpDown özelliğini true yaparsanız tarihleri aşağı açılır kutu yerine spinbutton ile kontrol edersiniz
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Bu durumda aşağıdaki gibi deneyin.

Kod:
Private Sub SpinButton1_SpinDown()
TextBox1 = Format(CDate(TextBox1) - 1, "dd.mm.yyyy")
End Sub
 
Private Sub SpinButton1_SpinUp()
TextBox1 = Format(CDate(TextBox1) + 1, "dd.mm.yyyy")
End Sub
Kod:
Private Sub UserForm_Initialize()
txt_isl_tar = Format(CDate(Date), "dd/mm/yyyy")
......
End Sub
Ben Her ihtimale karşı textboxa da Cdate yaptım, Ancak; Cdate nedemektir diye somadan geçemiyecem

Bence Takvim denetimi için TextBox yerine DTPicker kontrolünü kullansanız daha iyi edersiniz. Eğer spin buttonlu olmasını isterseniz UpDown özelliğini True yapınız.
Bir örnek rica etsem, takvimmi açılıyor
bu tarih değerini diğer tarihlerle karşılaştırmak için nasıl kullanılıyor
 
Katılım
17 Ocak 2022
Mesajlar
13
Excel Vers. ve Dili
excel 2019 türkçe
Hocalarım merhaba

Textbox içine aldığımız saat için SpinButton ile saatte yukarı aşağı nasıl kodlamamız gerekir?
 

Korhan Ayhan

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

C++:
Option Explicit

Private Sub SpinButton1_SpinDown()
    On Error GoTo 10
    TextBox1 = Format(CDate(TextBox1) - CDate(Me.SpinButton1.SmallChange / 24), "hh:mm:ss")
    Exit Sub
10  MsgBox "Lütfen saat giriniz!", vbCritical
    TextBox1.SetFocus
    TextBox1 = ""
End Sub

Private Sub SpinButton1_SpinUp()
    On Error GoTo 10
    TextBox1 = Format(CDate(TextBox1) + CDate(Me.SpinButton1.SmallChange / 24), "hh:mm:ss")
    Exit Sub
10  MsgBox "Lütfen saat giriniz!", vbCritical
    TextBox1.SetFocus
    TextBox1 = ""
End Sub
 
Katılım
17 Ocak 2022
Mesajlar
13
Excel Vers. ve Dili
excel 2019 türkçe
Deneyiniz.

C++:
Option Explicit

Private Sub SpinButton1_SpinDown()
    On Error GoTo 10
    TextBox1 = Format(CDate(TextBox1) - CDate(Me.SpinButton1.SmallChange / 24), "hh:mm:ss")
    Exit Sub
10  MsgBox "Lütfen saat giriniz!", vbCritical
    TextBox1.SetFocus
    TextBox1 = ""
End Sub

Private Sub SpinButton1_SpinUp()
    On Error GoTo 10
    TextBox1 = Format(CDate(TextBox1) + CDate(Me.SpinButton1.SmallChange / 24), "hh:mm:ss")
    Exit Sub
10  MsgBox "Lütfen saat giriniz!", vbCritical
    TextBox1.SetFocus
    TextBox1 = ""
End Sub

Teşekkür ederim :)
 
Üst