Cách liên kết Text Box với Cell (1 người xem)

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

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

em cảm ơn các thầy đã giúp em, em có 1 ít thắc mắc nữa mong các thầy chỉ với:.
1. thầy sealand code của thầy e đã sửa lại OK theo ý e nhưng có vấn đề là khi em nhập vào số 10 thì cả oval 1+oval10 đều bị tô màu.e sửa mãi k được.mong thầy chỉ
2. thầy
ndu96081631 ơi, e chỉ muốn tô màu chữ trong oval thui (Nếu được viền thì tốt) còn nền oval e để Nofill mà, hiện tại dựa vào code của thầy e vẫn k sửa đuệoc mong thầy chỉ
 
Lần chỉnh sửa cuối:
Bạn phải đưa file lên hay chép Code lên thì mới biết lỗi ở đâu chứ, vì bạn sửa rồi mà.

Rất có thể ở đây:

Set Cl = Sheet1.Range("B4:C13").Find(i, LookIn:=xlValues)

Bạn sửa thành:

Set Cl = Sheet1.Range("B4:C13").Find(i, LookIn:=xlValues, LookAt:=xlWhole)
 
Lần chỉnh sửa cuối:

2. thầy
ndu96081631 ơi, e chỉ muốn tô màu chữ trong oval thui (Nếu được viền thì tốt) còn nền oval e để Nofill mà, hiện tại dựa vào code của thầy e vẫn k sửa đuệoc mong thầy chỉ

Bạn khỏi cần sửa code gì cả! Bạn tô màu cho khu vực cột B và cột C thế nào thì Oval sẽ có màu thế nấy
Còn nếu bạn thật sự muốn No Fill thì chổ nào trong code có dòng .Fill.Visible = msoTrue hãy sửa thành .Fill.Visible = msoFalse
Tuy nhiên tôi thấy thế vẫn không hay vì viết vậy là chỉ mình bạn xài, trong khi tôi chỉ thích viết theo kiểu tổng quát
Tôi đề nghị sửa code thế này:
Mã:
Public Const DEFAULT_C_BACK = vbWhite
Public Const DEFAULT_C_TEXT = vbBlack
[COLOR=#ff0000]Public Const DEFAULT_C_FILL = 0[/COLOR]
Function ShapeColorChange(ByVal Objects As Object, ByVal rngSearch As Range) As Boolean
  Dim text As String, [COLOR=#ff0000]bChkFill As Boolean[/COLOR]
  Dim obj As Object, rFind As Range
  For Each obj In Objects
   [COLOR=#ff0000] If TypeName(obj) <> "Shape" Then Set obj = obj.ShapeRange[/COLOR]
    text = obj.TextFrame.Characters.text
    Set rFind = rngSearch.Find(text, , xlValues, xlWhole)
    If Not rFind Is Nothing Then
      With obj
       [COLOR=#ff0000] bChkFill = (rFind.Interior.Pattern <> xlNone)[/COLOR]
        .Fill.Visible = bChkFill
       [COLOR=#ff0000] If bChkFill Then .Fill.ForeColor.RGB = rFind.Interior.color[/COLOR]
        .TextFrame.Characters.Font.color = rFind.Font.color
      End With
      ShapeColorChange = True
    Else
      With obj
        [COLOR=#ff0000].Fill.Visible = DEFAULT_C_FILL[/COLOR]
       [COLOR=#ff0000] If DEFAULT_C_FILL Then .Fill.ForeColor.RGB = DEFAULT_C_BACK[/COLOR]
        .TextFrame.Characters.Font.color = DEFAULT_C_TEXT
      End With
      ShapeColorChange = False
    End If
  Next
End Function
Những chổ màu đỏ là những chổ sửa lại
Vẫn theo nguyên tắc đã nói từ đầu:
- Tô màu nền và chữ cho cột B, C thế nào thì Oval sẽ lấy màu thế nấy
- NoFill cột B và C thì Oval cũng NoFill theo
vân vân...
Code làm việc được với cả trường hợp ta nhóm các Object lại thành 1 Group
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn phải đưa file lên hay chép Code lên thì mới biết lỗi ở đâu chứ, vì bạn sửa rồi mà.

Rất có thể ở đây:

Set Cl = Sheet1.Range("B4:C13").Find(i, LookIn:=xlValues)

Bạn sửa thành:

Set Cl = Sheet1.Range("B4:C13").Find(i, LookIn:=xlValues, LookAt:=xlWhole)
File gốc chưa sửa code cũng đã biij vậy rồi thầy ah
 
Bạn cứ sửa như bài trước là được
 
Bạn ơi! nhưng làm như thế nào mà được như vậy, hôm trước bạn
ndu96081631 có làm bằng cách chụp ảnh text box thì mình biết rồi, nhưng cách này mình chưa hỉểu lắm, bạn giải thích được không?

 
Vậy thì cũng y chang bài 4 tôi đã làm thôi
Giải pháp không macro đây! Mời xem.
Chào anh, em có tải file của anh về nghiên cứu nhưng ko tìm ra được anh làm thế nào để link các ô ở cột V với hình được, anh có thể chỉ dẫn cho em được không ạ. Em cảm ơn anh
Bài đã được tự động gộp:

e xin lỗi đã không xem kỹ, e tìm đc rồi ạ. e cảm ơn a, cách của a quá hay
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom