Tính giá và tra cứu hạn sử dụng

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

TUTTIT

Thành viên mới
Tham gia
11/10/13
Bài viết
22
Được thích
1
Chào các anh chị trên diễn đàn GPE,
Hiện tại em đang có một vấn đề cần giải quyết trong công việc là khi em kiểm kê hàng hóa (ở đây là thuốc) thì do có rất nhiều mặt hàng cần được kiểm kê và tính lại giá thuốc cũng như tra cứu lại hạn sử dụng nhưng khi làm bằng công thức thì rất hay nhầm lẫn không kiểm soát được, dù đã mày mò học VBA để tự code nhưng vẫn không được nên em đành nhờ các anh chị trên diễn đàn giúp giùm em. Tất cả em đều đã ghi chú trong file đính kèm. Rất mong các anh chị giúp giùm em. Cám ơn mọi người rất nhiều.
 

File đính kèm

Chào các anh chị trên diễn đàn GPE,
Hiện tại em đang có một vấn đề cần giải quyết trong công việc là khi em kiểm kê hàng hóa (ở đây là thuốc) thì do có rất nhiều mặt hàng cần được kiểm kê và tính lại giá thuốc cũng như tra cứu lại hạn sử dụng nhưng khi làm bằng công thức thì rất hay nhầm lẫn không kiểm soát được, dù đã mày mò học VBA để tự code nhưng vẫn không được nên em đành nhờ các anh chị trên diễn đàn giúp giùm em. Tất cả em đều đã ghi chú trong file đính kèm. Rất mong các anh chị giúp giùm em. Cám ơn mọi người rất nhiều.

sao làm bằng cthuc lại nhầm lẫn?
Mã:
H5=F5*(1+VLOOKUP(F5,'Ty le'!$A$1:$C$6,2))+VLOOKUP(F5,'Ty le'!$A$1:$C$6,3)

condition format cho I5
Mã:
=$I5-NOW()<=30
 
Cám ơn anh Let'sGâuGâu, bị nhầm lẫn là do khi mình kiểm kê kho, cỏ tới khoảng 2300 thuốc khi mình kéo để fill không rõ là bị trục trặc gì nên bị lỗi, do đó mình muốn chuyển sang VBA để hạn chế lỗi và làm nhanh hơn, không mất thời gian để dò lại công thức.
 
Cám ơn anh Let'sGâuGâu, bị nhầm lẫn là do khi mình kiểm kê kho, cỏ tới khoảng 2300 thuốc khi mình kéo để fill không rõ là bị trục trặc gì nên bị lỗi, do đó mình muốn chuyển sang VBA để hạn chế lỗi và làm nhanh hơn, không mất thời gian để dò lại công thức.

nếu chức sai thì vba cũng có thể sai,
Cthức sai bạn còn có nhìn thấy, chứ vba sai thì bạn ko biết dò ở đâu.
như vậy để viết code, người ta phải lường những trường hợp nào có thể gây ra sai sót, không phải dể
 
Lần chỉnh sửa cuối:
Đúng là như anh Let'sGâuGâu nói, do mình cũng đang chập chững tự học VBA dù đã đọc sách nhưng cũng chưa thực sự hiểu lắm, vì không lường hết các sai sót có thể xảy ra khi code nên mới up lên để nhờ mọi người giúp vừa để tiện trong công việc và cũng là để học hỏi thêm các anh chị trên diễn đàn.
 
Đúng là như anh Let'sGâuGâu nói, do mình cũng đang chập chững tự học VBA dù đã đọc sách nhưng cũng chưa thực sự hiểu lắm, vì không lường hết các sai sót có thể xảy ra khi code nên mới up lên để nhờ mọi người giúp vừa để tiện trong công việc và cũng là để học hỏi thêm các anh chị trên diễn đàn.

tôi làm theo hàm vlookup ở trên, tôi không lường được trường hợp nào sẻ sai nha

Mã:
Sub DonGiaBan()
Dim Dgia As Variant, DgiaBan(), i, j As Long
Dgia = [F5].Resize([f60000].End(3).Row - 4).Value
ReDim kq(1 To UBound(Dgia), 1 To 1)
For i = 1 To UBound(Dgia)
Select Case Dgia(i, 1)
Case 0 To 1000
    kq(i, 1) = Dgia(i, 1) * 1.2 + 200
