Nhờ các anh giúp em về vụ calendar trong ô cell này với

Liên hệ QC

cuongsinh1

Thành viên mới
Tham gia
3/12/11
Bài viết
19
Được thích
0
Nội dung cần giúp như nào em ghi trong file đính kèm. Không cần calendar phải giống trong hình ( hoặc giống được thì càng tốt--=0), ưu tiên cách thức thực hiện như thế trên ô cell.
Xin cảm ơn các anh rất nhiều!!
 

File đính kèm

  • Book111.xls
    55.5 KB · Đọc: 30
Cảm ơn bạn mình cũng đã làm được như thế. Nhưng mình muốn khi click vào ô cell thì nó hiện ra như này ( file ảnh kèm theo) thì phải làm như nào??

Trong máy bạn có Control này thì sẽ dùng được như Calendar, tuy nhiên cái datepicker này nó phải cài đặt đấy.
 
Upvote 0
Cảm ơn bạn mình cũng đã làm được như thế. Nhưng mình muốn khi click vào ô cell thì nó hiện ra như này ( file ảnh kèm theo) thì phải làm như nào??

Bạn có thể sử dụng File này.
Để nhập 1 ngày vào bất kỳ ô nào bạn chọn vào ô muốn nhập và click vào Shapes Mở lịch chọn 1 ngày, nó sẽ hiện lịch ra, bạn click chọn ngày cần nhập nó sẽ tự nhập ngày đó vào ô bạn vừa chọn. Tên sheet bạn sửa lại theo nhu cầu công việc.
Nếu bạn insert 1 sheet mới thì Click chọn vào ô muốn nhập, trên menu chọn Tools > Macro > Macro chọn MoLich_Click và nhấn nút Run nó sẽ hiện lịch ra, bạn click chọn ngày cần nhập nó sẽ tự nhập ngày đó vào ô bạn vừa chọn. Tên sheet bạn sửa lại theo nhu cầu công việc.
Tải File theo Link.
https://www.box.com/s/3dea02d8da568189442a
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn có thể sử dụng File này.
Người khác khó có thể sử dụng File này ví nó có PW???

Nếu bạn insert 1 sheet mới thì Click chọn vào ô muốn nhập, trên menu chọn Tools > Macro > Macro chọn MoLich_Click và nhấn nút Run nó sẽ hiện lịch ra, bạn click chọn ngày cần nhập nó sẽ tự nhập ngày đó vào ô bạn vừa chọn
Chỉ cần copy AutoShape và paste vào sheet mới insert là được!
 
Upvote 0

File đính kèm

  • Calendar.rar
    38.8 KB · Đọc: 50
Upvote 0
Hiện nay là tháng 8, nếu muốn chọn tháng trước (VD tháng 7) hoặc tháng sau (VD tháng 9) thì làm sao chọn được hả anh???
Mình có lần đã thử nhưng không dùng cũng không am hiểu rõ, nhưng mình có thể dùng sự kiện click và lấy giá trị của Calendar để làm điều kiện cho các bước khác.

H.Van xem thử file này rồi góp ý thêm nha
 

File đính kèm

  • Calendar-2.rar
    38.4 KB · Đọc: 25
Lần chỉnh sửa cuối:
Upvote 0
Mình có lần đã thử nhưng không dùng cũng không am hiểu rõ, nhưng mình có thể dùng sự kiện click và lấy giá trị của Calendar để làm điều kiện cho các bước khác.

