file excel hàng tồn kho cần giúp đỡ

Liên hệ QC
Bạn xem trong file đính kèm nhe.

File của bạn còn một số lỗi to đến nhỏ . . . Đẹp thì có đẹp, nhưng gây trỡ ngại nhiều, ngay cả sử dụng công thức.
 

File đính kèm

Anh "Chanh TQ" ơi, giúp em với. Sao khi em copy bản NXT của bác về, cái phần thẻ kho em chỉ click vào mã vật tư được mà không thấy hiện số lượng nhập xuất tồn thế ah? Giúp em ngay bác nhé. Em đang cần gấp lắm ah. Em cảm ơn bác trước nhé
 
Anh ơi,mau giúp em đi. sao cái thẻ kho em chỉ chọn đc mã hàng mà số lượng lại k có. Huhu. Em rất cần, anh giúp em sớm nhé. Cảm ơn anh nhiều
 
Mau giúp em đi. sao cái thẻ kho em chỉ chọn đc mã hàng mà số lượng lại k có. Huhu. Em rất cần, anh giúp em sớm nhé. Cảm ơn anh nhiều

Các mặt hàng thép đều có, chí ít là tồn kho đầu kỳ.

Một số mặt hàng chưa được chủ topic nhập gì, thì bạn nhập giả lập & thử tiếp.
 
Copy macro từ file của mình vô & chạy ngay mà!

/-)ây là macro trong trang tính 'The Kho'

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c7]) Is Nothing Then
    Dim Sh As Worksheet, Rng As Range, sRng As Range
    Dim jJ As Byte, MyAdd As String, ShName As String
    Dim Rws As Long, Ngay As Date
    
    Set Sh = Sheets("NXT")
    Rws = [A11].CurrentRegion.Offset(1, 1).Rows.Count
    [b11].Resize(Rws, 4).ClearContents
    
    Set Rng = Sh.Range(Sh.[b9], Sh.[b65500].End(xlUp))
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        With [b65500].End(xlUp).Offset(1)
            .Value = DateSerial(Year(Date), Month(Date), 1) - 1
            .Offset(, 1).Value = sRng.Offset(, 3).Value
            .Offset(, 5) = 1
        End With
    End If
    [g10].Value = "GPE"
    For jJ = 1 To 2
        ShName = Choose(jJ, "Nhap", "Xuat")
        Set Sh = ThisWorkbook.Worksheets(ShName)
        Set Rng = Sh.Range(Sh.[D7], Sh.[D65500].End(xlUp))
        Set sRng = Rng.Find(Target.Value)
        If Not sRng Is Nothing Then
            MyAdd = sRng.Address
            Do
                With [b65500].End(xlUp)
                    If sRng.Offset(, -2).Value <> "" Then
                        Ngay = sRng.Offset(, -2).Value
                    Else
                        Ngay = sRng.Offset(, -2).End(xlUp).Value
                    End If
                    If Ngay = .Value Then
                        .Offset(, 1 + jJ).Value = .Offset(, 1 + jJ).Value + sRng.Offset(, 3).Value
                    Else
                        .Offset(1).Value = Ngay
                        .Offset(1, 1 + jJ).Value = sRng.Offset(, 3).Value
                        .Offset(1, 5).Value = 31 * Month(Ngay) + Day(Ngay)
                    End If
                End With
                Set sRng = Rng.FindNext(sRng)
            Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
        End If
    Next jJ
    Rws = [b10].CurrentRegion.Rows.Count
    [b10].Resize(Rws, 6).Sort Key1:=Range("G11"), Order1:=xlAscending, _
        Key2:=Range("D11"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1
    [g10].Resize(Rws).Clear
 End If
End Sub

Hay bạn copy toàn bộ macro này & bỏ vô trang tính đó xem sao?
 
/-)ây là macro trong trang tính 'The Kho'

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c7]) Is Nothing Then
    Dim Sh As Worksheet, Rng As Range, sRng As Range
    Dim jJ As Byte, MyAdd As String, ShName As String
    Dim Rws As Long, Ngay As Date
    
    Set Sh = Sheets("NXT")
    Rws = [A11].CurrentRegion.Offset(1, 1).Rows.Count
    [b11].Resize(Rws, 4).ClearContents
    
    Set Rng = Sh.Range(Sh.[b9], Sh.[b65500].End(xlUp))
    Set sRng = Rng.Find(Target.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        With [b65500].End(xlUp).Offset(1)
            .Value = DateSerial(Year(Date), Month(Date), 1) - 1
            .Offset(, 1).Value = sRng.Offset(, 3).Value
            .Offset(, 5) = 1
        End With
    End If
    [g10].Value = "GPE"
    For jJ = 1 To 2
        ShName = Choose(jJ, "Nhap", "Xuat")
        Set Sh = ThisWorkbook.Worksheets(ShName)
        Set Rng = Sh.Range(Sh.[D7], Sh.[D65500].End(xlUp))
        Set sRng = Rng.Find(Target.Value)
        If Not sRng Is Nothing Then
            MyAdd = sRng.Address
            Do
                With [b65500].End(xlUp)
                    If sRng.Offset(, -2).Value <> "" Then
                        Ngay = sRng.Offset(, -2).Value
                    Else
                        Ngay = sRng.Offset(, -2).End(xlUp).Value
                    End If
                    If Ngay = .Value Then
                        .Offset(, 1 + jJ).Value = .Offset(, 1 + jJ).Value + sRng.Offset(, 3).Value
                    Else
                        .Offset(1).Value = Ngay
                        .Offset(1, 1 + jJ).Value = sRng.Offset(, 3).Value
                        .Offset(1, 5).Value = 31 * Month(Ngay) + Day(Ngay)
                    End If
                End With
                Set sRng = Rng.FindNext(sRng)
            Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
        End If
    Next jJ
    Rws = [b10].CurrentRegion.Rows.Count
    [b10].Resize(Rws, 6).Sort Key1:=Range("G11"), Order1:=xlAscending, _
        Key2:=Range("D11"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1
    [g10].Resize(Rws).Clear
 End If
End Sub

Hay bạn copy toàn bộ macro này & bỏ vô trang tính đó xem sao?
Em làm thế này có phải k ah? Em vào tool chọn Marco, chọn vissual basic editor rùi paste code đó vào, nhưng vẫn k đc ah. Anh giúp em với ah
 
/-)ây là macro trong trang tính 'The Kho'

Đó là macro sự kiện ở trang 'The Kho' mới đặng!

Bạn fải chuột vô SheetName đó & chọn dòng cuối để đến cửa sổ chứa macro sự kiện này mới được!

Thân ái & chúc thành công!
 
Em đã phải chuột vào sheet " thẻ kho" chọn view code rồi pase code của anh gửi rồi nhưng vẫn chưa đc ah. Mong anh giúp em! Em cảm ơn ah!
 
Sao k thấy bác " ChanhTQ@" trả lời giúp em thế ah? hic hic
 
Web KT

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

Back
Top Bottom