Xin hỗ trợ viết code dò dữ liệu theo hàng và cột từ sheet khác (1 người xem)

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

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

acmen87

Thành viên chính thức
Tham gia
7/5/09
Bài viết
72
Được thích
6
Em đã tạo được cơ sở dữ liệu như trong file excel em gửi kèm. Tuy nhiên dữ liệu ô E10 em không biết làm sao để có thể tìm được. Các bác giúp em viết code đoạn này với ạ
Ô E10 sẽ tìm như sau:
Nếu ô E3 có giá trị là "Chuyển khoản" thì kiểm tra dữ liệu trong sheet "CHUYEN KHOAN"; Nếu E3 là "Tiền mặt" thì kiểm tra dữ liệu trong sheet "RUT TM".
Giá trị ô E10 sẽ bằng giá trị ô tương ứng trong sheet mà nó đang kiểm tra (Là giao của hàng "Mã ĐVQHNS" và cột "Số tiền chuyển lương theo tháng" ) Cụ thể như sau:
- Hàng là hàng đáp ứng điều kiện: Mã ĐVQHNS là mã đang nhập ở ô E4 (trong file này là hàng số 8)
- Cột là cột đáp ứng điều kiện là: Số tháng chuyển lương là giá trị ô E6-1 (Trong file này là cột F)
và giá trị tìm đúng sẽ là: 62.834
Em xin cảm ơn các bác
 

File đính kèm

Em đã tạo được cơ sở dữ liệu như trong file excel em gửi kèm. Tuy nhiên dữ liệu ô E10 em không biết làm sao để có thể tìm được. Các bác giúp em viết code đoạn này với ạ
Ô E10 sẽ tìm như sau:
Nếu ô E3 có giá trị là "Chuyển khoản" thì kiểm tra dữ liệu trong sheet "CHUYEN KHOAN"; Nếu E3 là "Tiền mặt" thì kiểm tra dữ liệu trong sheet "RUT TM".
Giá trị ô E10 sẽ bằng giá trị ô tương ứng trong sheet mà nó đang kiểm tra (Là giao của hàng "Mã ĐVQHNS" và cột "Số tiền chuyển lương theo tháng" ) Cụ thể như sau:
- Hàng là hàng đáp ứng điều kiện: Mã ĐVQHNS là mã đang nhập ở ô E4 (trong file này là hàng số 8)
- Cột là cột đáp ứng điều kiện là: Số tháng chuyển lương là giá trị ô E6-1 (Trong file này là cột F)
và giá trị tìm đúng sẽ là: 62.834
Em xin cảm ơn các bác
Mã:
E10=IF(E3="Chuyển khoản",INDEX('CHUYEN KHOAN'!$D$7:$O$200,MATCH(E4,'CHUYEN KHOAN'!$B$7:$B$200,0),E6-1),INDEX('RUT TM'!$D$8:$O$200,MATCH(E4,'RUT TM'!$B$8:$B$200,0),E6-1))
Sao trong file đính kèm có lối viết hoa hay vậy?
 
Upvote 0
Mã:
E10=IF(E3="Chuyển khoản",INDEX('CHUYEN KHOAN'!$D$7:$O$200,MATCH(E4,'CHUYEN KHOAN'!$B$7:$B$200,0),E6-1),INDEX('RUT TM'!$D$8:$O$200,MATCH(E4,'RUT TM'!$B$8:$B$200,0),E6-1))
Sao trong file đính kèm có lối viết hoa hay vậy?
Cảm ơn bác, bác có thế chuyển code VBA giúp em không ạ???
 
Upvote 0
Ô E10 sẽ tìm như sau:
Nếu ô E3 có giá trị là "Chuyển khoản" thì kiểm tra dữ liệu trong sheet "CHUYEN KHOAN"; Nếu E3 là "Tiền mặt" thì kiểm tra dữ liệu trong sheet "RUT TM".

