Giúp mình code Mouse move khi rê chuột lên cell

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

thinhdje

Thành viên mới
Tham gia
10/6/13
Bài viết
19
Được thích
2
Giả sử mình có hai cột là A và B, đều có giá trị, mình ẩn cột B. Mình muốn khi rê chuột lên bất kỳ cell nào của cột A thì sẽ hiển thị dạng note với nội dung là nội dung của cell liền kề ở cột B (bị ẩn)
Nhờ các cao thủ chỉ giúp, thưc ra mình cần trong Google Sheet, nếu đc trong GSheet thi càng tốt.
Xin cám ơn.
 
Giả sử mình có hai cột là A và B, đều có giá trị, mình ẩn cột B. Mình muốn khi rê chuột lên bất kỳ cell nào của cột A thì sẽ hiển thị dạng note với nội dung là nội dung của cell liền kề ở cột B (bị ẩn)
Nhờ các cao thủ chỉ giúp, thưc ra mình cần trong Google Sheet, nếu đc trong GSheet thi càng tốt.
Xin cám ơn.
Chứ mắc mớ gì không hiện cột B ra để đọc thông tin mà phải khổ sở tìm cách này cách nọ. Khổ thiệt
 
Upvote 0
Chứ mắc mớ gì không hiện cột B ra để đọc thông tin mà phải khổ sở tìm cách này cách nọ. Khổ thiệt
Dạ, em muốn show các thông tin cần thiết để tiết kiệm kích thước bảng, do khối lượng data lớn. Khi muốn ktra gì đó thì rê chuột để hiện lên. Excel ko làm đc việc này anh nhỉ? Ko yêu xin đừng nói lời cay đắng, haha
 
Upvote 0
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim Rws As Long:                       Dim Rng As Range
 
 Rws = [A99999].End(xlUp).Row
 Set Rng = [A1].Resize(Rws)
 If Not Intersect(Target, Rng) Is Nothing Then
    MsgBox Target.Offset(, 1).Value, , "Xin Chào"
 End If
End Sub
 
Upvote 0
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim Rws As Long:                       Dim Rng As Range
 
 Rws = [A99999].End(xlUp).Row
 Set Rng = [A1].Resize(Rws)
 If Not Intersect(Target, Rng) Is Nothing Then
    MsgBox Target.Offset(, 1).Value, , "Xin Chào"
 End If
End Sub
Cám ơn bạn rất nhiều, để mình chạy thử. Ủa mà code này áp dụng cho đề bài của mình phải ko bạn? Thấy khác khác nhỉ
 
Upvote 0
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim Rws As Long:                       Dim Rng As Range
 
 Rws = [A99999].End(xlUp).Row
 Set Rng = [A1].Resize(Rws)
 If Not Intersect(Target, Rng) Is Nothing Then
    MsgBox Target.Offset(, 1).Value, , "Xin Chào"
 End If
End Sub
Sao không làm cái comment hiện lên cho đẹp hở bác?
 
Upvote 0
@Tác giả bài đăng: Hãy thử tự làm theo khuyến cáo #6 của MAIKA 8008

(Nếu có khó khăn thì mở bộ thu macro lên, nó sẽ giúp tận tình!)
 
Upvote 0
Dạ, em muốn show các thông tin cần thiết để tiết kiệm kích thước bảng, do khối lượng data lớn. Khi muốn ktra gì đó thì rê chuột để hiện lên. Excel ko làm đc việc này anh nhỉ? Ko yêu xin đừng nói lời cay đắng, haha
Trên bảng tính excel không có sự kiện Mouse Move, nhưng có thể ăn gian bằng cách chạy code nạp hết cột B vào comment thì khi ta đưa chuột đến ô nào đó của cột A thì comment sẽ tự hiện ra. Tuy nhiên thấy kỳ kỳ nên không muốn code
 
