Lỗi code Xem Chi Tiết (1 người xem)

Liên hệ QC

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

NguyenthiH

Thành viên mới đăng ký
Tham gia
11/12/16
Bài viết
965
Được thích
175
Giới tính
Nữ
Em có code xem chi tiết (Sheet"ChiTiet"), nhưng bị lỗi vàng ngay trong code
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" Then
  For i = 1 To UBound(Narr)  <--------loi vang ngay day
    If Narr(i, 5) = Target.Value Then
      [F5] = Narr(i, 6)
      Exit Sub
    End If
  Next i
End If
Call ChiTietCreat
End Sub
Khi chọn tên phụ liệu trong DataValidation thì chạy code, nhưng lỗi, và mong các anh chị chỉnh dùm code lấy số lượng tồn trong cell H5 của sheet"ChiTiet"
 

File đính kèm

PHP:
    If W Then
        [a10].Resize(W, 7).Value = dArr()
        Range("b9:G9").Resize(W).Sort [C9], 1, [E9], , 2, Header:=xlYes '   Sáp Xêp'
        Rows(10 + W & ":" & SoDong).Hidden = True
    Else
        Rows("10:13").Hidden = True
        Rows("23:" & SoDong).Hidden = True
    End If  
End If
End Sub
 
Upvote 0
Tiện đây khuyến mãi thêm cho bạn macro tính lượng tồn của mặt hàng (thay cho công thức):
PHP:
Sub ThayCongThucTinhTon()
Dim J As Integer
[H10].Value = [h5].Value + [f10].Value - [g10].Value
For J = 11 To [b10].End(xlDown).Row
    With Cells(J, "H")
        .Value = .Offset(-1).Value + .Offset(, -2).Value - .Offset(, -1).Value
    End With
Next J
End Sub

Để xài, bạn thêm dòng lệnh này
Mã:
ThayCongThucTinhTon
vô dưới dòng lệnh
PHP:
Rows(10 + W & ":" & SoDong).Hidden = True

của #21.

