Xin giúp đỡ về VBA công thức Find kết quả (1 người xem)

Liên hệ QC

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

quoc nhat

Thành viên tiêu biểu
Tham gia
8/3/12
Bài viết
567
Được thích
43
Nghề nghiệp
cán bộ ngành y tế
Chào các anh chị
Em có File này mong được sự giúp đỡ của các anh chị
Chẳng là em có một File quản lý hạn dùng của thẻ BHYT
Ở sheet 1 Có cell B8 để nhập mã thẻ BHYT vào sau đó em nhấn nút tìm kiếm để máy tính sẽ tự động dò tìm đến dòng có mã số thẻ giống ở Cell B8 của sheet 1 sang sheet Dulieu.
Nếu tìm được kết quả thì dòng được tìm thấy sẽ thay đổi màu nền hiển thị cho dể nhìn.
Vậy kính mong được sự giúp đỡ của các anh chị.
Em cảm ơn
 

File đính kèm

Chào các anh chị
Em có File này mong được sự giúp đỡ của các anh chị
Chẳng là em có một File quản lý hạn dùng của thẻ BHYT
Ở sheet 1 Có cell B8 để nhập mã thẻ BHYT vào sau đó em nhấn nút tìm kiếm để máy tính sẽ tự động dò tìm đến dòng có mã số thẻ giống ở Cell B8 của sheet 1 sang sheet Dulieu.
Nếu tìm được kết quả thì dòng được tìm thấy sẽ thay đổi màu nền hiển thị cho dể nhìn.
Vậy kính mong được sự giúp đỡ của các anh chị.
Em cảm ơn

Cái này cứ dùng Conditional Formating để tô màu cũng được, cần gì phải nhấn nút
 