Upvote 0
Trên bảng tính excel không có sự kiện Mouse Move, nhưng có thể ăn gian bằng cách chạy code nạp hết cột B vào comment thì khi ta đưa chuột đến ô nào đó của cột A thì comment sẽ tự hiện ra. Tuy nhiên thấy kỳ kỳ nên không muốn code
Dạ, e hiểu rồi. Cám ơn anh rất nhiều
Bài đã được tự động gộp:

Mò mẫm thì thấy diên đàn mình có chủ để giống như thế này
https://www.giaiphapexcel.com/diend...của-ô-khác-làm-comment-cho-ô-hiện-tại.159189/
 
Lần chỉnh sửa cuối:
Upvote 0
Trên bảng tính excel không có sự kiện Mouse Move, nhưng có thể ăn gian bằng cách chạy code nạp hết cột B vào comment thì khi ta đưa chuột đến ô nào đó của cột A thì comment sẽ tự hiện ra. Tuy nhiên thấy kỳ kỳ nên không muốn code
Anh hướng dẫn em " chạy code nạp hết cột B vào comment" với ạ, e ghi cho 1 cell thì đc nhưng làm sao để nạp 1 lần comment cho cột A thì e ko rõ?
Cám ơn anh
 
Upvote 0
Anh hướng dẫn em " chạy code nạp hết cột B vào comment" với ạ, e ghi cho 1 cell thì đc nhưng làm sao để nạp 1 lần comment cho cột A thì e ko rõ?
Cám ơn anh
Thử code này. Thay thế tên sheet và vùng cần xử lý cho phù hợp cho phù hợp. Code này giả định dữ liệu bắt đầu từ A1
Mã:
Sub Add_Comment()
Dim sArr(), i As Long
With Sheets("Sheet1")
    sArr = .Range("A1", .Range("A" & Rows.Count).End(3)).Resize(, 2).Value
    For i = 1 To UBound(sArr)
        .Cells(i, 1).ClearComments
        .Cells(i, 1).AddComment CStr(sArr(i, 2))
    Next
End With
End Sub
 
Upvote 0
Tôi thấy thay vì rê chuột lên ô thì bấm chuột vào ô cũng đâu có gì bất tiện. Chủ thớt chép code này vào module của sheet cần dùng rồi thử cách hoạt động của nó xem: Bấm vào 1 ô cột A từ A2 trở xuống thì hiện comment ô đó và xóa comment các ô khác trong cột. Bấm ra ngoài cột A thì xóa comment (các) ô trong cột A.
Rich (BB code):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim sCmt$
    Range(Cells(1, 1), Cells(10000, 1)).ClearComments
    If Target.Row > 1 And Target.Column = 1 And Target.Count = 1 Then
        sCmt = Cells(Target.Row, 2).Text
        Target.AddComment
        Target.Comment.Text sCmt
    End If
End Sub
 
Upvote 0
Tôi thấy thay vì rê chuột lên ô thì bấm chuột vào ô cũng đâu có gì bất tiện. . . . . .
Rich (BB code):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   . . . . . . .
End Sub
/-)úng là không có gì bất tiện khi vận hành, nhưng tốn điện là cái chắc!

:D :D :D ← → :D :D :D ← → :D :D :D ← → :D :D :D ← → :D :D :D ← → :D :D :D ← → :D :D :D
 
Upvote 0
Tôi thấy thay vì rê chuột lên ô thì bấm chuột vào ô cũng đâu có gì bất tiện. Chủ thớt chép code này vào module của sheet cần dùng rồi thử cách hoạt động của nó xem: Bấm vào 1 ô cột A từ A2 trở xuống thì hiện comment ô đó và xóa comment các ô khác trong cột. Bấm ra ngoài cột A thì xóa comment (các) ô trong cột A.
Rich (BB code):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim sCmt$
    Range(Cells(1, 1), Cells(10000, 1)).ClearComments
    If Target.Row > 1 And Target.Column = 1 And Target.Count = 1 Then
        sCmt = Cells(Target.Row, 2).Text
        Target.AddComment
        Target.Comment.Text sCmt
    End If
