Excel quản lý bán hàng

Liên hệ QC

khuctinhsy

Thành viên mới
Tham gia
18/1/07
Bài viết
44
Được thích
29
Giúp mình thiết kế thêm phần tồn với. thank nhiều.

Thank các bạn đã giúp đỡ, sau một thời gian mình đã hoàn thiện và nhập sản phẩm. nói chung mọi thứ là ok! mình xin đc share lại file này vì mình thấy nó sẽ có ích với rất nhiều người.
Có bạn nào rành về combobox giúp mình add vào 2 sheep nhap và xuat với, vì nếu nhiều mã hàng thì hơi khó nhớ.

Download
password: thanhkhoan.com
 

File đính kèm

  • ban hang.rar
    95.5 KB · Đọc: 5,260
Lần chỉnh sửa cuối:
Giúp mình thiết kế thêm phần tồn với. thank nhiều

ùi té ra là lập trình VBA hả..hix hix..MÌnh không hiểu cái này. Nếu làm trên excel và dùng công thức excel. mình sẽ giúp bạn được hì,,,mà thực ra cái phần quản lý này của bạn đơn giản không cần dùng tới VBA,..dùng công thức excel là đủ...Phần tổng hợp nhập xuất tồn bạn nên làm theo như mình ví dụ cho bạn trong file nhé..hì tiếc là k giúp dc bạn. Nếu bạn muốn minh sẽ giúp bạn làm lại hoàn toàn trên excel. công thức đơn giản mà dễ hiểu. Mình xem fiel rồi cái công thức đơn giá vốn đầu kỳ của bạn ấy quá. dùng hàm if(type(vlookup cho dễ mà ngắn gọn
 
Lần chỉnh sửa cuối:
Đây là macro sau khi sửa lại (tại dòng lệnh mang số 9)

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Sh0 As Worksheet, Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
 Dim ShName As String, MyAdd As String
 Dim Sj As Byte, SoNg As Long, Jj As Long, SoLg As Double
 Dim Dat As Date

 If Not Intersect(Target, [F1]) Is Nothing Then
   Set Sh0 = ThisWorkbook.Worksheets("DM Hang")
   Jj = Sh0.UsedRange.Rows.Count
   Dat = DateSerial(Year(Target.Value), 1, 1)
   SoNg = Target.Value - Dat
   [b3].Resize(Jj, 6).ClearContents
   For Each Cls In Sh0.Range(Sh0.[a3], Sh0.[A65500].End(xlUp))
      SoLg = Cls.Offset(, 3).Value
      For Jj = 0 To SoNg
         For Sj = 1 To 2
            ShName = Choose(Sj, "Nhap", "Xuat")
            Set Sh = ThisWorkbook.Worksheets(ShName)
            Set Rng = Sh.Range(Sh.[b3], Sh.[B65500].End(xlUp))
            Set sRng = Rng.Find(Format(Dat + Jj, "mm/dd/yyyy"), , xlValues, xlWhole)
            If Not sRng Is Nothing Then
               MyAdd = sRng.Address
               Do
                  If Cls.Value = sRng.Offset(, 1).Value Then
9                     SoLg = SoLg + Choose(Sj, 1, -1) * sRng.Offset(, Choose(Sj, 4, 6)).Value   '<=|'
                   End If
                  Set sRng = Rng.FindNext(sRng)
               Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
            End If
         Next Sj
      Next Jj
      With Cells(Cls.Row, "B")
         .Resize(, 3).Value = Cls.Resize(, 3).Value
         .Offset(, 3).Value = SoLg
      End With
   Next Cls
 End If
End Sub
 
ùi té ra là lập trình VBA hả..hix hix..MÌnh không hiểu cái này. Nếu làm trên excel và dùng công thức excel. mình sẽ giúp bạn được hì,,,mà thực ra cái phần quản lý này của bạn đơn giản không cần dùng tới VBA,..dùng công thức excel là đủ...Phần tổng hợp nhập xuất tồn bạn nên làm theo như mình ví dụ cho bạn trong file nhé..hì tiếc là k giúp dc bạn. Nếu bạn muốn minh sẽ giúp bạn làm lại hoàn toàn trên excel. công thức đơn giản mà dễ hiểu. Mình xem fiel rồi cái công thức đơn giá vốn đầu kỳ của bạn ấy quá. dùng hàm if(type(vlookup cho dễ mà ngắn gọn
Bạn ơi! Giúp mình chút với.
Mình xem file của bạn đăng trên đó, Cái phần bên Nhập và bên xuất khi mình đánh mã hàng nó không tự nhày ra tên hàng haà quy cách ak? Mình có 1 file XNT gần giống dạng của bạn, nhg phần DM hàng của mình bị hỏng nên sang bêN Xn nó hok tự nhảy đc như trc nữa. Bạn có thể giúp mình làm 1 file excel như vậy dc hok
 
Mình dùng macro sự kiện ở [F1]
Bạn ơi bạn tính lại cho mình với. Ở phần xuất hàng ấy nó thống kê ở cột tồn từng ngày do đó bạn ko thể cộng tổng lại đc mà phải lấy ở ngày cuối cùng, Mình ví dụ: Hộp giấy ăn ở sheep Tồn bị âm 381 hộp.
àh nhân tiện các bạn giúp mình thiết kế lại phần xuất với trước mình có nhờ một cao thủ làm hộ nhưng mà dùng = công thức mảng nên khi có nhiều hàng hóa mình tham chiếu xuống càng nhiều máy càng hay bị treo.
 
Lần chỉnh sửa cuối:
Đây là macro sau khi sửa lại (tại dòng lệnh mang số 9)

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Sh0 As Worksheet, Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
 Dim ShName As String, MyAdd As String
 Dim Sj As Byte, SoNg As Long, Jj As Long, SoLg As Double
 Dim Dat As Date

 If Not Intersect(Target, [F1]) Is Nothing Then
   Set Sh0 = ThisWorkbook.Worksheets("DM Hang")
   Jj = Sh0.UsedRange.Rows.Count
   Dat = DateSerial(Year(Target.Value), 1, 1)
   SoNg = Target.Value - Dat
   [b3].Resize(Jj, 6).ClearContents
   For Each Cls In Sh0.Range(Sh0.[a3], Sh0.[A65500].End(xlUp))
      SoLg = Cls.Offset(, 3).Value
      For Jj = 0 To SoNg
         For Sj = 1 To 2
            ShName = Choose(Sj, "Nhap", "Xuat")
            Set Sh = ThisWorkbook.Worksheets(ShName)
            Set Rng = Sh.Range(Sh.[b3], Sh.[B65500].End(xlUp))
            Set sRng = Rng.Find(Format(Dat + Jj, "mm/dd/yyyy"), , xlValues, xlWhole)
            If Not sRng Is Nothing Then
               MyAdd = sRng.Address
               Do
                  If Cls.Value = sRng.Offset(, 1).Value Then
9                     SoLg = SoLg + Choose(Sj, 1, -1) * sRng.Offset(, Choose(Sj, 4, 6)).Value   '<=|'
                   End If
                  Set sRng = Rng.FindNext(sRng)
               Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
            End If
         Next Sj
      Next Jj
      With Cells(Cls.Row, "B")
         .Resize(, 3).Value = Cls.Resize(, 3).Value
         .Offset(, 3).Value = SoLg
      End With
   Next Cls
 End If
End Sub

Mình không biết sử dụng macro thế nào đâu, các bạn làm xong giúp mình add luôn vào file nha
 
Bạn ơi! Giúp mình chút với.
Mình xem file của bạn đăng trên đó, Cái phần bên Nhập và bên xuất khi mình đánh mã hàng nó không tự nhày ra tên hàng haà quy cách ak? Mình có 1 file XNT gần giống dạng của bạn, nhg phần DM hàng của mình bị hỏng nên sang bêN Xn nó hok tự nhảy đc như trc nữa. Bạn có thể giúp mình làm 1 file excel như vậy dc hok
HiHI cái phần nhập xuất mình hay ở chỗ là không cần phải nhớ mã hàng, tên hàng mà chỉ cần đặt chuột vào là nó tham chiếu sang bên sheep DM bạn chỉ cần chọn trong list hồi trc có một người trên GPE thiết kế cho mình bằng combofix gì đó
 
Bạn ơi giúp mình làm lại với. vẫn bị sai ở phần tồn. mình ví dụ như mã LH06 tồn ĐK 9 + nhập 1=10
xuất 2+3 = 5 --> tồn cuối kỳ = 5 (còn GPeVattu lại tính ra tồn cuối kỳ là -7).

Còn một vấn đề nữa là phần lãi lỗ thì ở file của mình thiết kế tính cho từng lần bán. các bạn giúp mình tính tổng lãi của tổng số hàng đã bán đến cùng một thời điểm cho từng loại hàng thể hiện trên sheep Tồn đc ko. Mình đính kèm lại file và đã thêm một số chỉ tiêu, các bạn giúp mình với. Mình đang rất cần vì mình mới mở một shop nho nhỏ muốn dựa vào file này để quản lý hàng.

xin cảm ơn!
 

File đính kèm

  • ban hang 1.rar
    96 KB · Đọc: 674
Bạn ơi giúp mình làm lại với. vẫn bị sai ở phần tồn. mình ví dụ như mã LH06 tồn ĐK 9 + nhập 1=10
xuất 2+3 = 5 --> tồn cuối kỳ = 5 (còn GPeVattu lại tính ra tồn cuối kỳ là -7).

Còn một vấn đề nữa là phần lãi lỗ thì ở file của mình thiết kế tính cho từng lần bán. các bạn giúp mình tính tổng lãi của tổng số hàng đã bán đến cùng một thời điểm cho từng loại hàng thể hiện trên sheep Tồn đc ko. Mình đính kèm lại file và đã thêm một số chỉ tiêu, các bạn giúp mình với. Mình đang rất cần vì mình mới mở một shop nho nhỏ muốn dựa vào file này để quản lý hàng.

xin cảm ơn!

trời ơi là trời bạn nghe mình thì có phải dễ dàng không? Mình đã bảo là cái file quản lý của bạn ấy. dùng hoàn toàn bằng excel là đơn giản nhất...Nếu nhất trí mình sẽ giúp bạn thiết kế lại hoàn toàn bằng công thức . Nếu cần thì add nik yahoo mình để tiện trao đổi@$@!^%
 
trời ơi là trời bạn nghe mình thì có phải dễ dàng không? Mình đã bảo là cái file quản lý của bạn ấy. dùng hoàn toàn bằng excel là đơn giản nhất...Nếu nhất trí mình sẽ giúp bạn thiết kế lại hoàn toàn bằng công thức . Nếu cần thì add nik yahoo mình để tiện trao đổi@$@!^%
Bạn giúp mình thiết kế bằng công thức excel với nhưng cai combobox của mình vẫn phải giữ nguyên hihi
 
Bạn giúp mình thiết kế bằng công thức excel với nhưng cai combobox của mình vẫn phải giữ nguyên hihi
Nếu để cái combox như của bạn ấy thì nxt pải dùng code mới ra. bạn sợ không thể nhớ mã hàng mình sẽ có cách giúp bạn không cần nhớ MH.
 
Nếu để cái combox như của bạn ấy thì nxt pải dùng code mới ra. bạn sợ không thể nhớ mã hàng mình sẽ có cách giúp bạn không cần nhớ MH.
OK thế thì giúp mình nha. Không cần phải giống như của mình, Quan trọng là quản lý đc hàng tồn kho, quản lý đc thông tin khách hàng, tính lãi lỗ cho từng mặt hàng (bất cứ thời điểm nào cũng tính đc thì tốt). Mình muốn càng đơn giản càng tốt, hàng hóa mình nhập về mình đã tự phân bổ chi phí vào nguyên giá rồi, hàng nhập ở các thời điểm khác nhau nên giá nhập khác nhau, bạn tính giá vốn xuất kho theo PP nào cũng đc, quan trọng là để nó ra lãi lỗ thôi.

Xin cảm ơn!
 
Bạn ơi! Giúp mình chút với.
Mình xem file của bạn đăng trên đó, Cái phần bên Nhập và bên xuất khi mình đánh mã hàng nó không tự nhày ra tên hàng haà quy cách ak? Mình có 1 file XNT gần giống dạng của bạn, nhg phần DM hàng của mình bị hỏng nên sang bêN Xn nó hok tự nhảy đc như trc nữa. Bạn có thể giúp mình làm 1 file excel như vậy dc hok

bạn chuyển file qua cho mình
 
OK thế thì giúp mình nha. Không cần phải giống như của mình, Quan trọng là quản lý đc hàng tồn kho, quản lý đc thông tin khách hàng, tính lãi lỗ cho từng mặt hàng (bất cứ thời điểm nào cũng tính đc thì tốt). Mình muốn càng đơn giản càng tốt, hàng hóa mình nhập về mình đã tự phân bổ chi phí vào nguyên giá rồi, hàng nhập ở các thời điểm khác nhau nên giá nhập khác nhau, bạn tính giá vốn xuất kho theo PP nào cũng đc, quan trọng là để nó ra lãi lỗ thôi.

Xin cảm ơn!

do k có thời gian làm lại nên mình dựa vào file của bạn và làm lại một số chỗ. Thêm phần theo dõi chi tiết từng vật tư theo khoảng thời gian như bạn nói. Bạn coi file này
 

File đính kèm

  • ban hang.rar
    164.5 KB · Đọc: 2,160
Bạn ơi giúp mình làm lại với. vẫn bị sai ở phần tồn. mình ví dụ như mã LH06 tồn ĐK 9 + nhập 1=10
xuất 2+3 = 5 --> tồn cuối kỳ = 5 (còn GPeVattu lại tính ra tồn cuối kỳ là -7).

Xin lỗi bạn 1 điều là hôm đó quá vội trước khi đi xa nên chỉ mớí chép macro vô file như bạn mong thôi; chưa chạy nó để ra kết quả theo đúng (Vẫn là kết quả của macro trước)

Bạn thử kích hoạt ô [F1] & bấm chuộc lên thanh công thức & nhấn {ENTER} để có kết quả mới!

Còn chuyện này: "Còn một vấn đề nữa là phần lãi lỗ thì ở file của mình thiết kế tính cho từng lần bán. các bạn giúp mình tính tổng lãi của tổng số hàng đã bán đến cùng một thời điểm cho từng loại hàng thể hiện trên sheep Tồn đc ko. Mình đính kèm lại file và đã thêm một số chỉ tiêu, các bạn giúp mình với. Mình đang rất cần vì mình mới mở một shop nho nhỏ muốn dựa vào file này để quản lý hàng." sẽ xem thêm;
Nhưng theo mình thì bạn không nên làm vậy ở trang nào khác, mà tồn vào những ngày cố định trong tháng & quí như ngày cuối tháng & giữa tháng nên chép sang trang 'DM Hang'. Chúng được chép tuần tự thời gian theo sự tăng dần của cột.
Có nghĩa là cột 'H' từ H3 xuống chép tồn ngày 1/3/2011, thì cột I có thể chứa tồn ngày 15/03/2011 hay 1/4/2011. . . (Tất nhiên tiêu đề của chúng sẽ là ngày chép tồn này).
Với cấu trúc này, ta có thể xóa bất cứ cột nào giữa các cột tồn một khi thấy không cần thiết để lại nữa.
Chuyện này mình đã làm cho 1 bạn ở bài nào đó nên tin sẽ làm được & có thể mở rọng ra tính tồn giá vốn hay giá bán luôn
 
Lần chỉnh sửa cuối:
Xin lỗi bạn 1 điều là hôm đó quá vội trước khi đi xa nên chỉ mớí chép macro vô file như bạn mong thôi; chưa chạy nó để ra kết quả theo đúng (Vẫn là kết quả của macro trước)

Bạn thử kích hoạt ô [F1] & bấm chuộc lên thanh công thức & nhấn {ENTER} để có kết quả mới!

Còn chuyện này: "Còn một vấn đề nữa là phần lãi lỗ thì ở file của mình thiết kế tính cho từng lần bán. các bạn giúp mình tính tổng lãi của tổng số hàng đã bán đến cùng một thời điểm cho từng loại hàng thể hiện trên sheep Tồn đc ko. Mình đính kèm lại file và đã thêm một số chỉ tiêu, các bạn giúp mình với. Mình đang rất cần vì mình mới mở một shop nho nhỏ muốn dựa vào file này để quản lý hàng." sẽ xem thêm;
Nhưng theo mình thì bạn không nên làm vậy ở trang nào khác, mà tồn vào những ngày cố định trong tháng & quí như ngày cuối tháng & giữa tháng nên chép sang trang 'DM Hang'. Chúng được chép tuần tự thời gian theo sự tăng dần của cột.
Có nghĩa là cột 'H' từ H3 xuống chép tồn ngày 1/3/2011, thì cột I có thể chứa tồn ngày 15/03/2011 hay 1/4/2011. . . (Tất nhiên tiêu đề của chúng sẽ là ngày chép tồn này).
Với cấu trúc này, ta có thể xóa bất cứ cột nào giữa các cột tồn một khi thấy không cần thiết để lại nữa.
Chuyện này mình đã làm cho 1 bạn ở bài nào đó nên tin sẽ làm được & có thể mở rọng ra tính tồn giá vốn hay giá bán luôn

Ok thank bạn nhiều, Còn phần tính giá vốn, doanh thu và lãi lỗ mình có thể dùng hàm sumif giống của bạn usagi90 cũng đc. Nếu có thời gian bạn giúp mình nghiên cứu tối ưu file này nha, ở bên sheep xuất có dùng công thức mảng nên lúc mình tham chiếu xuống ô tầm 1000 là nó bắt đầu xử lý chậm rồi, nếu máy yếu là treo luôn, Mình muốn thiết kế thêm một sheep danh mục khách hàng, và nhà cung cấp để nếu sau này có mở rộng shop thì dễ quản lý hơn. xin cảm ơn các bạn rất nhiều, trước mắt thế này là ổn rồi.
 
Thú thiệt là mình không có tẹo kiến thức nghiệp vụ về vấn đề này & công thức cũng . .

Nếu có thời gian bạn giúp mình nghiên cứu tối ưu file này nha, ở bên sheep xuất có dùng công thức mảng nên lúc mình tham chiếu xuống ô tầm 1000 là nó bắt đầu xử lý chậm rồi, nếu máy yếu là treo luôn,

. . rất hạn chế. Bạn có thể diễn dịch công thức mảng đó bằng lời Việt được không?

Nếu được mình sẽ diễn dịch lời Việt của công thức đó ra mã VBA cùng bạn

Chờ tin bạn & thân ái!
 
Giúp mình chèn thêm một cột trước cột mã số ở DM hàng với, mình ko biết dùng marco thế nào nên khi chèn thêm vào thì phần Tồn nó ko tính đc nữa. Cái công thức mảng mình cũng ko biết dịch đâu, lần trc mình post bài lên có người làm cho mình, để mình hỏi lại đã
 
Lần chỉnh sửa cuối:
Bạn fải chuột vô thanh SheetName có tên là 'Ton' & chọn dòng dưới cùng của hộp thoại'

Bạn sẽ được đưa tới CS VBA chứa macro sự kiện của trang tính này & thấy nội dung gần như là:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Sh0 As Worksheet, Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
 Dim ShName As String, MyAdd As String
 Dim Sj As Byte, SoNg As Long, Jj As Long, SoLg As Double
 Dim Dat As Date

 If Not Intersect(Target, [F1]) Is Nothing Then
   Set Sh0 = ThisWorkbook.Worksheets("DM Hang")
   Jj = Sh0.UsedRange.Rows.Count
   Dat = DateSerial(Year(Target.Value), 1, 1)
   SoNg = Target.Value - Dat
   [B3].Resize(Jj, 6).ClearContents
7   For Each Cls In Sh0.Range(Sh0.[B3], Sh0.[B65500].End(xlUp)) '<=|'
      SoLg = Cls.Offset(, 3).Value
      For Jj = 0 To SoNg
         For Sj = 1 To 2
            ShName = Choose(Sj, "Nhap", "Xuat")
            Set Sh = ThisWorkbook.Worksheets(ShName)
            Set Rng = Sh.Range(Sh.[B3], Sh.[B65500].End(xlUp))
            Set sRng = Rng.Find(Format(Dat + Jj, "mm/dd/yyyy"), , xlValues, xlWhole)
            If Not sRng Is Nothing Then
               MyAdd = sRng.Address
               Do
                  If Cls.Value = sRng.Offset(, 1).Value Then
                     SoLg = SoLg + Choose(Sj, 1, -1) * sRng.Offset(, Choose(Sj, 4, 6)).Value
                   End If
                  Set sRng = Rng.FindNext(sRng)
               Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
            End If
         Next Sj
      Next Jj
      With Cells(Cls.Row, "B")
         .Resize(, 3).Value = Cls.Resize(, 3).Value
         .Offset(, 3).Value = SoLg
      End With
   Next Cls
 End If
End Sub

Tại dòng tương ứng với dòng được ghi số (7) ta sửa lại cho chúng giống nhau với cái mới này

(Đó là bạn thêm 1 cột, thì cột 'A' cũ trở thành cột 'B', vậy thôi & chúc vui!)
 
Web KT
Back
Top Bottom