Định dạng ngày tháng năm cho combobox và cells trong calendar control 11.0

Liên hệ QC

vanhesing

Thành viên thường trực
Tham gia
12/8/10
Bài viết
223
Được thích
30
Dear All!
Nhờ cả nhà xem file và chỉnh sữa giúp vấn đề ngày tháng năm .
Mình đã search trên rum , tìm hiểu và áp dụng vào excel , nhưng gặp phải 1 vấn đề là định dạng của calendar control không đúng ( đã chỉnh sữa hệ thống theo dd/mm/yyyy) nên khi chọn 1 ngày trên calendar qua cells của sheet BACAOTB thì nó trật lất không search được data tù sheet TONGHOP +-+-+-+.Nhưng khi ra cells tự gõ ngày tháng vào thì nó lại search data được , hic hic , đã mày mò nghiên cứu mấy bữa nay vẫn không tìm ra giải pháp,
Mình cũng đã thử dùng DTPicker nhưng cũng không được và giao diện của nó cũng xấu xí quá nên chọn calendar.
- Một vấn đề nhỏ nữa : hiện tại trên userfrom1 mình dùng đến 2 cái calendar ( 1& 2) -0-/. nhận thấy file nó nặng hơn , nên mong cả nhà cho 1 giải pháp tối ưu hóa calendar đi.
Chân Thành cảm ơn mọi người đã xem .
Kính chúc tất cả thành viên giaiphapexcel một năm mới an khang thịnh vượng , sức khỏa dồi dào .
Thanks
 

File đính kèm

  • ngay thang nam_2.rar
    645.4 KB · Đọc: 321
