Thay đổi vị trí và kích thước của InputMessage trong Validation? (2 người xem)

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

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

sealand

Thành viên gạo cội
Tham gia
16/5/08
Bài viết
4,883
Được thích
7,688
Giới tính
Nam
Nghề nghiệp
Kế Toán
Mình có 1 vấn đề cần nhờ các bạn giúp:
Khi tạo Validation, có phần tạo InputMessage để hiện hướng dẫn nhập liệu. Với điều kiện mới hoàn toàn thì cửa sổ InputMessage sẽ hiện ngay bên cạnh ô nhập liệu khi chọn ô (Select). Nhưng khi vô tình nháy -giữ chuột di chuyển hay làm gì đó với cửa sổ này thì nó lại cố định tại 1 chỗ. Nay mình muốn các bạn hướng dẫn làm sao để:
-Tự mình chỉ định vị trí xuất hiện cửa sổ InputMessage?
-Thay đổi kích thước của cửa sổ InputMessage?

Phương pháp: Cả 2 cách điều chỉnh trên sheet và dùng VBA.
Xin cám ơn!
 
Mình có 1 vấn đề cần nhờ các bạn giúp:
Khi tạo Validation, có phần tạo InputMessage để hiện hướng dẫn nhập liệu. Với điều kiện mới hoàn toàn thì cửa sổ InputMessage sẽ hiện ngay bên cạnh ô nhập liệu khi chọn ô (Select). Nhưng khi vô tình nháy -giữ chuột di chuyển hay làm gì đó với cửa sổ này thì nó lại cố định tại 1 chỗ. Nay mình muốn các bạn hướng dẫn làm sao để:
-Tự mình chỉ định vị trí xuất hiện cửa sổ InputMessage?
-Thay đổi kích thước của cửa sổ InputMessage?

Phương pháp: Cả 2 cách điều chỉnh trên sheet và dùng VBA.
Xin cám ơn!
Nếu đã dùng đến VBA, em nghĩ anh nên thay đổi dùng phương pháp khác đi, chẳng hạn dùng 1 Shape để hiển Mesage (hoặc Comment) ---> Chứ Validation thì e rằng không thể điều khiển được
 
Mình có 1 vấn đề cần nhờ các bạn giúp:
Khi tạo Validation, có phần tạo InputMessage để hiện hướng dẫn nhập liệu. Với điều kiện mới hoàn toàn thì cửa sổ InputMessage sẽ hiện ngay bên cạnh ô nhập liệu khi chọn ô (Select). Nhưng khi vô tình nháy -giữ chuột di chuyển hay làm gì đó với cửa sổ này thì nó lại cố định tại 1 chỗ. Nay mình muốn các bạn hướng dẫn làm sao để:
-Tự mình chỉ định vị trí xuất hiện cửa sổ InputMessage?
-Thay đổi kích thước của cửa sổ InputMessage?

Phương pháp: Cả 2 cách điều chỉnh trên sheet và dùng VBA.
Xin cám ơn!

Chắc phải tự tạo thôi anh à, anh xem thử file nhé
 

File đính kèm

Mình thấy Vali. nó cơ động và ít hảng hưởng đến bảng tính hơn, các bạn xem file nha. Nhưng chưa sử lý được nên mới tiếc, nếu động di chuyển cửa sổ là hỏng
 

File đính kèm

Lần chỉnh sửa cuối:
Mình có 1 vấn đề cần nhờ các bạn giúp:
Khi tạo Validation, có phần tạo InputMessage để hiện hướng dẫn nhập liệu. Với điều kiện mới hoàn toàn thì cửa sổ InputMessage sẽ hiện ngay bên cạnh ô nhập liệu khi chọn ô (Select). Nhưng khi vô tình nháy -giữ chuột di chuyển hay làm gì đó với cửa sổ này thì nó lại cố định tại 1 chỗ. Nay mình muốn các bạn hướng dẫn làm sao để:
-Tự mình chỉ định vị trí xuất hiện cửa sổ InputMessage?
-Thay đổi kích thước của cửa sổ InputMessage?

Phương pháp: Cả 2 cách điều chỉnh trên sheet và dùng VBA.
Xin cám ơn!

Em đã tìm đọc tài liệu, e rằng phải dùng shape anh SL ạh
Em có sưu tầm được code sau
PHP:
Resize Excel Comments 

