Xuất hiện nội dung gợi ý khi di chuột đến ô dữ liệu

Liên hệ QC

Cá ngừ F1

( ͡° ͜ʖ ͡°)
Thành viên BQT
Moderator
Tham gia
1/1/08
Bài viết
2,579
Được thích
3,715
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Quan hệ.. và quan hệ..
Xin chào các anh/chị.

Trong bảng Pivottable khi di chuột đến chỉ tiêu nào đó xuất hiện các nội dung về chỉ tiêu đó, ví dụ:

image001.jpg

Câu hỏi như sau: Giờ ở một bảng dữ liệu bình thường, khi di chuyển chuột đến một ô nào đó (chưa cần kích chọn ô) thì xuất hiện bảng gợi ý (nội dung gợi ý có thể tham chiếu từ một ô khác) thì Code như thế nào ?

Cảm ơn các anh/chị.
 
Anh Tuân đề cập tới Baloon tooltip ạ? Anh code cho em học hỏi với.

Có vẻ như ý tưởng bài #13 bắt sự kiện Selection_Change rồi gán vào đó 1 cái Shape.

Đưa lên Ballool tooltip thì không khó nhưng nếu dùng kiểu vòng lặp để tìm Range từ vị trí chuột thì nặng máy lắm, chạy đơ đơ, chưa kể còn phải tính toán, trích lọc điều kiện để có mảng số liệu hiển thị... Nói chung cái này làm cũng được nhưng tốc độ máy chạy rất chậm nên anh không dám đầu tư nghiên cứu :D
 
Upvote 0
Đưa lên Ballool tooltip thì không khó nhưng nếu dùng kiểu vòng lặp để tìm Range từ vị trí chuột thì nặng máy lắm, chạy đơ đơ, chưa kể còn phải tính toán, trích lọc điều kiện để có mảng số liệu hiển thị... Nói chung cái này làm cũng được nhưng tốc độ máy chạy rất chậm nên anh không dám đầu tư nghiên cứu :D
Trước đây có bài về magnifier tìm toạ độ trên ảnh rồi phóng lên tốc độ cũng nhanh lắm, không biết đối tượng Range này có khác biệt nhiều không anh? Anh có thể giải thích cho em kỹ hơn một chút được không?
 
Upvote 0
Xin chào các anh/chị.

Trong bảng Pivottable khi di chuột đến chỉ tiêu nào đó xuất hiện các nội dung về chỉ tiêu đó, ví dụ:

View attachment 179622

Câu hỏi như sau: Giờ ở một bảng dữ liệu bình thường, khi di chuyển chuột đến một ô nào đó (chưa cần kích chọn ô) thì xuất hiện bảng gợi ý (nội dung gợi ý có thể tham chiếu từ một ô khác) thì Code như thế nào ?

Cảm ơn các anh/chị.
Trên diễn đàn có cả đống baì viết về các tạo sự kiện MouseMove trên cell. Cứ tìm đọc rồi theo đó mà cải tiến thôi
 
Upvote 0
Lúc thì chớp tắt textbox được 1 2 lần, rồi dính chặt vào chuột, rồi ... cứ thế cái TB chạy theo, bất kể ở đâu, rồi ... mỗi lúc một khác ^^
Trên máy tôi quay cũng mấy phát, mấy phút nhưng chưa bị sao, cái này làm chơi để tìm hiểu thôi bạn. :D
 
Upvote 0
Trước đây có bài về magnifier tìm toạ độ trên ảnh rồi phóng lên tốc độ cũng nhanh lắm, không biết đối tượng Range này có khác biệt nhiều không anh? Anh có thể giải thích cho em kỹ hơn một chút được không?

Tốc độ chậm vì hệ thống luôn phải đi lấy tọa độ chuột X,Y rồi so sánh có thuộc tọa độ Range không, đây là vấn đề làm chậm máy, vùng bảng tính không hề có giới hạn gì nên chuột phải tính tất cả. Giải pháp tối ưu hơn cái này là không dùng Shape của Excel vì nó có quá nhiều thuộc tính tương tác trên sheet sẽ thêm chậm, phải dùng lập trình API mở Tooltip của Windows. Lại là lập trình API là cao cấp rồi. Còn đơn giản thì dùng userform và thay đổi thiết lập cho đẹp.
 