H.Van xem thử file này rồi góp ý thêm nha
Code của bạn thế này:
Mã:
Private Sub Calendar1_Click()
  Dim arr(), thangketiep, ngaycuoithang, ngayhientai, ngay, i
  ngayhientai = Calendar1.Value
  With Sheet1.ComboBox1
    .Visible = False
    .Visible = True
    .Left = ActiveCell.Left
    .Top = ActiveCell.Top
    .Width = ActiveCell.Width
    .Height = ActiveCell.Height
    .Value = Format(ngayhientai, "ddd,dd/mm/yy")
  End With
  [COLOR=#ff0000]thangketiep = IIf(Month(ngayhientai) = 12, 0, 1)
  If thangketiep = 1 Then
    ngaycuoithang = DateSerial(Year(ngayhientai), Month(ngayhientai) + thangketiep, 1) - 1
  Else
    ngaycuoithang = DateSerial(Year(ngayhientai), Month(ngayhientai) + 1, 1) - 1
  End If
  Sheet1.ComboBox1.Clear
  ReDim arr(1 To Day(ngaycuoithang), 1 To 1)
  For i = 1 To Day(ngaycuoithang)
     ngay = i & "/" & Month(ngayhientai) & "/" & Year(ngayhientai)
     arr(i, 1) = Format(ngay, "dd/mmm/yy")
  Next[/COLOR]
  Sheet1.ComboBox1.List = arr
  Sheet1.ComboBox1 = Format(ngayhientai, "dd/mm/yy")
End Sub
Đoạn màu đỏ ở trên rất cồng kềnh
Để ý sẽ thấy ràng:
ngaydauthang = ngayhientai - Day(ngayhientai) + 1
ngaycuoithang = DateAdd("m", 1, ngaydauthang) - 1

Vậy ta For từ ngaydauthang đến ngaycuoithang là được rồi
Ví dụ:
Mã:
[COLOR=#ff0000]ngaydauthang[/COLOR] = ngayhientai - Day(ngayhientai) + 1
ngaycuoithang = DateAdd("m", 1, ngaydauthang) - 1
Sheet1.ComboBox1.Clear
ReDim arr(1 To Day(ngaycuoithang))
For i = ngaydauthang To ngaycuoithang
  [COLOR=#ff0000]n = n + 1[/COLOR]
  arr(n) = Format(i, "dd/mmm/yy")
Next
(Với nngaydauthang là biến Long nha)
----------------
ờ.. mà nghĩ lại thấy cũng kỳ thiệt! Calendar rồi tại sao lại phải có combobox để làm quái gì nhỉ?
 
Lần chỉnh sửa cuối:
Upvote 0
ndu96081631; ---------------- ờ.. mà nghĩ lại thấy cũng kỳ thiệt! Calendar rồi tại sao lại phải có combobox để làm quái gì nhỉ?[/QUOTE đã viết:
Em thấy kỳ kỳ nên tính không tham gia nhưng buồn quá nên làm thử cho vui, nhờ vậy mới hiểu thêm phần nào cái vụ tính ngày cuối của 1 tháng nào đó.
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Em thấy kỳ kỳ nên tính không tham gia nhưng buồn quá nên làm thử cho vui, nhờ vậy mới hiểu thêm phần nào cái vụ tính ngày cuối của 1 tháng nào đó.
Để tôi làm 1 cái DTPicker giống như tác giả đã yêu cầu nhé

Capture.JPG
























1> Đầu tiên phải vẽ thằng DTPicker này lên bảng tính
2> Nếu máy tính thiếu control này thì phài cài (đã nói nhiều lần rồi)
3> Code:
PHP:
Private Sub DTPicker1_CloseUp()
  ActiveCell.Value = DTPicker1.Value
End Sub
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  On Error GoTo ExitSub
  With Sheet1.DTPicker1
    If Not Intersect(Range("B1:B20"), Target) Is Nothing Then
      If Target.Count = 1 Then
        .Visible = True
        .Left = Target.Left: .Top = Target.Top
        .Width = Target.Width: .Height = Target.Height
        .Format = 3: .CustomFormat = "dd-MMM-yyyy"
      End If
    Else
ExitSub:
      .Visible = False
    End If
  End With
End Sub
Lưu ý rằng ta phải dùng sự kiện CloseUp chứ không nên dùng sự kiện Change... Vì nếu dùng Change thì ta sẽ không thể nhập 2 lần liên tiếp cùng 1 ngày được
 

File đính kèm

  • DTPicker_Example.xls
    35.5 KB · Đọc: 30
Upvote 0
Web KT
Back
Top Bottom