Trợ giúp "Hover" trên freeform của worksheet

Liên hệ QC

CEO76

Thành viên mới
Tham gia
2/1/09
Bài viết
33
Được thích
12
Xin chào

Tôi đã đọc rất nhiều tài liệu trên mạng, Excel không trợ giúp chức năng mouseup/mousemove trên freeform của excel.

Tập tin tôi đính kèm có chứa đựng một biểu đồ, tôi tạo các freeform shapes và đưa chúng vào biểu đồ. Các toạ độ của các điểm của freeform là cũng là toạ độ của các điểm trên biểu đồ.

Tôi có thể biết được tên của các freeform cũng như đánh dấu freeform nào mà tôi đã nhấn chuột.

Tuy nhiên điều mà tôi rất muốn thực hiện là khi di chuyển con chuột tới một freeform trên biểu đồ (không click chuột mà chỉ "Hover" qua freeform shape), tôi muốn hiển thị tên của freeform đó (có thể hiển thị qua statusbar của excel hoặc tạo một textbox để hiển thị tên của freeform shape đó.

Loay hoay 2 ngày hôm nay mà chưa tìm được lời giải đáp, bèn mạm muội gửi bài này lên trên diễn đàn và mong có sự trợ giúp của mọi ngươi.

Xin chân thành cảm ơn mọi người đã đọc bài này và rất mong nhận được gợi ý và đóng góp ý kiến của các bạn.

CEO76
 

File đính kèm

  • DrawShape_Need_Hover.xlsm
    46.4 KB · Đọc: 12
Xin chào

Tôi đã đọc rất nhiều tài liệu trên mạng, Excel không trợ giúp chức năng mouseup/mousemove trên freeform của excel.

Tập tin tôi đính kèm có chứa đựng một biểu đồ, tôi tạo các freeform shapes và đưa chúng vào biểu đồ. Các toạ độ của các điểm của freeform là cũng là toạ độ của các điểm trên biểu đồ.

Tôi có thể biết được tên của các freeform cũng như đánh dấu freeform nào mà tôi đã nhấn chuột.

Tuy nhiên điều mà tôi rất muốn thực hiện là khi di chuyển con chuột tới một freeform trên biểu đồ (không click chuột mà chỉ "Hover" qua freeform shape), tôi muốn hiển thị tên của freeform đó (có thể hiển thị qua statusbar của excel hoặc tạo một textbox để hiển thị tên của freeform shape đó.

Loay hoay 2 ngày hôm nay mà chưa tìm được lời giải đáp, bèn mạm muội gửi bài này lên trên diễn đàn và mong có sự trợ giúp của mọi ngươi.

Xin chân thành cảm ơn mọi người đã đọc bài này và rất mong nhận được gợi ý và đóng góp ý kiến của các bạn.

CEO76

Sao bạn không muốn chèn Chart vào? vd. chuột phải trên thẻ Sheet1 --> chọn Insert --> Chart

Mà tôi không hiểu ý bạn. Nếu bạn click vào Chart để Active nó thì từ lúc đó trở đi bạn di chuột tới đâu là có hiện tên của freeform ở vị trí chuột mà.

View attachment 106734
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn Siwtom đã trả lời bài viết này

Application tôi đang xây dựng dùng worksheet để chứa các chart, do vậy tôi không dùng chart sheet như Wistom đã đề cập. Thứ 2 là trong worksheet tôi dùng chart event, và chart có rất nhiều data (đồng nghĩa với rất nhiều shapes), với một lý do nào đó mà "ControlTipTex" không hiện ra khi tôi "hover" chuột qua shape của chart.

Hy vọng sớm nhận được phản hồi của Switom.

Xin cám ơn

CEO76


Pic01.jpg
 
Upvote 0
Cám ơn Siwtom đã trả lời bài viết này

Application tôi đang xây dựng dùng worksheet để chứa các chart, do vậy tôi không dùng chart sheet như Wistom đã đề cập. Thứ 2 là trong worksheet tôi dùng chart event, và chart có rất nhiều data (đồng nghĩa với rất nhiều shapes), với một lý do nào đó mà "ControlTipTex" không hiện ra khi tôi "hover" chuột qua shape của chart.

Hy vọng sớm nhận được phản hồi của Switom.

Xin cám ơn

CEO76


View attachment 106735

Như hình tôi đính kèm thì khi tôi đã active Chart thì di chuột tới đâu là có Tip tới đó. Còn nếu bạn không có như tôi thì tôi chịu rồi. Tôi dùng Excel 2007
----------

Nếu bạn không tìm được cách khắc phục cho hiện tip và không có cách "xoay sở" nào tốt hơn, nghĩa là cùng đường rồi, thì bạn thử cách sau

1. Thêm Class Module
code của Class1

Mã:
Private WithEvents myChart As Chart

Property Get Chart() As Chart
    Set Chart = myChart 
End Property

Property Set Chart(obj As Chart)
    Set myChart = obj
End Property

Private Sub myChart_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
'    lam cac viec
End Sub

code của Sheet1
Mã:
Private SecretChart As Class1

Private Sub Worksheet_Activate()
    Set SecretChart = New Class1
    Set SecretChart.Chart = ActiveSheet.ChartObjects("Chart 1").Chart
End Sub

Private Sub Worksheet_Deactivate()
    Set SecretChart = Nothing
End Sub

2. MouseMove chỉ có khi Chart có Focus, tức Activate

Trong MouseMove bạn có tọa độ của chuột. Tự bạn phải tìm ra nó nằm ở Shape nào.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom