Hỏi về tạo comment theo điều kiện? (1 người xem)

  • Thread starter Thread starter KUMI
  • Ngày gửi Ngày gửi
Liên hệ QC

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

KUMI

Bụi phấn
Tham gia
17/1/12
Bài viết
564
Được thích
571
Xin chào Thầy Cô và Anh Chị trong GPE!

Để dễ hình dung thì câu hỏi em cũng đã nêu trong file kèm rồi ạ.
Thầy cô và Anh Chị xem file và câu hỏi rồi xem có cách nào không giúp em với ạ.
Em xin cảm ơn!
 
Lần chỉnh sửa cuối:
Xin chào Thầy Cô và Anh Chị trong GPE!

Để dễ hình dung thì câu hỏi em cũng đã nêu trong file kèm rồi ạ.
Thầy cô và Anh Chị xem file và câu hỏi rồi xem có cách nào không giúp em với ạ.
Em xin cảm ơn!

Đây chỉ là CHUYỆN NHỎ
Nhưng để cái chuyện nhỏ ấy thật sự NHỎ thì điều đầu tiên bạn cần làm là SỬA LẠI TỜ LỊCH ---> Giá trị trong tờ lịch phải thật sự là ngày tháng đàng hoàng (chứ không phải chỉ là những con số từ 1 đến 31)
 
Upvote 0
Đây chỉ là CHUYỆN NHỎ
Nhưng để cái chuyện nhỏ ấy thật sự NHỎ thì điều đầu tiên bạn cần làm là SỬA LẠI TỜ LỊCH ---> Giá trị trong tờ lịch phải thật sự là ngày tháng đàng hoàng (chứ không phải chỉ là những con số từ 1 đến 31)

Dạ vâng thưa Thầy con cũng hiểu là dữ liệu phải theo một tiêu chuẩn ạ.
Chính vì vậy con cũng nói ngoài những con số từ 1~31 ra thì có những tháng và năm mà con đã tô màu vàng đó ạ.
Nghĩa là phải dựa vào cả những vùng màu vàng đó Thầy.
Tiêu đề tháng nhìn thì là chữ như vậy thôi nhưng Thầy chỉ vào xem ạ nó cũng là giá trị ngày tháng năm đó ạ.
 
Upvote 0
Dạ vâng thưa Thầy con cũng hiểu là dữ liệu phải theo một tiêu chuẩn ạ.
Chính vì vậy con cũng nói ngoài những con số từ 1~31 ra thì có những tháng và năm mà con đã tô màu vàng đó ạ.
Nghĩa là phải dựa vào cả những vùng màu vàng đó Thầy.
Tiêu đề tháng nhìn thì là chữ như vậy thôi nhưng Thầy chỉ vào xem ạ nó cũng là giá trị ngày tháng năm đó ạ.

Chắc là tôi phải làm từ A đến Z rồi... --=0
Nhưng... hỏi lại: Cột WK ở đâu bạn có vậy? Ý tôi muốn nói những giá trị trong cột này được tính toán thế nào? Đó là WeekNum chăng?
 
Upvote 0
Chắc là tôi phải làm từ A đến Z rồi... --=0
Nhưng... hỏi lại: Cột WK ở đâu bạn có vậy? Ý tôi muốn nói những giá trị trong cột này được tính toán thế nào? Đó là WeekNum chăng?

Oài! Thầy cứ nửa đùa nửa thật làm con nửa mừng nửa lo... --=0

Cột WK sẽ được tính như thế này Thầy ạ(Thầy xem file kèm nhé)!
 
Lần chỉnh sửa cuối:
Upvote 0
Có một số bài nói về lịch và có luôn lịch Âm. Nếu KUMI phát triển thêm lịch âm thì sẽ có rất nhiều ứng dụng. (hẹn giờ, nhắc nhở, ...).
 
Upvote 0
Lấy file này ạ!

Có một số bài nói về lịch và có luôn lịch Âm. Nếu KUMI phát triển thêm lịch âm thì sẽ có rất nhiều ứng dụng. (hẹn giờ, nhắc nhở, ...).
Hi.Cảm ơn Anh Thảo! Em cũng đang mơ đến ý tưởng của Anh đó nhưng khả năg của Em thì chịu @@!
Em xin gửi lại file lịch mới nhất có cả công thức để Thầy NDu và mọi người tìm cách giúp em nhé!
 