Case 1001 To 5000
    kq(i, 1) = Dgia(i, 1) * 1.15 + 400
Case 5001 To 100000
    kq(i, 1) = Dgia(i, 1) * 1.1 + 600
Case 100001 To 1000001
    kq(i, 1) = Dgia(i, 1) * 1.07 + 800
Case Else
    kq(i, 1) = Dgia(i, 1) * 1.05 + 1000
End Select
Next
[h5].Resize(i - 1).Value = kq
End Sub
 
tôi làm theo hàm vlookup ở trên, tôi không lường được trường hợp nào sẻ sai nha

Mã:
Sub DonGiaBan()
Dim Dgia As Variant, DgiaBan(), i, j As Long
Dgia = [F5].Resize([f60000].End(3).Row - 4).Value
ReDim kq(1 To UBound(Dgia), 1 To 1)
For i = 1 To UBound(Dgia)
Select Case Dgia(i, 1)
Case 0 To 1000
    kq(i, 1) = Dgia(i, 1) * 1.2 + 200
Case 1001 To 5000
    kq(i, 1) = Dgia(i, 1) * 1.15 + 400
Case 5001 To 100000
    kq(i, 1) = Dgia(i, 1) * 1.1 + 600
Case 100001 To 1000001
    kq(i, 1) = Dgia(i, 1) * 1.07 + 800
Case Else
    kq(i, 1) = Dgia(i, 1) * 1.05 + 1000
End Select
Next
[h5].Resize(i - 1).Value = kq
End Sub

Hiện tại mình thử code của anh Let'sGâuGâu, đoạn code trên là gắn các dữ liệu vào code nên khi thay đổi dữ liệu bên sheet Tỷ lệ thì code vẫn tính theo giá trị đã được gắn. Ý mình là muốn dùng code để tham chiếu số liệu từ sheet Tỷ lệ sang sheet Bảng giá rồi mới tiến hành tính toán, khi thay đổi thông tin bên sheet Tỷ lệ (thêm bớt các giá trị, tỷ lệ hay phụ phí) thì kết quả bên sheet Bảng giá sẽ được tính lại khi nhấn nút. Rất mong được mọi người giúp đỡ. ;;;;;;;;;;;
 
Không có ai giúp giùm mình với,
 
Không có ai giúp giùm mình với,

tạm dủng worksheetFunction
Mã:
Sub DonGiaBan()
Dim Dgia As Variant, DgiaBan(), i, j, r As Long
Dgia = [F5].Resize([f60000].End(3).Row - 4).Value
ReDim kq(1 To UBound(Dgia), 1 To 1)
For i = 1 To UBound(Dgia)
r = Application.Match(Dgia(i, 1), Sheet1.[A1:A6], 1)
   With Sheet1
        kq(i, 1) = (1 + .Range("B" & r)) * Dgia(i, 1) + .Range("C" & r)
    End With
Next
[h5].Resize(i - 1).Value = kq
End Sub
 
tạm dủng worksheetFunction
Mã:
Sub DonGiaBan()
Dim Dgia As Variant, DgiaBan(), i, j, r As Long
Dgia = [F5].Resize([f60000].End(3).Row - 4).Value
ReDim kq(1 To UBound(Dgia), 1 To 1)
For i = 1 To UBound(Dgia)
r = Application.Match(Dgia(i, 1), Sheet1.[A1:A6], 1)
   With Sheet1
        kq(i, 1) = (1 + .Range("B" & r)) * Dgia(i, 1) + .Range("C" & r)
    End With
Next
[h5].Resize(i - 1).Value = kq
End Sub

Đây chính là cái em muốn học, cám ơn anh Let'sGâuGâu nhiều. Mặc dù lúc đầu xem chưa hiểu lắm nhưng vọc vạch 1 hồi cũng đã ra. Lần sau rất mong được anh Let'sGâuGâu và các anh chị trên diễn đàn giúp đỡ thêm.:heart::heart::heart:
 
Web KT

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

Back
Top Bottom