Nhờ giúp lập công thức để khi nhập ngày tháng thì tự động nhảy số tiền tương ứng.

Liên hệ QC

nguyencanh1981

Thành viên mới
Tham gia
27/7/10
Bài viết
28
Được thích
2
Chào mọi người!
Tôi có 1 vấn đề cần mọi người giúp.
Theo file đính kèm, yêu cầu khi nhập ngày tháng trong cột NGÀY THÁNG thì số tiền sẽ tự động nhày ở cột SO TIEN theo cột dữ liệu ở cột GHI CHÚ.
Do trong các khoảng thời gian khác nhau sẽ có giá trị tiền khác nhau nên tôi xoay sở mãi vẫn không ra.
Rất mong được giúp đỡ.
Tôi xin cảm ơn rất nhiều.
 

File đính kèm

Lần chỉnh sửa cuối:
nhập ngày tháng vào ô màu cam
 

File đính kèm

Cảm ơn bạn đã bỏ thời gian giúp đỡ.
Mình có thêm chút thắc mắc nhờ bạn giải quyết luôn giúp, hì hì.
1. Một số cửa hàng hiện tại chưa có giá tiền thay đổi theo tháng, nếu sau này có phát sinh thì mình sửa ở đâu vậy bạn?
2. Bạn sửa lại giúp nếu cửa hàng nào không có ghi chú thời gian thì bạn cho hiện số tiền hiện tại được không?
Cảm ơn bạn nhiều.
 
nhập ngày tháng vào ô màu cam
Cảm ơn bạn đã bỏ thời gian giúp đỡ.
Mình có thêm chút thắc mắc nhờ bạn giải quyết luôn giúp, hì hì.
1. Một số cửa hàng hiện tại chưa có giá tiền thay đổi theo tháng, nếu sau này có phát sinh thì mình sửa ở đâu vậy bạn?
2. Bạn sửa lại giúp nếu cửa hàng nào không có ghi chú thời gian thì bạn cho hiện số tiền hiện tại được không?
3. Làm sao để khi thêm dòng hoặc thêm cột thì kết quả không bị thay đổì.
Mình định thêm 5 cột phía trước cột SO TIEN, bạn thêm rồi sửa luôn giúp mình với nhé (mình thêm và up file lên rồi nhưng không thấy nó ở đâu nên mới nhờ bạn thế này).
Cám ơn bạn nhiều nhiều.
 
Lần chỉnh sửa cuối:
nhờ ad xóa dùm câu trả lời này, mạng bị vấn đề hay sao mà nó hiện ra mấy câu trả lời nội dung như nhau.
Cảm ơn ad.
 
Lần chỉnh sửa cuối:
nhờ ad xóa dùm câu trả lời này, mạng bị vấn đề hay sao mà nó hiện ra mấy câu trả lời nội dung như nhau.
Cảm ơn ad.
 
Lần chỉnh sửa cuối:
Cảm ơn bạn đã bỏ thời gian giúp đỡ.
Mình có thêm chút thắc mắc nhờ bạn giải quyết luôn giúp, hì hì.
1. Một số cửa hàng hiện tại chưa có giá tiền thay đổi theo tháng, nếu sau này có phát sinh thì mình sửa ở đâu vậy bạn?
2. Bạn sửa lại giúp nếu cửa hàng nào không có ghi chú thời gian thì bạn cho hiện số tiền hiện tại được không?
3. Làm sao để khi thêm dòng hoặc thêm cột thì kết quả không bị thay đổi?
Mình tính thêm 1 số cột (file đính kèm), bạn sửa file lại giúp mình luôn nhé.
Cảm ơn bạn nhiều nhiều.
thêm 5 cột trước cột SOTIEN, và có hướng dẫn trong cách chỉnh code khi thay đổi dòng cột
số dòng phía dưới giới hạn 65500 dòng
code chỉ chạy khi bạn thay đổi ô ngày, hoặc bấm vào ngôi sao
 

File đính kèm

Mặc dù chưa hiểu lắm về cách sửa (mình gà mờ lắm) nhưng nó chạy được theo yêu cầu là mừng lắm rồi.
Cảm ơn bạn nhiều nhé ^^.

thêm 5 cột trước cột SOTIEN, và có hướng dẫn trong cách chỉnh code khi thay đổi dòng cột
số dòng phía dưới giới hạn 65500 dòng
code chỉ chạy khi bạn thay đổi ô ngày, hoặc bấm vào ngôi sao
 
thêm 5 cột trước cột SOTIEN, và có hướng dẫn trong cách chỉnh code khi thay đổi dòng cột
số dòng phía dưới giới hạn 65500 dòng
code chỉ chạy khi bạn thay đổi ô ngày, hoặc bấm vào ngôi sao

Haiiz, mình gà quá nên vẫn chưa thông cách bạn hướng dẫn khi thêm cột.
Trong bạn hướng dẫn: F là cột số tiền
G là cột nội dung
I là cột ghi chú
Nếu mình thêm 1 cột thì F chuyển thành G là cột số tiền, G chuyển thành H là cột nội dung, I thành J là ghi chú, ngày tháng K thành L.
Để sửa thì mình cứ tìm chỗ nào là F thì đánh lại thằnh G, G thì thay bằng H, I thành J, K thành L phải không bạn?
Mình thử thêm 1 cột và sửa theo cách này thì cột SO TIEN nó mất luôn dữ liệu thành ô trắng luôn bạn ạ.
Bạn chỉ giúp 1 trường hợp cụ thể khi thêm cột và dòng được không?
Cảm ơn bạn.
 