Upvote 0
ToolTip_3.JPG ToolTip_2.JPG
Hi anh. Nếu làm để ra số liệu theo đúng nghiệp vụ tính toán chỉ định và cho vào comment thì dễ.
Việc này khó khủng khiếp :): Đưa chuột trên ô, không chọn thì đã hiển thị comment - Đây không hoạt động theo comment vốn có của Excel thông thường.

Em đã bảo khó thì chắc chắn rất nhiều người khóc ạ :D
Cái này anh chỉ dùng 2 cái Shapes (giống như dùng UserForm) sau đó cho nó ActiveCell thì nó hiện ra nhưng quan trọng là tính toán theo Cell chỉ định (cái này anh cũng chỉ mới làm thử) nhưng chưa biết áp dụng cho nó vào việc gì (vì công việc của anh không dùng đến Excel) nên chỉ nghiên cứu chơi thôi.

Trong hình, anh cho nó chọn Cell có số thứ tự là 6561 thì vẫn bình thường (nói chung là không ảnh hưởng đến tốc độ). Anh thử dùng Comment thì tốc độ rất chậm.




 
Lần chỉnh sửa cuối:
Upvote 0
View attachment 179735
Cái này anh chỉ dùng 2 cái Shapes (giống như dùng UserForm) sau đó cho nó ActiveCell thì nó hiện ra nhưng quan trọng là tính toán theo Cell chỉ định (cái này anh cũng chỉ mới làm thử) nhưng chưa biết áp dụng cho nó vào việc gì (vì công việc của anh không dùng đến Excel) nên chỉ nghiên cứu chơi thôi.

Trong hình, anh cho nó chọn Cell có số thứ tự là 6561 thì vẫn bình thường (nói chung là không ảnh hưởng đến tốc độ). Anh thử dùng Comment thì tốc độ rất chậm.

Vâng, anh làm nhìn đẹp và chuyên nghiệp đấy, nhưng bằng chọn ô, chủ topic lại muốn đưa chuột vào thì hiển thị nên nó mới ảnh hưởng tốc độ đó anh.
 
Upvote 0
Tốc độ chậm vì hệ thống luôn phải đi lấy tọa độ chuột X,Y rồi so sánh có thuộc tọa độ Range không, đây là vấn đề làm chậm máy, vùng bảng tính không hề có giới hạn gì nên chuột phải tính tất cả. Giải pháp tối ưu hơn cái này là không dùng Shape của Excel vì nó có quá nhiều thuộc tính tương tác trên sheet sẽ thêm chậm, phải dùng lập trình API mở Tooltip của Windows. Lại là lập trình API là cao cấp rồi. Còn đơn giản thì dùng userform và thay đổi thiết lập cho đẹp.
Cảm ơn sự chỉ giáo của anh.

Như bài #18 em có thử API để lấy vị trí trỏ chuột và so sánh vị trí Cell để cho hiện Chú thích trên Shape nhưng cũng đã nhận được phản hồi Crash tại #22. Vậy là giải pháp tối ưu cho câu hỏi anh Cá Ngừ bằng API dường như không mấy hiệu quả.
 
Upvote 0
Không biết Cá ngừ F1 làm vụ này tới đâu rồi?
Tôi xin đưa giải pháp đơn giản, dựa vào bài toán MouseMove trên cell đã có trên diễn đàn rồi cải tiến lại: Di chuột đến đâu thì chèn comment vào đó, chỉ vậy thôi
(Vui lòng xem file đính kèm)
Cách dùng:
- Mở file
- Bấm nút "Start Mouse Over" để khởi động
- Rê chuột vào vùng màu vàng (vùng này được xác định trong code) sẽ xuất hiện tooltip
- Bấm nút "Stop Mouse Over" để tắt


Untitled.jpg


-----------------------------------------------------
Nội dung xuất hiện trong tooltip các bạn có thể tùy biến
Code dạng ý tưởng, vẫn chưa hoàn thiện!
 

File đính kèm

  • TooltipOnMouseOver.xlsm
    27.1 KB · Đọc: 66