Giá trị ô E10 sẽ bằng giá trị ô tương ứng trong sheet mà nó đang kiểm tra (Là giao của hàng "Mã ĐVQHNS" và cột "Số tiền chuyển lương theo tháng" ) Cụ thể như sau:
- Hàng là hàng đáp ứng điều kiện: Mã ĐVQHNS là mã đang nhập ở ô E4 (trong file này là hàng số 8)
- Cột là cột đáp ứng điều kiện là: Số tháng chuyển lương là giá trị ô E6-1 (Trong file này là cột F)
và giá trị tìm đúng sẽ là: 62.834
Hình như bạn mới nói đến cách thức tìm tại trang 'ChuyenKhoan' thôi; Chưa đã động đến trang còn lại thì fải?
Như vậy là chưa tổng quát;
 
Upvote 0
Bạn Rigth Click lên sheet Chenh Lech, chọn view code và copy code bên dưới dán vào
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$3" Then
        Dim sht As Worksheet, rng As Range
        If Len([e3]) > 8 Then Set sht = Sheet2 Else Set sht = Sheet3
        With sht
            Set rng = .Range(.[B7], .Cells(.Rows.Count, "B").End(3)).Find([E4], , xlValues, xlWhole, , , True)
            Application.EnableEvents = False
            If rng Is Nothing Then
                [e10] = 0
                GoTo thoat
            End If
            [e10].Value = rng(, [e6] + 2).Value
           
        End With
    End If
thoat:
    Application.EnableEvents = True
End Sub
 

File đính kèm

Upvote 0
Bạn Rigth Click lên sheet Chenh Lech, chọn view code và copy code bên dưới dán vào
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$3" Then
        Dim sht As Worksheet, rng As Range
        If Len([e3]) > 8 Then Set sht = Sheet2 Else Set sht = Sheet3
        With sht
            Set rng = .Range(.[B7], .Cells(.Rows.Count, "B").End(3)).Find([E4], , xlValues, xlWhole, , , True)
            Application.EnableEvents = False
            If rng Is Nothing Then
                [e10] = 0
                GoTo thoat
            End If
            [e10].Value = rng(, [e6] + 2).Value
          
        End With
    End If
thoat:
    Application.EnableEvents = True
End Sub
Cảm ơn bạn nhiều. để mình thử nhé. Tks bạn
 
Upvote 0
Bạn Rigth Click lên sheet Chenh Lech, chọn view code và copy code bên dưới dán vào
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$3" Then
        Dim sht As Worksheet, rng As Range
        If Len([e3]) > 8 Then Set sht = Sheet2 Else Set sht = Sheet3
        With sht
            Set rng = .Range(.[B7], .Cells(.Rows.Count, "B").End(3)).Find([E4], , xlValues, xlWhole, , , True)
            Application.EnableEvents = False
            If rng Is Nothing Then
                [e10] = 0
                GoTo thoat
            End If
            [e10].Value = rng(, [e6] + 2).Value
          
        End With
    End If
thoat:
    Application.EnableEvents = True
End Sub
bạn ơi sao mình thử k đc nhỉ? bạn xem lại hộ mình với
 
Upvote 0
Bạn Rigth Click lên sheet Chenh Lech, chọn view code và copy code bên dưới dán vào
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$3" Then
        Dim sht As Worksheet, rng As Range
        If Len([e3]) > 8 Then Set sht = Sheet2 Else Set sht = Sheet3
        With sht
            Set rng = .Range(.[B7], .Cells(.Rows.Count, "B").End(3)).Find([E4], , xlValues, xlWhole, , , True)
            Application.EnableEvents = False
            If rng Is Nothing Then
                [e10] = 0
                GoTo thoat
            End If
            [e10].Value = rng(, [e6] + 2).Value
          
        End With
    End If
thoat:
    Application.EnableEvents = True
End Sub
Bữa nay mới thấy bài của anh Tùng àh
 
Upvote 0
Web KT

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

Back
Top Bottom