Điền ngày tháng (2 người xem)

  • Thread starter Thread starter bbc
  • Ngày gửi Ngày gửi

Người dùng đang xem chủ đề này

bbc

Thành viên hoạt động
Tham gia
13/1/07
Bài viết
112
Được thích
23
Chào cả nhà,
Em mún input một ngày vào 1 cell, nhưng không mún input bằng cách đánh từ bàn phím mà chỉ click vào ô đó sẽ hiện ra một calendar để mình chọn ngày trong đó í.
Em cảm ơn nhiều ạ
 

File đính kèm

  • calendar.JPG
    calendar.JPG
    18.1 KB · Đọc: 244
Bạn xem file nhé, tôi dùng VBA. Bạn click vào ô bất kỳ của cột A nhé.
 

File đính kèm

Upvote 0
Okie rùi bạn ơi, cho mình hỏi thêm chút xíu, chỉ click vào ô B4 để hiện calendar thui thì thay targetcolumn bằng giá trị gì. Nếu chỉ click một cái vào ô B4 thôi thì làm thế nào hả bạn.
Thank u !
 
Upvote 0
Bạn sửa lại thành:
If Target.Address = "$B$4" Then UserForm1.Show
ANH TUẤN
 
Upvote 0
Cho mình hỏi, double click vào cell B4 thì nhảy ra calender thì mình hiểu, nhưng khi chọn 1 ngày trong calendar thì làm sao cho ngày đó nhảy vào B4 nằm?
 
Upvote 0
ptm0412 đã viết:
Cho mình hỏi, double click vào cell B4 thì nhảy ra calender thì mình hiểu, nhưng khi chọn 1 ngày trong calendar thì làm sao cho ngày đó nhảy vào B4 nằm?

Mình sẽ thay Private Sub Calendar1_DblClick() bằng Private Sub Calendar1_Click() bác ạ
 
Upvote 0
Chuyện bên lề!

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A3:A15")) Is Nothing Then _
    Application.Speech.Speak "This is " & Target.Value

End Sub
Bạn thử chép đoạn mã sau vô 1 sheetName nào đó & nhập thử một ngày bất kỳ (dạng mẽo!) vô vùng 'A3:A15' sẽ nghe phát âm trên loa máy tính!
 
Upvote 0
SA_DQ đã viết:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A3:A15")) Is Nothing Then _
Application.Speech.Speak "This is " & Target.Value
 
End Sub
Bạn thử chép đoạn mã sau vô 1 sheetName nào đó & nhập thử một ngày bất kỳ (dạng mẽo!) vô vùng 'A3:A15' sẽ nghe phát âm trên loa máy tính!

Nếu em đặt Speak là "Cam duoc dung vao" thì thía nào nhỉ bác
 
Upvote 0
Nếu là bên thư giản,

Câu lệnh nên là:
bbc đã viết:
If Not Intersect(Target, Range("A35:IV35")) Is Nothing Then _
Application.Speech.Speak Target.Value & " Cam duoc dung vao"
thì OK không chừng !?!
 
Upvote 0
minhlev đã viết:
Bạn xem file nhé, tôi dùng VBA. Bạn click vào ô bất kỳ của cột A nhé.

oh, lấy đối tượng ở calandar ở đâu vậy nhỉ???

Excel của tigertiger ko thấy, trước tigertiger có sd ở VB thôi,
 
Upvote 0
Bác vào Excel --> nhấn tổ hợp Alt+F11 --> Insert UserForm --> nháy chuột phải vào Toolbox (xuất hiện đồng thời với UserForm) --> Additional Controls --> tìm và chọn Calendar Control là được.
 
Upvote 0
Bạn minhlev này... người ta mới học mà bạn chơi quả bom hơi to... hi.. hi... E rằng khó lòng theo kịp
Bài học đầu tiên là từ trong file đơn giản này đây nhé... và từ đó phát triển lên tùy thích
ANH TUẤN
 

File đính kèm