Haiiz, mình gà quá nên vẫn chưa thông cách bạn hướng dẫn khi thêm cột.
Trong bạn hướng dẫn: F là cột số tiền
G là cột nội dung
I là cột ghi chú
Nếu mình thêm 1 cột thì F chuyển thành G là cột số tiền, G chuyển thành H là cột nội dung, I thành J là ghi chú, ngày tháng K thành L.
Để sửa thì mình cứ tìm chỗ nào là F thì đánh lại thằnh G, G thì thay bằng H, I thành J, K thành L phải không bạn?
Mình thử thêm 1 cột và sửa theo cách này thì cột SO TIEN nó mất luôn dữ liệu thành ô trắng luôn bạn ạ.
Bạn chỉ giúp 1 trường hợp cụ thể khi thêm cột và dòng được không?
Cảm ơn bạn.
Mã:
Sub GPE()
Dim i As Long, j As Integer, tmp As String, s, m, nc, nd, ngay, arr()
On Error Resume Next
'Chu y: khi thay doi dong cot can sua dia chi trong Range("..") va "I"
'4 la dong du lieu dau tien
'F la cot SOTIEN, G la cot NOIDUNG, I la cot CHICHU
ReDim arr(1 To Range("G65500").End(xlUp).Row, 1 To 1)
Application.ScreenUpdating = False
ngay = Range("L3")  'K3 la dia chi o ngay
Range("G4:G" & Range("H65500").End(xlUp).Row).ClearContents
For i = 4 To Range("H65500").End(xlUp).Row
    tmp = ""
    tmp = WorksheetFunction.Trim(Replace(Replace(Replace(Replace(Replace(Cells(i, "J") _
            .Comment.Text, Chr(10), " "), "-", ""), ".", ""), "T", ""), ":", "")) ' "I"  dong tren la cot ghi chu
    If Len(tmp) > 0 Then
        s = Split(tmp, " ")
        nd = 0: nc = 0
        For j = UBound(s) To 0 Step -1
            If j Mod 3 = 1 Then
                m = Split(s(j), "/")
                If UBound(m) = 1 Then
                    nc = DateSerial(m(1), m(0) + 1, 1) - 1
                Else
                    nc = DateSerial(m(2), m(1), m(0))
                End If
            End If
            If j Mod 3 = 0 Then
                n = Split(s(j), "/")
                If UBound(n) = 1 Then
                    nd = DateSerial(n(1), n(0), 1)
                ElseIf UBound(n) = 2 Then
                    nd = DateSerial(n(2), n(1), n(0))
                ElseIf UBound(n) = 0 Then
                    nd = DateSerial(m(1), n(0), 1)
                End If
                If nd <= ngay And nc >= ngay Then
                    arr(i - 3, 1) = s(j + 2)
                    GoTo tiep
                End If
            End If
        Next j
    Else
        arr(i - 3, 1) = Cells(i, "J")   ' "I"  la cot ghi chu
    End If
tiep:
Next i
Range("G4").Resize(UBound(arr), 1) = arr
Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Mã:
Sub GPE()
Dim i As Long, j As Integer, tmp As String, s, m, nc, nd, ngay, arr()
On Error Resume Next
'Chu y: khi thay doi dong cot can sua dia chi trong Range("..") va "I"
'4 la dong du lieu dau tien
'F la cot SOTIEN, G la cot NOIDUNG, I la cot CHICHU
ReDim arr(1 To Range("G65500").End(xlUp).Row, 1 To 1)
Application.ScreenUpdating = False
ngay = Range("L3")  'K3 la dia chi o ngay
Range("G4:G" & Range("H65500").End(xlUp).Row).ClearContents
For i = 4 To Range("H65500").End(xlUp).Row
    tmp = ""
    tmp = WorksheetFunction.Trim(Replace(Replace(Replace(Replace(Replace(Cells(i, "J") _
            .Comment.Text, Chr(10), " "), "-", ""), ".", ""), "T", ""), ":", "")) ' "I"  dong tren la cot ghi chu
    If Len(tmp) > 0 Then
        s = Split(tmp, " ")
        nd = 0: nc = 0
        For j = UBound(s) To 0 Step -1
            If j Mod 3 = 1 Then
                m = Split(s(j), "/")
                If UBound(m) = 1 Then
                    nc = DateSerial(m(1), m(0) + 1, 1) - 1
                Else
                    nc = DateSerial(m(2), m(1), m(0))
                End If
            End If
            If j Mod 3 = 0 Then
                n = Split(s(j), "/")
                If UBound(n) = 1 Then
                    nd = DateSerial(n(1), n(0), 1)
                ElseIf UBound(n) = 2 Then
                    nd = DateSerial(n(2), n(1), n(0))
                ElseIf UBound(n) = 0 Then
                    nd = DateSerial(m(1), n(0), 1)
                End If
                If nd <= ngay And nc >= ngay Then
                    arr(i - 3, 1) = s(j + 2)
                    GoTo tiep
                End If
            End If
        Next j
    Else
        arr(i - 3, 1) = Cells(i, "J")   ' "I"  la cot ghi chu
    End If
tiep:
Next i
Range("G4").Resize(UBound(arr), 1) = arr
Application.ScreenUpdating = True
End Sub
Lạ nhỉ, mình cũng sửa giống hệt thế này mà VBA nó không hoạt động, copy của bạn vào nó lại chạy, híc híc.
 
Web KT

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

Back
Top Bottom