:(:(:(:(:(:(:(
Nay chủ nhật mọi người đi chơi hết rồi huhuhu
 
Upvote 0
cứu với :( Bác NDU giúp em với . hic hic
 
Upvote 0
Dear All!
Nhờ cả nhà xem file và chỉnh sữa giúp vấn đề ngày tháng năm .
Mình đã search trên rum , tìm hiểu và áp dụng vào excel , nhưng gặp phải 1 vấn đề là định dạng của calendar control không đúng ( đã chỉnh sữa hệ thống theo dd/mm/yyyy) nên khi chọn 1 ngày trên calendar qua cells của sheet BACAOTB thì nó trật lất không search được data tù sheet TONGHOP +-+-+-+.Nhưng khi ra cells tự gõ ngày tháng vào thì nó lại search data được , hic hic , đã mày mò nghiên cứu mấy bữa nay vẫn không tìm ra giải pháp,
Mình cũng đã thử dùng DTPicker nhưng cũng không được và giao diện của nó cũng xấu xí quá nên chọn calendar.
- Một vấn đề nhỏ nữa : hiện tại trên userfrom1 mình dùng đến 2 cái calendar ( 1& 2) -0-/. nhận thấy file nó nặng hơn , nên mong cả nhà cho 1 giải pháp tối ưu hóa calendar đi.
Chân Thành cảm ơn mọi người đã xem .
Kính chúc tất cả thành viên giaiphapexcel một năm mới an khang thịnh vượng , sức khỏa dồi dào .
Thanks
Bạn đưa Calendar vào ComboBox, xong lại từ ComboBox đưa vào cell nên sai là điều tất nhiên rồi ---> Sao bạn không đưa thẳng Calendar vào cell luôn?
Bạn hãy tham khảo thêm bài này:
http://www.giaiphapexcel.com/forum/...ố-khi-làm-việc-với-đối-tượng-Calendar-Control
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn đưa Calendar vào ComboBox, xong lại từ ComboBox đưa vào cell nên sai là điều tất nhiên rồi ---> Sao bạn không đưa thẳng Calendar vào cell luôn?
Chào Anh !
Vì em mún khi chạy form VNBC thì cả workbook đều ẩn , giống như khi mình chạy file chương trình vậy .
Nếu iải quyết được chổ này thì em tạo báo cáo trên from luôn ạ .
Thanks Anh
 
Upvote 0
Chào Anh !
Vì em mún khi chạy form VNBC thì cả workbook đều ẩn , giống như khi mình chạy file chương trình vậy .
Nếu iải quyết được chổ này thì em tạo báo cáo trên from luôn ạ .
Thanks Anh
Thì có sao đâu! workbook có ẩn đi nữa bạn vẫn cho giá trị vào cell được cơ mà
Tóm lại: Có tính toán gì đó thì cứ lấy giá trị trong calendar mà tính... nhất định không được tính toán qua trung gian (khi ấy ComboBox chỉ có tác dụng hiển thị thôi)
 
Upvote 0
Thì có sao đâu! workbook có ẩn đi nữa bạn vẫn cho giá trị vào cell được cơ mà
Tóm lại: Có tính toán gì đó thì cứ lấy giá trị trong calendar mà tính... nhất định không được tính toán qua trung gian (khi ấy ComboBox chỉ có tác dụng hiển thị thôi)
Nhưng nếu workbook ẩn làm sao mình nhập giá trị trực tiếp lên cell được anh ?combobox không qua trung gian được vậy thì nhập ngày bằng tay . hic . em nhớ câu nói của anh , nhập liệu ngày tháng mà bằng textbox thì chỉ có chết .
 
Upvote 0
Nhưng nếu workbook ẩn làm sao mình nhập giá trị trực tiếp lên cell được anh ?combobox không qua trung gian được vậy thì nhập ngày bằng tay . hic . em nhớ câu nói của anh , nhập liệu ngày tháng mà bằng textbox thì chỉ có chết .
Lúc bạn chọn Calendar thì gán nó vào cell luôn
 
Upvote 0
Lúc bạn chọn Calendar thì gán nó vào cell luôn
Em hiểu ý anh theo hướng này :(ko biết phải không )
gán calendar vô cell , khi rê chuột vào cell được gán thì sẽ hiện calendar ?!!!
Em đã làm và em biết cách đó . nhưng giờ em muốn chọn hẳn trên combobox vì khi mở file thì cả workbook ẩn , chỉ tiến hành những thao tác trên Form NVBC thôi ( như là nhập liệu , báo cao,....)
thanks
 
Upvote 0
Em hiểu ý anh theo hướng này :(ko biết phải không )
gán calendar vô cell , khi rê chuột vào cell được gán thì sẽ hiện calendar ?!!!
Em đã làm và em biết cách đó . nhưng giờ em muốn chọn hẳn trên combobox vì khi mở file thì cả workbook ẩn , chỉ tiến hành những thao tác trên Form NVBC thôi ( như là nhập liệu , báo cao,....)
thanks
Bạn chuyển sang dùng DTPicker đi, nó tiện lợi hơn nhiều.

1.jpg
 
Upvote 0
Dear anh doom !
Em cũng có thể làm DTPicker , nhưng giao diện nó xấu quá , em kết cái calendar hơn , hihihihihi.
Nếu không còn cách nào khác thì chắc phải dùng DSTPicker rồi
Thanks
 
Upvote 0
Dear anh doom !
Em cũng có thể làm DTPicker , nhưng giao diện nó xấu quá , em kết cái calendar hơn , hihihihihi.
Nếu không còn cách nào khác thì chắc phải dùng DSTPicker rồi
Thanks

Bạn thử như sau:

Mã:
Private Sub Calendar1_Click()
ComboBox1 = Me.Calendar1.Value
Me.Calendar1.Visible = False
End Sub
Private Sub ComboBox1_DropButtonClick()
  Me.Calendar1.Visible = True
   
End Sub

Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   Range("starday") = Me.Calendar1.Value

End Sub
 
Upvote 0
Bạn thử như sau:

Mã:
Private Sub Calendar1_Click()
ComboBox1 = Me.Calendar1.Value
Me.Calendar1.Visible = False
End Sub
Private Sub ComboBox1_DropButtonClick()
  Me.Calendar1.Visible = True
   
End Sub

Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   Range("starday") = Me.Calendar1.Value

End Sub
Hi Anh !
Em thấy code anh chỉnh cũng rất hay và đúng ý em . Em không hiểu câu lệnh này :private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean),(hum nay ko mang sách theo ^^) Anh có thể giải thích câu đó em hiểu được ko ?
1 vấn đề nữa . code trên chỉ áp dụng cho "starday" liệu em có thể chế biến nó lại sử dụng cho cả "endday" được ko ? để tối ưu hóa calendar , nì hiện giờ em sử dụng đến 2 calendar !!
Thanks Anh
 
Upvote 0
Hi Anh !
Em thấy code anh chỉnh cũng rất hay và đúng ý em . Em không hiểu câu lệnh này :private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean),(hum nay ko mang sách theo ^^) Anh có thể giải thích câu đó em hiểu được ko ?
1 vấn đề nữa . code trên chỉ áp dụng cho "starday" liệu em có thể chế biến nó lại sử dụng cho cả "endday" được ko ? để tối ưu hóa calendar , nì hiện giờ em sử dụng đến 2 calendar !!
Thanks Anh

Cái đó là khi con trỏ thoát ra combo thì chạy code. Bạn thử làm lại như sau nhé.

Mã:
Private Sub Calendar1_Click()
If Len(ComboBox1) = 0 Then
    ComboBox1 = Me.Calendar1.Value
    Range("starday") = Me.Calendar1.Value
Else
    ComboBox2 = Me.Calendar1.Value
    Range("endday") = Me.Calendar1.Value
End If
Me.Calendar1.Visible = False

End Sub
Private Sub ComboBox1_DropButtonClick()
  ComboBox1 = ""
  Me.Calendar1.Visible = True
End Sub

Private Sub ComboBox2_DropButtonClick()
  ComboBox2 = ""
  Me.Calendar1.Visible = True
  
End Sub
 
Upvote 0
Cái đó là khi con trỏ thoát ra combo thì chạy code. Bạn thử làm lại như sau nhé.

Mã:
Private Sub Calendar1_Click()
If Len(ComboBox1) = 0 Then
    ComboBox1 = Me.Calendar1.Value
    Range("starday") = Me.Calendar1.Value
Else
    ComboBox2 = Me.Calendar1.Value
    Range("endday") = Me.Calendar1.Value
End If
Me.Calendar1.Visible = False

End Sub
Private Sub ComboBox1_DropButtonClick()
  ComboBox1 = ""
  Me.Calendar1.Visible = True
End Sub

Private Sub ComboBox2_DropButtonClick()
  ComboBox2 = ""
  Me.Calendar1.Visible = True
  
End Sub
Nó bị lỗi dòng này : Range("starday") = Me.Calendar1.Value
em nghỉ là nó báo lỗi vùng range bị lỗi. hic ...
 
Upvote 0
Nhân tiện đây các bác cho em hỏi, em đã dùng DTpicker rồi nó hiển thị giá trị trên cell và form tốt, nhưng có điều khi em tạo cho một người mới thì giá trị đó nó mặc định giá trị hiện tại các bác ah. em muồn nó chỉ thể thiện " / / " như vậy thôi khi nào mình trỏ chuột vào chọn thì mới hiện giá trí có được không ah.
 
Upvote 0
Nó bị lỗi dòng này : Range("starday") = Me.Calendar1.Value
em nghỉ là nó báo lỗi vùng range bị lỗi. hic ...
Bạn không cần dùng name cho trường hợp này

Mã:
Private Sub Calendar1_Click()
If Len(ComboBox1) = 0 Then
    ComboBox1 = Me.Calendar1.Value
    Range("[B][COLOR=blue]E3[/COLOR][/B]") = Me.Calendar1.Value
Else
    ComboBox2 = Me.Calendar1.Value
    Range("[B][COLOR=blue]E4[/COLOR][/B]") = Me.Calendar1.Value
End If
Me.Calendar1.Visible = False

End Sub
 
Upvote 0
Bạn không cần dùng name cho trường hợp này

Mã:
Private Sub Calendar1_Click()
If Len(ComboBox1) = 0 Then
    ComboBox1 = Me.Calendar1.Value
    Range("[B][COLOR=blue]E3[/COLOR][/B]") = Me.Calendar1.Value
Else
    ComboBox2 = Me.Calendar1.Value
    Range("[B][COLOR=blue]E4[/COLOR][/B]") = Me.Calendar1.Value
End If
Me.Calendar1.Visible = False

End Sub
Em đồng ý là không cần dùng name . nhưng name em dùng còn sử dụng vào việc lọc danh sách để tạo báo cáo nữa . hihihii
Tuy nhiên , em đã chỉnh sữa ok rồi , vẫn dùng name . giờ có thêm bài để học hỏi rồi ^^
Thanks Anh nhiều
Chúc Doom một cái tết sắp tới dồi dào sức khỏe, vạn sự như ý , vâng vâng và vâng vâng
Bữa nào lên TP ghé bình chánh hú em ra nhậu chơi ^^
 
Upvote 0
Web KT
Back
Top Bottom