Upvote 0
Không biết Cá ngừ F1 làm vụ này tới đâu rồi?
Tôi xin đưa giải pháp đơn giản, dựa vào bài toán MouseMove trên cell đã có trên diễn đàn rồi cải tiến lại: Di chuột đến đâu thì chèn comment vào đó, chỉ vậy thôi
(Vui lòng xem file đính kèm)
Cách dùng:
- Mở file
- Bấm nút "Start Mouse Over" để khởi động
- Rê chuột vào vùng màu vàng (vùng này được xác định trong code) sẽ xuất hiện tooltip
- Bấm nút "Stop Mouse Over" để tắt


View attachment 179826


-----------------------------------------------------
Nội dung xuất hiện trong tooltip các bạn có thể tùy biến
Code dạng ý tưởng, vẫn chưa hoàn thiện!
Nói chung nhìn xong choáng váng luôn, hjk
 
Upvote 0
file của bác ndu rất hay đó !
hàm "GetCursorPos" là 1 hàm API trả về vị trí pixel của con trỏ chuột trên màn hình windown ,
còn hàm ActiveWindow.RangeFromPoint là hàm của exel , để đổi từ pixcel của con trỏ chuột ra vị trí của Cell đang tham chiếu vào !

mình xin chỉnh lại code , xóa các đoạn ko cần thiết để các bác ko rành code tiện nghiên cứu !
cách code hoạt động , dùng hàm set thời gian SetTimer ( hàm này để làm cái đồng hồ í ) ,
cứ 1 phần trăm giây sẽ tự động gọi hàm TimerProc , hàm TimerProc sẽ tự kiểm tra vị trí trỏ chuột và tô màu !
http://www.mediafire.com/file/pak0a1corqumspt/TooltipOnMouseOver++2.xlsm
 
Lần chỉnh sửa cuối:
Upvote 0
file của bác ndu rất hay đó !
hàm "GetCursorPos" là 1 hàm API trả về vị trí pixel của con trỏ chuột trên màn hình windown ,
còn hàm ActiveWindow.RangeFromPoint là hàm của exel , để đổi từ pixcel của con trỏ chuột ra vị trí của Cell đang tham chiếu vào !
Hay mà bạn, mà sau khi đọc thấy lờ mờ quá, thôi thì lại chơi kiểu click chọn rồi hiện comment đã rồi lại nghiên cứu tiếp.
 
Upvote 0
Không biết Cá ngừ F1 làm vụ này tới đâu rồi?
Tôi xin đưa giải pháp đơn giản, dựa vào bài toán MouseMove trên cell đã có trên diễn đàn rồi cải tiến lại: Di chuột đến đâu thì chèn comment vào đó, chỉ vậy thôi
(Vui lòng xem file đính kèm)
Cách dùng:
- Mở file
- Bấm nút "Start Mouse Over" để khởi động
- Rê chuột vào vùng màu vàng (vùng này được xác định trong code) sẽ xuất hiện tooltip
- Bấm nút "Stop Mouse Over" để tắt


View attachment 179826


-----------------------------------------------------
Nội dung xuất hiện trong tooltip các bạn có thể tùy biến
Code dạng ý tưởng, vẫn chưa hoàn thiện!

Vụ chèn comment là dễ làm mất comment cũ của người ta bác ạ. Nên nếu bạn nào chọn phương án này là phải viết thêm phần bảo lưu comment trước khi thay thế..
 
Upvote 0
Vụ chèn comment là dễ làm mất comment cũ của người ta bác ạ. Nên nếu bạn nào chọn phương án này là phải viết thêm phần bảo lưu comment trước khi thay thế..
Vậy là Tuân chưa xem file đính kèm của tôi rồi
???!!!
Comment đang có do ta tạo trước không hề mất
 
Upvote 0
Nói chung nhìn xong choáng váng luôn, hjk
Thấy dài vậy chứ code tôi viết được chia ra thành từng phần riêng biết, rất dễ theo dỏi.
Code gồm 2 phần rõ ràng, chia làm 2 modules luôn:
1> Code tạo CommandBar để điều khiển
2> Code chính chỉ có 1 Sub và 1 Function. Sub CreateComment để tạo comment theo đối số range truyền vào. Function TimerProc để điều khiển hiện comment tại cell mà ta đang rê chuột đến
Chỉ thế thôi! Và bạn cũng chỉ cần để tâm đến sub và function trên là đủ (các phần còn lại chỉ là màu mè)
 
Upvote 0
Web KT
Back
Top Bottom