File đính kèm

Upvote 0
Hi.Cảm ơn Anh Thảo! Em cũng đang mơ đến ý tưởng của Anh đó nhưng khả năg của Em thì chịu @@!
Em xin gửi lại file lịch mới nhất có cả công thức để Thầy NDu và mọi người tìm cách giúp em nhé!

Tôi đoán chắc rằng cột WK ấy chính là Weeknum và cũng chắc rằng công thức trong file (của ai không biết) là.. trật lất ---> Có thể kiểm tra bằng hàm Weeknum hoặc cũng có thể kiểm tra bằng.. mắt thường:
- Tuần 25 bắt đầu từ ngày 25/8/2013 đến ngày 31/8/2013
- Vậy thì ngày 1/9/2013 đến ngày 7/9/2013 phải thuộc tuần thứ 26, đúng không? Nhưng theo công thức trong file của bạn lại ghi đây cũng là tuần 25 ---> Hóa ra tuần 2514 ngày à? Vô lý!
Tôi sẽ giúp bạn tính lại cột này nhưng cũng xin làm rõ vài điểm:
- Cột này có thật sự cần không? (tại làm biếng tính)
- Trong file bạn có nói rằng:
Điều kiện là những ngày tháng trong Sheet NgayGhiChu phải đúng với ngày và tháng năm tại vùng màu vàng trong sheet lich
Lưu ý chổ màu đỏ xem chừng không ổn. Lấy ví dụ:
- Hôm nay (ngày 9/11/2013) gia đình tôi có em bé. Vậy tôi ghi vào sổ: 9/11/2013 --- Mới sinh em bé (tên gì gì đó)
- Thế thì ngày này năm sau (năm 2014) trong lịch phải có chổ ghi chú "SN em bé gì gì đó" chứ, đúng không?
- Nhưng theo như yêu cầu của bạn: Đúng ngày, đúng tháng, đúng năm thì ngày này năm sau sẽ chẳng có ghi chú nào xuất hiện cả (không đúng năm) ---> bạn nghĩ sao về vấn đề này?
 
Upvote 0
Tôi đoán chắc rằng cột WK ấy chính là Weeknum và cũng chắc rằng công thức trong file (của ai không biết) là.. trật lất
Vâng thưa Thầy có lẽ đó chính là cột Weeknum như Thầy nói đấy ạ. Đúng vậy đây không phải là file con lập mà là sưu tầm trên GPE. Con đã đưa nó vào cùng file công việc của mình từ lâu lên file là gì và đường dẫn ở đâu con cũng hổng có biết nữa.. nếu biết con cũng đã trích dẫn lên ngay từ đầu rồi mà đỡ khỏi mất công giải thích nhiều ạ.


Tôi sẽ giúp bạn tính lại cột này nhưng cũng xin làm rõ vài điểm:
- Cột này có thật sự cần không? (tại làm biếng tính)

Cái cột này con cũng không cần gì cho công việc cả và cũng không mấy khi để ý đến nó nếu có thì trông đẹp hơn ạ. Nếu không có thì cũng không sao đâu Thầy ạ.

Lưu ý chổ màu đỏ xem chừng không ổn. Lấy ví dụ:
- Hôm nay (ngày 9/11/2013) gia đình tôi có em bé. Vậy tôi ghi vào sổ: 9/11/2013 --- Mới sinh em bé (tên gì gì đó)
- Thế thì ngày này năm sau (năm 2014) trong lịch phải có chổ ghi chú "SN em bé gì gì đó" chứ, đúng không?
- Nhưng theo như yêu cầu của bạn: Đúng ngày, đúng tháng, đúng năm thì ngày này năm sau sẽ chẳng có ghi chú nào xuất hiện cả (không đúng năm) ---> bạn nghĩ sao về vấn đề này?
Đoạn này đúng là xem lại con thấy mình nhầm tai hại quá đúng như Thầy đã chỉ ra đó ạ. Chỉ là ngày tháng thôi còn bỏ năm đi ạ.+-+-+-+
 