Upvote 0
Chào các anh chị
Em có File này mong được sự giúp đỡ của các anh chị
Chẳng là em có một File quản lý hạn dùng của thẻ BHYT
Ở sheet 1 Có cell B8 để nhập mã thẻ BHYT vào sau đó em nhấn nút tìm kiếm để máy tính sẽ tự động dò tìm đến dòng có mã số thẻ giống ở Cell B8 của sheet 1 sang sheet Dulieu.
Nếu tìm được kết quả thì dòng được tìm thấy sẽ thay đổi màu nền hiển thị cho dể nhìn.
Vậy kính mong được sự giúp đỡ của các anh chị.
Em cảm ơn
Trước khi hỏi bạn có thử Record Macro theo cách thực hiện bằng thao tác trên Sheet ko? làm được thì chỉnh sửa tí là có code thôi. Nói chung những vấn đề như này ko cần phải dùng code làm gì
Muốn nút thì code cho nút
[GPECODE=vb]Sub Test()
On Error Resume Next '<= Tìm chính xác nên nếu Không tìm thấy giá trị tương ứng với Sheet1.[B8] sẽ báo lỗi
Sheet2.Activate
Range("A2:H" & [H10000].End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
Sheet2.UsedRange.Find(What:=Sheet1.[B8], After:=[A1], LookIn:=xlFormulas, _
LookAt:=xlWhole, MatchCase:=True).Resize(, 8).Select 'Chọn dòng tương ứng Sheet1.[B8] tìm được
Selection.Interior.ColorIndex = 8 'Thay đổi màu dòng chọn
If Err.Number <> 0 Then
Sheet1.Activate: [B8].Select
MsgBox "Nhap sai ma the BHYT." & vbNewLine & "Vui long nhap lai!"
End If
End Sub[/GPECODE]
 
Lần chỉnh sửa cuối:
Upvote 0
Trước khi hỏi bạn có thử Record Macro theo cách thực hiện bằng thao tác trên Sheet ko? làm được thì chỉnh sửa tí là có code thôi. Nói chung những vấn đề như này ko cần phải dùng code làm gì
Muốn nút thì code cho nút
[GPECODE=vb]Sub Test()
On Error Resume Next '<= Tìm chính xác nên nếu Không tìm thấy giá trị tương ứng với Sheet1.[B8] sẽ báo lỗi
Sheet2.Activate
Range("A2:H" & [H10000].End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
Sheet2.UsedRange.Find(What:=Sheet1.[B8], After:=[A1], LookIn:=xlFormulas, _
LookAt:=xlWhole, MatchCase:=True).Resize(, 8).Select 'Chọn dòng tương ứng Sheet1.[B8] tìm được
Selection.Interior.ColorIndex = 8 'Thay đổi màu dòng chọn
If Err.Number <> 0 Then
Sheet1.Activate: [B8].Select
MsgBox "Nhap sai ma the BHYT." & vbNewLine & "Vui long nhap lai!"
End If
End Sub[/GPECODE]
Cảm ơn anh đã giúp em
Em cũng có thử REC code rồi anh nhưng chưa biết sửa như thế nào vì nó copy nguyên ký tự trên cell B8 đó. Khó với em quá nên em đành nhờ cao thủ trợ giúp
Anh ơi có thể chỉnh giúp em một tý nữa được không
Khi tìm được mã thẻ đó rồi thì dòng đó đổi màu rồi
Giờ tìm thêm mã thẻ khác thì dòng lúc trước tìm được sẽ trả về màu lúc đầu được không anh.
Cảm ơn anh nhiều
 
Upvote 0
Khi tìm được mã thẻ đó rồi thì dòng đó đổi màu rồi
Giờ tìm thêm mã thẻ khác thì dòng lúc trước tìm được sẽ trả về màu lúc đầu được không anh.
Bạn đã chạy thử Code chưa? hay mới chạy có 1 lần cho 1 mã nào đó? thử điền tiếp 1 mã khác và chạy lại Code xem sao vì trong Sub Test() mình đã có đoạn này rồi mà
Mã:
Range("A2:H" & [H10000].End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn đã chạy thử Code chưa? hay mới chạy có 1 lần cho 1 mã nào đó? thử điền tiếp 1 mã khác và chạy lại Code xem sao vì trong Sub Test() mình đã có đoạn này rồi mà
Mã:
Range("A2:H" & [H10000].End(xlUp).Row).Interior.ColorIndex = xlColorIndexNone
Chắc máy tính của em bị làm sao rồi. Dòng nào tìm được có màu mãi không thay đổi
em đã thử 10/10 mã khác nhau đều như vậy
Nó có liên quan gì đến Condition formatting không anh
Vì trên sheet đó em có định dạng kiểu đó
 
Upvote 0
Chắc máy tính của em bị làm sao rồi. Dòng nào tìm được có màu mãi không thay đổi
em đã thử 10/10 mã khác nhau đều như vậy
Nó có liên quan gì đến Condition formatting không anh
Vì trên sheet đó em có định dạng kiểu đó
Có thể dùng CF bị xung đột gì đó. Code bài 3 mình thử thì chạy bình thường. Sửa tạm thế này
Mã:
Private Sub CommandButton1_Click()
On Error Resume Next
  Sheet2.Activate
  Call ClearColorIndex
  Sheet2.UsedRange.Find(What:=Sheet1.[B8], After:=[A1], LookIn:=xlFormulas, _
                                 LookAt:=xlWhole, MatchCase:=True).Resize(, 8).Select
  Selection.Interior.ColorIndex = 8
     If Err.Number <> 0 Then
        Sheet1.Activate: [B8].Select
        MsgBox "Nhap sai ma the BHYT." & vbNewLine & "Vui long nhap lai!"
     End If
End Sub
Mã:
Sub ClearColorIndex()
   Sheet2.UsedRange.Interior.ColorIndex = xlColorIndexNone
End Sub
Góp ý: Bạn để font cột mã thẻ BHYT la VnTimeH nhưng cách nhập lại không đồng bộ (lúc thì mã viết thường "ch", lúc thì viết hoa "CH" => bị font che mất nên Find khi tìm kiếm không chính xác (do dùng MatchCase có phân biệt chữ thường, chữ hoa) => sửa lại cho đồng bộ)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Như bài này thì mình nghĩ không nên cho On Error Resume Next (nói chung là không khoái dùng câu này). Những chỗ đỏ bạn tự xử lý thêm cho phù hợp với yêu cầu của bạn
Mã:
Private Sub CommandButton1_Click()
  Dim FindVal
  Set FindVal = Sheet2.Range([COLOR=#ff0000]"A1:A10000"[/COLOR]).Find(What:=Sheet1.[B8], After:=Sheet2.[A1], LookIn:=xlFormulas, _
                                 LookAt:=xlWhole, MatchCase:=[COLOR=#ff0000]True[/COLOR])
  If Not FindVal Is Nothing Then
    Sheet2.[COLOR=#ff0000]UsedRange[/COLOR].Interior.ColorIndex = xlColorIndexNone
    Application.Goto FindVal.Resize(, [COLOR=#ff0000]8[/COLOR])
    Selection.Interior.ColorIndex = [COLOR=#ff0000]8[/COLOR]
  Else
    MsgBox "Khong tim thay ma the BHYT." & vbNewLine & "Vui long nhap lai!"
  End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Chắc máy tính của em bị làm sao rồi. Dòng nào tìm được có màu mãi không thay đổi
em đã thử 10/10 mã khác nhau đều như vậy
Nó có liên quan gì đến Condition formatting không anh
Vì trên sheet đó em có định dạng kiểu đó
Thử code này
PHP:
Option Explicit
Dim Row
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Row <> Empty Then
    Range(Row).Interior.ColorIndex = xlNone    
End If
Target.Interior.ColorIndex = 6
Row = Target.Address
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Thử code này
PHP:
Option Explicit
Dim Row
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Row <> Empty Then
    Range(Row).Interior.ColorIndex = xlNone    
End If
Target.Interior.ColorIndex = 6
Row = Target.Address
End Sub
cảm ơn các anh chị đã giúp đỡ
 
Upvote 0

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

Back
Top Bottom