& sửa lại dòng lệnh
Mã:
[a10].Resize(SoDong - 10, 7).ClearContents          'Xóa Du Liêu Làn Truóc'
(Tại #17) sao cho dòng lệnh này xóa 8 cột dữ liệu thay vì 7

Chúc vui & thành công!
 
Lần chỉnh sửa cuối:
Upvote 0
Một vấn đề nữa mà chúng ta cần quan tâm, đó là câu lệnh:
Mã:
Range("b9:G9").Resize(W).Sort [C9], 1, [E9], , 2, Header:=xlYes '   Sáp Xêp'
Nghĩa là trong câu lệnh ta xếp sắp theo 2 trường;
Nhưng 2 trường này giống hệt nhau.
Như vậy, việc trước tiên là ta đang thừa (hay là lãng fí) tài nguyên & thời gian
Nhưng ngược lại còn thiếu 1 khâu quan trọng.
Để hiểu rõ còn thiếu gì, ta giả dụ:
Ngày nào đó, như 02/07/2018 đang có lượng tồn 9 đơn vị loại hàng có mã GPE.COM
Cũng hôm í ta nhập thêm 4 đơn vị hàng loại này & xuất ra 13 đơn vị hàng đó.
Trên trang 'CTiet' ta cho chạy mặt hàng này cũng thể hiện theo trình tự như thật;
Dòng nhập sẽ nằm trên dòng xuất.
Nhưng nằm trên do tình cơ mà thôi.

Để chắc như bắp, ta nên xếp thêm theo trường [Diễn giải] theo trình tự từ 'A' đến 'Z'
Lúc nớ sẽ hiện các dòng xuất sau các dòng nhập. (Theo thông lệ có nhập mới có xuất)
 
Upvote 0
Cám ơn Thầy SA_DQ nhiều!
Nếu được, Thầy có thể bỏ hết công thức ở các cell F5, H5 và dòng 501 (Tổng cộng)
CHÚC THẦY NGÀY VUI!
 
Upvote 0
Ba cái công thức đó không làm nặng file bao nhiêu;
& Bạn thử mở bộ thu macro lên & thực hiện trước xem sao;
Sau đó sẽ có người chỉnh cho bạn thành những dòng lệnh chỉnh chu!
 
Upvote 0
Cell "C9" và "E9" đó Thầy.
nên trong code cũ có
Mã:
Range("C9:G9").Resize(k).Sort [C9], 1, [E9], , 2, Header:=xlNo
Tôi nói là F5, H5 dùng Vlookup() cũng được, đâu có nói H5 dò theo ngày nào.
Chuyện Sort theo cột nào là chuyện khác.
 

File đính kèm

Upvote 0
Oh! Cám ơn Thầy Ba Tê nhiều!
Thêm Một cách nữa.
 
Lần chỉnh sửa cuối:
Upvote 0
Ủa ! Tối hôm qua em có gửi bài trong này (nhờ Thầy Ba Tê giúp tiếp), thế mà sáng nay sao không thấy bài đó đâu.
Mong BQT xem giúp.
 
Upvote 0
Em xin gửi lại:
Ở những phụ liệu nào mà không có nhập - Xuất, mong Thầy Ba Tê cho hiện ra cỡ 10 dòng không có dữ liệu (để in ra)
Và Thầy chỉnh code cho có dòng cuối là "Tổng cộng" của Nhâp-Xuất-Tồn cuối.
 
Upvote 0
Em xin gửi lại:
Ở những phụ liệu nào mà không có nhập - Xuất, mong Thầy Ba Tê cho hiện ra cỡ 10 dòng không có dữ liệu (để in ra)
Và Thầy chỉnh code cho có dòng cuối là "Tổng cộng" của Nhâp-Xuất-Tồn cuối.
Chiều theo 1 lần nữa nhé.
 

File đính kèm

Upvote 0
Oh! "HƠN CẢ SỰ MONG ĐỢI"
Cám ơn Thầy Ba Tê nhiều nhiều!
 
Upvote 0
Ah! mà Thầy Ba Tê cho em hỏi tí: Em muốn các cel "Tổng Cộng" "Tổng Nhập", "Tổng Xuất", "Tồn Cuối" là in đậm, nên em có chế lại code của Thầy là:
Mã:
 N = IIf(K + 9 > 19, K + 9, 19)
            .Range("E" & N) = Total
            .Range("E" & N).Font.FontStyle = "Bold" <---thêm vào
            .Range("F" & N).Resize(, 2).Value = "=SUM(R9C:R[-1]C)"
            .Range("F" & N).Resize(, 2).Font.FontStyle = "Bold" <----thêm vào
            .Range("H" & N).Value = "=R5C+RC[-2]-RC[-1]"
            .Range("H" & N).Font.FontStyle = "Bold" <-----thêm vào
            .Range("A9:A" & N).Resize(, 8).Borders.LineStyle = 1
Nhưng khi chọn phụ liệu khác thì các cell của phụ liệu chọn trước đó vẫn còn in đậm.
Mong Thầy chỉ giáo.
 
Upvote 0
Ah! mà Thầy Ba Tê cho em hỏi tí: Em muốn các cel "Tổng Cộng" "Tổng Nhập", "Tổng Xuất", "Tồn Cuối" là in đậm, nên em có chế lại code của Thầy là:
Mã:
 N = IIf(K + 9 > 19, K + 9, 19)
            .Range("E" & N) = Total
            .Range("E" & N).Font.FontStyle = "Bold" <---thêm vào
            .Range("F" & N).Resize(, 2).Value = "=SUM(R9C:R[-1]C)"
            .Range("F" & N).Resize(, 2).Font.FontStyle = "Bold" <----thêm vào
            .Range("H" & N).Value = "=R5C+RC[-2]-RC[-1]"
            .Range("H" & N).Font.FontStyle = "Bold" <-----thêm vào
            .Range("A9:A" & N).Resize(, 8).Borders.LineStyle = 1
Nhưng khi chọn phụ liệu khác thì các cell của phụ liệu chọn trước đó vẫn còn in đậm.
Mong Thầy chỉ giáo.
Đã "chế" in đậm được thì "chế'" bỏ in đậm được mà.
Trước khi gán dữ liêu thì bỏ tất cả "in đậm" cũ, gán xong mới "in đậm" dòng tổng.
 
Upvote 0
Tại em thấy ở đoạn trên có
Mã:
'------------------------------------------------Gan Dulieu
        .Range("A9").Resize(1000, 8).ClearContents
        .Range("A19").Resize(1000, 8).Borders.LineStyle = 0
tức nó đã xóa hết rồi mà Thầy!
 
Upvote 0
Tại em thấy ở đoạn trên có
Mã:
'------------------------------------------------Gan Dulieu
        .Range("A9").Resize(1000, 8).ClearContents
        .Range("A19").Resize(1000, 8).Borders.LineStyle = 0
tức nó đã xóa hết rồi mà Thầy!
.ClearContents : Xóa nội dung.
.Borders.LineStyle = 0 : Coi như xóa kẻ khung.
"In đậm" còn nguyên xi như cũ.
 
Upvote 0
Cám ơn Thầy Ba Tê.
Em đã làm được
Mã:
'------------------------------------------------Gan Dulieu
        .Range("A9").Resize(1000, 8).ClearContents
        .Range("A9").Resize(1000, 8).Font.Bold = False    '<---------thêm cho nay
        .Range("A19").Resize(1000, 8).Borders.LineStyle = 0
 
Upvote 0
Web KT

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

Back
Top Bottom