If Excel comments have changed size, you can reset them using the following code. The first macro resizes all comments on the active sheet, and the second macro resizes all comments in the selected range.
Resize all comments on the active sheet

Sub Comments_AutoSize()
'posted by Dana DeLouis  2000-09-16

  Dim MyComments As Comment
  Dim lArea As Long
  For Each MyComments In ActiveSheet.Comments
    With MyComments
      .Shape.TextFrame.AutoSize = True
      If .Shape.Width > 300 Then
        lArea = .Shape.Width * .Shape.Height
        .Shape.Width = 200
        ' An adjustment factor of 1.1 seems to work ok.
        .Shape.Height = (lArea / 200) * 1.1
      End If
    End With
  Next ' comment
End Sub

PHP:
Resize all comments in the selected area 

Sub ResizeCommentsInSelection()
'Posted by Dave Peterson 2002-02-25
Dim mycell As Range
Dim myRng As Range
Dim lArea As Long

Set myRng = Selection

For Each mycell In myRng.Cells
  If Not (mycell.Comment Is Nothing) Then
    With mycell.Comment
      .Shape.TextFrame.AutoSize = True
      If .Shape.Width > 300 Then
        lArea = .Shape.Width * .Shape.Height
        .Shape.Width = 200
        .Shape.Height = (lArea / 200) * 1.2
      End If
    End With
  End If
Next mycell
End Sub

Link tham khảo về comment Format
http://www.contextures.com/xlcomments03.html
 
Cám ơn Tuong Vi, nhưng InputMessage nó khác với Comment là nó khống chế kích thước.
Mình nghĩ chỉ có thể dùng hàm API nhưng chưa biết cách sử lý ra sao.
 
Cám ơn Tuong Vi, nhưng InputMessage nó khác với Comment là nó khống chế kích thước.
Mình nghĩ chỉ có thể dùng hàm API nhưng chưa biết cách sử lý ra sao.
Dùng label thử nha anh:

Mã:
Private Sub Label1_Click()
Label1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Label1.Visible = True Then Label1.Visible = False
    Select Case Target.Address
        Case Is = "$A$1"
            Label1.Caption = vbNewLine & "This is your Validation Input message for A1."
            Label1.Left = Range(Target.Address).Left + Range(Target.Address).Width '+ 25
            Label1.Top = Range(Target.Address).Top ' + 140
            Label1.Visible = True
            
        Case Is = "$A$2"
            Label1.Caption = vbNewLine & "This is your Validation Input message for A2."
            Label1.Left = Range(Target.Address).Left + Range(Target.Address).Width ' + 25
            Label1.Top = Range(Target.Address).Top '+ 140
            Label1.Visible = True
           
        Case Else
            Exit Sub
    End Select
End Sub
 

File đính kèm

Code của Doom hơi... ngộ nha!
Range(Target.Address).Left
tại sao không là
Target.Left
nhỉ?
vân vận và vân vân...
Sửa vầy có phải gọn hơn không:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Label1.Visible = False
  If Not Intersect([A1:A10], Target) Is Nothing Then
    With Label1
      .Caption = "This is your Validation Input message for " & Target.Address(0, 0)
      .Left = Target(, 2).Left: .Top = Target.Top
      .Visible = True
    End With
  End If
End Sub
 
Cám ơn Dom nhiều. Trước mắt minh thấy phương án của Dom. cũng hợp lý và áp dụng.
Nhưng dẫu sao cũng vẫn "cay" cái vụ đó.
 
Cám ơn Dom nhiều. Trước mắt minh thấy phương án của Dom. cũng hợp lý và áp dụng.
Nhưng dẫu sao cũng vẫn "cay" cái vụ đó.
Biết làm sao hơn được anh à, cũng như validation chỉ có 8 dòng, và duy nhất 1 cột, có trách là bác Bill chỉ cho như thế Hix....
 
Vấn đề về Input Message nên em vào đây hỏi luôn ạ. Ví dụ muốn xuất hiện tự động Input Message ở cột C nếu ở cột A có dữ liệu, ngược lại thì không như file đính kèm có được không ạ? Mong các anh chị giúp đỡ, em xin cảm ơn!
 

File đính kèm

Web KT

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

Back
Top Bottom