Upvote 0
minhlev đã viết:
Bác vào Excel --> nhấn tổ hợp Alt+F11 --> Insert UserForm --> nháy chuột phải vào Toolbox (xuất hiện đồng thời với UserForm) --> Additional Controls --> tìm và chọn Calendar Control là được.

Không thấy lun minhlev ah,
có Addittional control nhưng chọn vào k thấy xuất hiện gì (màn hình nháy cái rồi đứng im lun) hay là trong máy phải cài VB mới có thêm đối tượng này nhỉ, Vô lý - dùng file của thiết kế trước vẫn hiện bình thường mà, lạ quá? giúp giải đáp cho tigertiger nhé,
 
Upvote 0
tigertiger đã viết:
Không thấy lun minhlev ah,
có Addittional control nhưng chọn vào k thấy xuất hiện gì (màn hình nháy cái rồi đứng im lun) hay là trong máy phải cài VB mới có thêm đối tượng này nhỉ, Vô lý - dùng file của thiết kế trước vẫn hiện bình thường mà, lạ quá? giúp giải đáp cho tigertiger nhé,
Nó nằm trong thanh Control Toolbox ấy Tigertiger à... Tên của biểu tượng là More Control, biểu tượng có hình cái búa... Bấm vào nó, chọn Calendar Control 10.0
Còn như vẫn ko tìm thấy thì có nghĩa là máy bạn bị thiếu file OCX, phải tải trên mạng về đễ thêm vào (Nó là ActiveX control)
 
Upvote 0
Công việc của mình thương xuyên dùng EX và nhất là ngày tháng. Mình muốn nhập ngày 17/12/2007 nhưng ko cần nhập dấu"/" chỉ cần nhập 171207 vào một ô nào đó thì nó sẽ hiển thị là: 17/12/2007. Bác nào biết giúp em với. Thank
 
Upvote 0
Có đấy... trên GPE có nói nhiều, tuy nhiên cho đến nay thì dường như chưa có giãi pháp nào thật hoàn hảo đâu bạn à
Nè... thay vì gõ 120207, bạn gõ 17/02 cũng dc vậy (của bạn 6 ký tự, của tôi có 5 ký tự)... hi.. hi...
 
Upvote 0
binhson2002 đã viết:
Công việc của mình thương xuyên dùng EX và nhất là ngày tháng. Mình muốn nhập ngày 17/12/2007 nhưng ko cần nhập dấu"/" chỉ cần nhập 171207 vào một ô nào đó thì nó sẽ hiển thị là: 17/12/2007. Bác nào biết giúp em với. Thank

Thắc mắc tuyệt đấy, em đang mong chờ reply, nếu ko xài tạm Control Toolbox . Hiiii/-*+/
 
Upvote 0
Trước tiên bạn chỉnh Regional Language Settings trong Control Panel, phần ngày tháng năm thành format dd/mm/yy
Tiếp theo chạy code này xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim r As Integer
Dim d, m, y
  If Target.Column = 1 And Target.Row < 100 Then
     r = Target.Row
     y = Int(Target / 10000)
     m = Int((Target - y * 10000) / 100)
       If (Target - y * 10000 - m * 100) < 30 Then
          d = Target - y * 10000 - m * 100 + 2000
       Else
          d = Target - y * 10000 - m * 100
       End If
    Target = DateValue(y & "/" & m & "/" & d)
    Target.NumberFormat = "dd/mm/yyyy"
  End If
End Sub
Code có tác dụng trong vùng A1:A100... tuy nhiên đây chỉ là thử nghiệm.. chưa chắc đã chính xác đâu nha!
ANH TUẤN
 
Upvote 0
Hoặc là code này từ nước ngoài:
PHP:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim DateStr As String
On Error GoTo EndMacro
If Application.Intersect(Target, Range("A1:A100")) Is Nothing Then
    Exit Sub
End If
If Target.Cells.Count > 1 Then
    Exit Sub
End If
If Target.Value = "" Then
    Exit Sub