End Sub
Cám ơn bác, mà hình như bác chưa hiểu ý tui :D
Bài đã được tự động gộp:

Thử code này. Thay thế tên sheet và vùng cần xử lý cho phù hợp cho phù hợp. Code này giả định dữ liệu bắt đầu từ A1
Mã:
Sub Add_Comment()
Dim sArr(), i As Long
With Sheets("Sheet1")
    sArr = .Range("A1", .Range("A" & Rows.Count).End(3)).Resize(, 2).Value
    For i = 1 To UBound(sArr)
        .Cells(i, 1).ClearComments
        .Cells(i, 1).AddComment CStr(sArr(i, 2))
    Next
End With
End Sub
Em cám ơn anh
 
Upvote 0
Giả sử mình có hai cột là A và B, đều có giá trị, mình ẩn cột B. Mình muốn khi rê chuột lên bất kỳ cell nào của cột A thì sẽ hiển thị dạng note với nội dung là nội dung của cell liền kề ở cột B (bị ẩn)
Nhờ các cao thủ chỉ giúp, thưc ra mình cần trong Google Sheet, nếu đc trong GSheet thi càng tốt.
Xin cám ơn.
Bạn có thể gợi ý cho tớ cái ứng dụng của việc này được không? Tự nhiên tớ thấy hay hay.
 
Upvote 0
Tại sao cứ cưỡng ép nó phải add cái comment vô, trong khi Validation có cái chức năng "Show Input Message" như thế này:
Và kết quả là không thêm bớt gì hết vô cột A cả.

1.JPG


PHP:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
With Target.Validation
    .Delete
    .Add Type:=xlValidateInputOnly
    .InputMessage = Target.Offset(, 1).Value
End With
End Sub
 
Upvote 0

File đính kèm

  • 1685509140470.png
    1685509140470.png
    201.6 KB · Đọc: 10
  • 1685509186586.png
    1685509186586.png
    33.6 KB · Đọc: 11
Upvote 0
Em cũng đang tò mò ý của tác giả. Em thích SelectionChange của 2 bác hơn là chạy Sub (bác Hải đừng buồn nhé).
Nhưng comments thì chữ dài sẽ thiếu.
Validation thì chữ dài sẽ lỗi.
Các bác ạ.
Ôi giời, buồn vụ gì chứ? Quan trọng là con thỏ thì thích ăn củ cải còn con cá thì thích ăn con giun con dế. Nhu cầu thực tế của người dùng đa dạng lắm mọi người ạ.
Vấn đề là chủ thớt thích cái MouseMove cơ
 
Upvote 0
Tại sao cứ cưỡng ép nó phải add cái comment vô, trong khi Validation có cái chức năng "Show Input Message" như thế này:
Và kết quả là không thêm bớt gì hết vô cột A cả.




PHP:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
With Target.Validation
    .Delete
    .Add Type:=xlValidateInputOnly
    .InputMessage = Target.Offset(, 1).Value
End With
End Sub
Vẫn phải thêm cái chuỗi để show chứ bạn. Nếu không xóa nó đi khi rời khỏi ô thì nó vẫn còn đó và tăng "trọng lượng" cho file ấy chứ.
 
Upvote 0
Vẫn phải thêm cái chuỗi để show chứ bạn. Nếu không xóa nó đi khi rời khỏi ô thì nó vẫn còn đó và tăng "trọng lượng" cho file ấy chứ.
Xóa thì đơn giản, nhưng phụ thuộc việc DataValidation nó có ảnh hưởng đến mức cần thiết phải xóa hay không thôi. Nói thêm là DataValidation này không khống chế việc nhập dữ liệu hay ràng buộc kiểu dữ liệu, mà chỉ đơn thuần phục vụ chi việc "show" text ra thôi.
Bổ sung về sự kiện "rê chuột" trên cell:
Cho đến hiện tại thì VBA code chưa hỗ trợ sự kiện này nhé. Nếu MouseMove trên object thì OK.
 
Upvote 0
Web KT
Back
Top Bottom