Upvote 0
Tôi đoán chắc rằng cột WK ấy chính là Weeknum và cũng chắc rằng công thức trong file (của ai không biết) là.. trật lất ---> Có thể kiểm tra bằng hàm Weeknum hoặc cũng có thể kiểm tra bằng.. mắt thường:
- Tuần 25 bắt đầu từ ngày 25/8/2013 đến ngày 31/8/2013
- Vậy thì ngày 1/9/2013 đến ngày 7/9/2013 phải thuộc tuần thứ 26, đúng không? Nhưng theo công thức trong file của bạn lại ghi đây cũng là tuần 25 ---> Hóa ra tuần 2514 ngày à? Vô lý!
Tôi sẽ giúp bạn tính lại cột này
Tuần 35 Thầy nhỉ...Hì.
Thì ra công thức bị sai ở những tuần nào cuối cùng của tháng mà có đủ 7 ngày thì sang tháng mới thì vẫn đấy.
Cũng có 2 tuần 48. Hix!
Cảm ơn Thầy đã chỉ ra chỗ sai ạ!
 
Lần chỉnh sửa cuối:
Upvote 0
Tạm thời con mới chỉ nghĩ ra công thức tính cho cột WK thế này không biết có chuẩn cho các năm không nữa.
Thầy kiểm tra thử xem con làm vậy có ổn không ạ,con Thấy kết quả có khả quan hơn, nhưng mà công thức thì hởi điêu điêu hay sao ấy ạ. ..--=0.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Tạm thời con mới chỉ nghĩ ra công thức tính cho cột WK thế này không biết có chuẩn cho các năm không nữa.
Thầy kiểm tra thử xem con làm vậy có ổn không ạ,con Thấy kết quả có khả quan hơn, nhưng mà công thức thì hởi điêu điêu hay sao ấy ạ. ..--=0.

Thôi, bỏ luôn cái cột WK để bảng tính đở rườm rà
Tôi làm cho bạn phiên bản đầu tiên.
Lưu ý:
- File gồm 2 sheet: Sheet Anniversary để ghi những ngày kỷ niệm và Sheet Calendar để hiện lịch
- Tại sheet Anniversary, bạn phải ghi ngày tháng cho đúng chuẩn Date và phải đúng ngày, đúng tháng, đúng năm
- Tôi đã tính toán để Comment chỉ xuất hiện cho những sự kiện đã qua thôi. Ví dụ:
* Sinh nhật ai đó nhằm ngày 12/6/1985. Vậy thì Comment chỉ xuất hiện từ 12/6/1986 trờ về sau (đương nhiên vì 1984 người đó chưa ra đời)
*Ví dụ tiếp ngày 2/9/1945 là ngày Quốc Khánh. Vậy thì khi xuất lịch năm 1944 sẽ không có Comment cho sự kiện Quốc Khánh (đương nhiên vì khi ấy nước ta chưa độc lập)
vân vân...

- Thay đổi năm tại cell B2, lịch sẽ cập nhật theo
- Ngày nhỏ nhất có thể tính toán được là ngày 1/1/1901 (vì khả năng của Excel)


------------------
Test thử xem có gì trục trặc không nha
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Test thử xem có gì trục trặc không nha
Mình dùng thử thì vì Shapes("WordArt 14") đè lên ô Merge B2 nên khi thay đổi năm ở B2 thì text của Shapes (muốn dùng Shape viết chữ cho đẹp) nó ko thay đổi. Vậy thêm 1 tí xíu ...
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$2" Then
    [COLOR=#ff0000]Shapes("WordArt 14").TextEffect.Text = "Calendar " & [B2][/COLOR]
    modCal.Main
    Target.Select
  End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Thôi, bỏ luôn cái cột WK để bảng tính đở rườm rà
Tôi làm cho bạn phiên bản đầu tiên.
Lưu ý:
- File gồm 2 sheet: Sheet Anniversary để ghi những ngày kỷ niệm và Sheet Calendar để hiện lịch
- Tại sheet Anniversary, bạn phải ghi ngày tháng cho đúng chuẩn Date và phải đúng ngày, đúng tháng, đúng năm
- Tôi đã tính toán để Comment chỉ xuất hiện cho những sự kiện đã qua thôi. Ví dụ:
* Sinh nhật ai đó nhằm ngày 12/6/1985. Vậy thì Comment chỉ xuất hiện từ 12/6/1986 trờ về sau (đương nhiên vì 1984 người đó chưa ra đời)
*Ví dụ tiếp ngày 2/9/1945 là ngày Quốc Khánh. Vậy thì khi xuất lịch năm 1944 sẽ không có Comment cho sự kiện Quốc Khánh (đương nhiên vì khi ấy nước ta chưa độc lập)
vân vân...

- Thay đổi năm tại cell B2, lịch sẽ cập nhật theo
- Ngày nhỏ nhất có thể tính toán được là ngày 1/1/1901 (vì khả năng của Excel)


------------------
Test thử xem có gì trục trặc không nha

WOA!!Chuẩn chuẩn Thầy ạ! Thật là kỳ diệu...Hihi. Cảm ơn Thầy!

Phiên bản sau là thêm phần nhắc việc đi Thầy. Nghĩa là đến giờ nó sẽ hiện thông báo nội dung cần làm.
Ơ nhưng mà nếu làm vậy thì phải mở file thường xuyên thì mới biết được ...@@!
Thôi con chả biết. Thầy có hứng hay ý tưởng gì thì sản xuất tiếp nhé. Còn file này con thấy thích rồi. hihi,Tks Thầy.
 
Upvote 0
Thầy ơi cái đoạn code tạo comment là những đoạn nào vậy?
Hix..Con xem không hiểu gì cả..

Phiền Thầy có thể tách code riêng ra để con tìm hiểu được không ạ.
Nghĩa là trong file của Thầy đang có 2 loại code:
+1 loại code dùng để tạo lịch(không tạo ghi chú)
+1 loại code dùng để tìm ngày kỷ niệm rồi tạo ghi chú.
Con muốn tách 2 loại này ra ví dụ như 2 file khác nhau để tìm hiểu rồi vận dụng ạ.
Cảm ơn Thầy.
 
Upvote 0
Mình dùng thử thì vì Shapes("WordArt 14") đè lên ô Merge B2 nên khi thay đổi năm ở B2 thì text của Shapes (muốn dùng Shape viết chữ cho đẹp) nó ko thay đổi. Vậy thêm 1 tí xíu ...
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$2" Then
    [COLOR=#ff0000]Shapes("WordArt 14").TextEffect.Text = "Calendar " & [B2][/COLOR]
    modCal.Main
    Target.Select
  End If
End Sub
Bạn đưa chuột chọn vào WordArt sẽ thấy WordArt có công thức =B2

Capture.JPG





Mà cell B2 mình đã Custom Format theo code: "Calendar "#
Vậy bây giờ cứ gõ bất cứ chỉ số năm nào vào B2 thì ta sẽ nhìn thấy kết quả "Calendar " Chỉ số năm ---> WordArt thì liên kết với B2 nên B2 thế nào thì WordArt sẽ nhìn thấy y chang vậy. Tức không cần phải thêm code nào cả. Bạn đổi WordArt thành Shape thì cứ làm theo nguyên tắc này là được
------------------------
Thầy ơi cái đoạn code tạo comment là những đoạn nào vậy?
Hix..Con xem không hiểu gì cả..

Phiền Thầy có thể tách code riêng ra để con tìm hiểu được không ạ.
Nghĩa là trong file của Thầy đang có 2 loại code:
+1 loại code dùng để tạo lịch(không tạo ghi chú)
+1 loại code dùng để tìm ngày kỷ niệm rồi tạo ghi chú.
Con muốn tách 2 loại này ra ví dụ như 2 file khác nhau để tìm hiểu rồi vận dụng ạ.
Cảm ơn Thầy.
Code này nè bạn:
Mã:
Sub CreateMCalendar(ByVal InYear As Long, ByVal InMonth As Long, ByVal Target As Range)
  Dim aCal(1 To 6, 1 To 7)
  Dim lFirst As Long, lEnd As Long, lDate As Long
  Dim lR As Long, lC As Long, n As Long
  Dim sDate As String
  On Error Resume Next
  lFirst = DateSerial(InYear, InMonth, 1)
  lEnd = DateSerial(InYear, InMonth + 1, 0)
  [COLOR=#0000cd]With Target.Resize(6, 7)
    .ClearComments
    .ClearContents
    .NumberFormat = "d"
  End With[/COLOR]
  [COLOR=#ff0000]For lDate = lFirst To lEnd
    lC = Weekday(lDate)
    sDate = Format(lDate, "mm-dd")
    With Target.Offset(lR, lC - 1).Resize(1, 1)
      [/COLOR][COLOR=#006400].Value = lDate[/COLOR][COLOR=#ff0000]
      If dic.Exists(sDate) Then
        n = dic.Item(sDate)
        [/COLOR][COLOR=#800080]If CLng(aMem(n, 1)) <= lDate Then .AddComment aMem(n, 2)[/COLOR][COLOR=#ff0000]
      End If
    End With
    If lC = 7 Then lR = lR + 1
  Next[/COLOR]
End Sub
- Chổ màu xanh dương: Xoá Comment, xoá nội dung và Custom Format cho vùng dạng "d"
- Chổ màu đỏ + Màu xanh lá + Màu tím: Điền lịch và Add Comment. Trong đó
* Màu xanh lá: Điều lịch
* Màu tím: Chèn Comment​
Lưu ý: Vòng lập for là duyệt từ ngày đầu tháng đến cuối tháng nhé (của 1 tháng nào đó)
Tuỳ theo yêu cầu mà chia code ra riêng. Trường hợp của bạn để chung lại thì tốc độ mới nhanh (vòng lập duyệt đến đâu thì ta làm luôn 1 lượt các thứ). Nếu chia code ra riêng, mỗi code phải tốn 1 vòng lập (sẽ chậm hơn)
 
Upvote 0
Bạn đưa chuột chọn vào WordArt sẽ thấy WordArt có công thức =B2
Hic. Hôm qua dùng office 2003 ở máy khác (Cài phần bổ trợ của Microsoft để đọc file xlsm, xlsx...) thì nó có 1 quá trình convert nên mở file không thấy có công thức của WordArt. Nên mình nghĩ đưa vào code cho chắc ăn. Tks bạn nhé
 
Upvote 0

Cảm ơn Thầy ạ!
-----------------------------------
Đây chỉ là CHUYỆN NHỎ
Nhưng để cái chuyện nhỏ ấy thật sự NHỎ thì điều đầu tiên bạn cần làm là SỬA LẠI TỜ LỊCH ---> Giá trị trong tờ lịch phải thật sự là ngày tháng đàng hoàng (chứ không phải chỉ là những con số từ 1 đến 31)

Có một số bài nói về lịch và có luôn lịch Âm. Nếu KUMI phát triển thêm lịch âm thì sẽ có rất nhiều ứng dụng. (hẹn giờ, nhắc nhở, ...).

Nhân đây theo ý của Thầy và Anh Thảo đã nói ở trên, thì con cũng thiết kế lại một file lịch định dang lịch dương theo định dang ngày tháng năm, và kèm theo cả lịch âm nữa.
Còn về phần tạo sự kiện ghi chú như các ngày kỷ niệm thành comment thì con pó tay rồi, chắc phải phiền đến Thầy thôi ạ.Tạm thời con chỉ làm bằng định dạng CF.
Thầy và mọi người xem file kèm nhé!
-------------------------------------------------------
Hix, nhưng mà file hơi ì ạch chắc là do nhiều CF "khủng" quá...@@
(chẳng lẽ lại xoá bớt CF ở những tháng không cần thiết)!
Đây là giao diện của em nó ạ (Ảnh trên phiên bản Office 2010):
Lich_AmDuong.jpg
 

File đính kèm

Upvote 0
Hix, nhưng mà file hơi ì ạch chắc là do nhiều CF "khủng" quá...@@
(chẳng lẽ lại xoá bớt CF ở những tháng không cần thiết)!
Đây là giao diện của em nó ạ (Ảnh trên phiên bản Office 2010):

Nhận xét đầu tiên: Quá màu mè ---> Điều tối kỵ của Excel
Nhận xét thứ hai: File nặng như cục đá. Mở file lần thứ nhất khoảng 5 phút mà con chuột cứ quay hoài, chán quá tắt luôn (phải tắt bằng Task Manager). Mở lần thứ 2 mới vào được
Nhận xét thứ ba (quan trọng): Bạn đã làm hoàn chỉnh cả thì khó cho ai có thể chỉnh sửa giúp bạn (vì phải mất công đọc hết toàn bộ code và hiểu nó)... và nếu là tôi thì thà rằng tôi làm từ đầu còn khoẻ hơn là sửa
Kết luận: Nếu bạn ưng ý với cái version này thì chắc là bạn tự mình chỉnh sửa thôi
 
Upvote 0
Nhận xét đầu tiên: Quá màu mè ---> Điều tối kỵ của Excel
Nhận xét thứ hai: File nặng như cục đá. Mở file lần thứ nhất khoảng 5 phút mà con chuột cứ quay hoài, chán quá tắt luôn (phải tắt bằng Task Manager). Mở lần thứ 2 mới vào được
Nhận xét thứ ba (quan trọng): Bạn đã làm hoàn chỉnh cả thì khó cho ai có thể chỉnh sửa giúp bạn (vì phải mất công đọc hết toàn bộ code và hiểu nó)... và nếu là tôi thì thà rằng tôi làm từ đầu còn khoẻ hơn là sửa
Kết luận: Nếu bạn ưng ý với cái version này thì chắc là bạn tự mình chỉnh sửa thôi
Hix! Con không có ý này thưa Thầy!
Con cũng đã nói rõ là theo góp ý của Thầy và anh Thảo nên con mới tạo cái file này.
Nhưng với năng lực của con thì chỉ có thể cop nhặt kiến thức để làm được bấy nhiêu đó thôi.
Nguyên nhân file nặng thì con cũng đã nói rõ là do quá nhiều công thức nặng trong định dạng CF(Nếu bỏ đi những CF của các ngày âm lịch thì cũng đỡ năng đi rất nhiều).
Con chỉ post nên với mục đích là để cần sự bổ sung, góp ý và tìm cách khắc phục.
Mong thầy đừng hiểu lầm rằng nhìn thông tin họ tên hay sđt kia là hay nghĩ người lập đã ưng ý ạ. Đó chỉ là hình thức trang trí cho file đỡ trống trải thôi ạ.

Dù sao chủ đề này cũng đã đáp ứng được yêu cầu của con (và cần đến nó thì con mới có nhu cầu nhờ trợ giúp),còn những vấn đề khác là phát sinh ngoài ý muốn.
Nếu Thầy và mọi người có hứng thủ thì xin cứ tiếp tục!
Cảm ơn Thầy đã dành thời gian và tâm huyết để giúp đỡ.
Chủ đề này con xin phép dừng lại ở đây!+-+-+-++-+-+-++-+-+-++-+-+-++-+-+-++-+-+-++-+-+-++-+-+-++-+-+-++-+-+-+
 
Upvote 0
Nguyên nhân file nặng thì con cũng đã nói rõ là do quá nhiều công thức nặng trong định dạng CF(Nếu bỏ đi những CF của các ngày âm lịch thì cũng đỡ năng đi rất nhiều).

Đúng vậy!
Mình vẫn giữ nguyên các ngày kỷ niệm của bạn,chỉ bỏ bớt đi những định dạng thừa.
Và một số đoạn code đóng mở file mình cũng đã bỏ đi.
Do vậy file chỉ hơi chậm chạp một chút khi cập nhật số năm thôi!
 

File đính kèm

Upvote 0
Mong thầy đừng hiểu lầm rằng nhìn thông tin họ tên hay sđt kia là hay nghĩ người lập đã ưng ý ạ. Đó chỉ là hình thức trang trí cho file đỡ trống trải thôi ạ.

Ấy ấy... tôi đâu có xấu bụng đến vậy!
Chỉ tại vì tôi thấy code nhiều quá nên... ngợp và làm biếng thôi. Ẹc... Ẹc...
(thường thì ai cũng cảm thấy làm mới khỏe hơn sửa mà)
 
Upvote 0

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

Back
Top Bottom