End If
Application.EnableEvents = False
With Target
If .HasFormula = False Then
    Select Case Len(.Formula)
        Case 4 ' e.g., 9298 = 2-Sep-1998
            DateStr = Left(.Formula, 1) & "/" & _
            Mid(.Formula, 2, 1) & "/" & Right(.Formula, 2)
        Case 5 ' e.g., 11298 = 12-Jan-1998 NOT 2-Nov-1998
            DateStr = Left(.Formula, 1) & "/" & _
                Mid(.Formula, 2, 2) & "/" & Right(.Formula, 2)
        Case 6 ' e.g., 090298 = 2-Sep-1998
            DateStr = Left(.Formula, 2) & "/" & _
                Mid(.Formula, 3, 2) & "/" & Right(.Formula, 2)
        Case 7 ' e.g., 1231998 = 23-Jan-1998 NOT 3-Dec-1998
            DateStr = Left(.Formula, 1) & "/" & _
                Mid(.Formula, 2, 2) & "/" & Right(.Formula, 4)
        Case 8 ' e.g., 09021998 = 2-Sep-1998
            DateStr = Left(.Formula, 2) & "/" & _
                Mid(.Formula, 3, 2) & "/" & Right(.Formula, 4)
        Case Else
            Err.Raise 0
    End Select
    .Formula = DateValue(DateStr)
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "You did not enter a valid date."
Application.EnableEvents = True
End Sub
Và còn rất nhiều.. rất nhiều món ăn chơi khác, thậm chí có hẳn cả 1 Tool mà có lần tôi đã gữi lên diển đàn (giờ ko nhớ nó nằm chổ nào nữa)
ANH TUẤN
 
Upvote 0
Cảm ơn các Pác, em thử xem sao!!
Công việc kế toán đụng tới ngày tháng liên tục, nên nhập rất lâu vì thế phải có giải pháp nào đó để làm giảm bớt công việc nhập.
 
Upvote 0
Cám ơn bạn bbc đã đưa câu hỏi rất hay (cái tôi đang cần) và trả lời các bạn minhlev, anhtuan1066 cũng rất cụ thể, dễ làm theo. Cám ơn tất cả.

Diễn đàn này thật hay và bổ ích!
 
Upvote 0
vậy em muốn tạo 1 form, trên form có 1 command chọn đến calender, và 1 textbox. vậy em phải làm thế nào để khi chọn command, chọn ngày tháng thì ngày tháng đó hiện lên textbox và lưu vào một ô nào đó trong sheet. mong các anh chị chỉ giáo.
 
Upvote 0
vậy em muốn tạo 1 form, trên form có 1 command chọn đến calender, và 1 textbox. vậy em phải làm thế nào để khi chọn command, chọn ngày tháng thì ngày tháng đó hiện lên textbox và lưu vào một ô nào đó trong sheet. mong các anh chị chỉ giáo.
Chọn ngày tháng trên Calendar thì ngày tháng hiện trên TextBox, rồi từ TextBox lại lưu vào 1 cell trong bảng tính? Sao rối vậy? Lý ra khi khi chọn ngày tháng trên Calendar thì đưa giá trị vào cell luôn chứ! TexBox trong trường hợp này có phải là dư ko?
 
Upvote 0
Chọn ngày tháng trên Calendar thì ngày tháng hiện trên TextBox, rồi từ TextBox lại lưu vào 1 cell trong bảng tính? Sao rối vậy? Lý ra khi khi chọn ngày tháng trên Calendar thì đưa giá trị vào cell luôn chứ! TexBox trong trường hợp này có phải là dư ko?
Em dự tính là sẽ cho sheet chứa ngày tháng đó ẩn, vậy khi chọn ngày tháng trên form thì sẽ hiện trên textbox cho người sử dụng biết mình đang chọn ngày đó, nếu nhầm thì có thể thay đổi lại.
 
Upvote 0
Nếu dùng kiều VBA thì em lại dung không được, Em muốn dùng lịch bằng công thức bình thường có được không
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom