- Katılım
- 15 Mart 2005
- Mesajlar
- 42,314
- Excel Vers. ve Dili
- Microsoft 365 Tr-En 64 Bit
Tarih sütununu sağa hizalamışsınız. Benimde dikkatimden kaçtı. Deneme yaptığımda tarih sağa hizalı olunca düzgün çalıştığını zannettim.
Aşağıdaki satırda CDate konutunun yerini değiştirmek yeterli olacaktır.
ActiveCell = Format(CDate(Tarih), "dd.mm.yyyy"))
Olması gereken;
ActiveCell = CDate(Format(Tarih, "dd.mm.yyyy"))
Sanırım çoklu hücre seçerek tarih yazma işlemi de yapıyorsunuz. Kullandığınız komut bu durumda biraz riskli görünüyor. Tarih olmaması gereken bir alan seçerseniz sıkıntı yaşayabilirsiniz.
Bu sebeple kodu aşağıdaki şekilde revize etmenizde fayda var.
Aşağıdaki satırda CDate konutunun yerini değiştirmek yeterli olacaktır.
ActiveCell = Format(CDate(Tarih), "dd.mm.yyyy"))
Olması gereken;
ActiveCell = CDate(Format(Tarih, "dd.mm.yyyy"))
Sanırım çoklu hücre seçerek tarih yazma işlemi de yapıyorsunuz. Kullandığınız komut bu durumda biraz riskli görünüyor. Tarih olmaması gereken bir alan seçerseniz sıkıntı yaşayabilirsiniz.
Bu sebeple kodu aşağıdaki şekilde revize etmenizde fayda var.
C++:
Public WithEvents CMDB As MSForms.CommandButton
Private Sub CMDB_Click()
Dim Tarih As Date
If Form_Takvim.ComboBox1 = "" Then
MsgBox "Yıl değeri hatalı girilmiş!" & Chr(10) & "Lütfen kontrol ediniz!", vbCritical
Form_Takvim.ComboBox1.SetFocus
Exit Sub
End If
If Form_Takvim.ComboBox2 = "" Then
MsgBox "Ay değeri hatalı girilmiş!" & Chr(10) & "Lütfen kontrol ediniz!", vbCritical
Form_Takvim.ComboBox2.SetFocus
Exit Sub
End If
Tarih = DateSerial(Form_Takvim.ComboBox1, Form_Takvim.ComboBox2.ListIndex + 1, CMDB.Caption)
Unload Form_Takvim
If Selection.Cells.Count = 1 Then
ActiveCell = CDate(Format(Tarih, "dd.mm.yyyy"))
ActiveCell.EntireColumn.AutoFit
Else
With Intersect(Selection, Range("H9:I208"))
.NumberFormat = "dd.mm.yyyy"
.Value = CDate(Tarih)
.EntireColumn.AutoFit
End With
End If
End Sub