Tự động điền công thức theo điều kiện ? (1 người xem)

Liên hệ QC

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

nescafe

Thành viên mới
Tham gia
14/8/11
Bài viết
7
Được thích
0
Chào các bạn!
Phiền các bạn giúp đỡ mình trường hợp này với:
Mình muốn là sao để khi có dữ liệu bất kỳ tại ô nào đó trong cột màu vàng.
Thì những ô màu đỏ sẽ tự điền công thức (giống như kiểu kéo từ trên xuống).

Các bạn xem file giúp mình với! Xin cảm ơn.
 

File đính kèm

Chào các bạn!
Phiền các bạn giúp đỡ mình trường hợp này với:
Mình muốn là sao để khi có dữ liệu bất kỳ tại ô nào đó trong cột màu vàng.
Thì những ô màu đỏ sẽ tự điền công thức (giống như kiểu kéo từ trên xuống).

Các bạn xem file giúp mình với! Xin cảm ơn.

Chỉ cần quét chọn E8:I11, vào tab Insert, chọn Table rồi OK phát là xong!
Từ giờ, cứ điền thêm dữ liệu là công thức tự fill
 
Upvote 0
Chỉ cần quét chọn E8:I11, vào tab Insert, chọn Table rồi OK phát là xong!
Từ giờ, cứ điền thêm dữ liệu là công thức tự fill
Cảm ơn bạn đã cho ý kiến! Cách này mình cũng đã biết đến rồi,tuy là công cụ có sẵ nhưng mình không thích dùng cái này lắm.
Bạn có thể viết cho mình mình xin một đoạn mã cho bài này được không?
Cảm ơn bạn nhiều.
 
Upvote 0
Xin lỗi các bạn, mình xin nhắc lại chủ đề này vì hỏi đã lâu nhưng chưa có câu trả lời...
Bạn nào biết giúp mình với nhé! Cảm ơn nhiều!!
 
Upvote 0
Const C_SO_LUONG = 6, C_DON_GIA = 7, C_THANH_TIEN = 9

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 8 And Target.Row < 19 then
If Target.Column = C_SO_LUONG Or Target.Column = C_DON_GIA Then
If Target <> vbNullString Then
Cells(Target.Row, C_THANH_TIEN) = "=RC[-3]*RC[-2]"
Cells(Target.Row, C_THANH_TIEN - 1) = "=RC[1]"
End If
End If
End If
End Sub

đại loại như vậy, bạn sửa thêm tuỳ ý
p/s: nhớ lưu file dạng macro-enable hoặc binary
 
Lần chỉnh sửa cuối:
Upvote 0
Hay thật,Cảm ơn người anh em nhiều nhé!
Chúc bạn luôn vui vẻ!
 
Upvote 0
Const C_SO_LUONG = 6, C_DON_GIA = 7, C_THANH_TIEN = 9

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 8 And Target.Row < 19 then
If Target.Column = C_SO_LUONG Or Target.Column = C_DON_GIA Then
If Target <> vbNullString Then
Cells(Target.Row, C_THANH_TIEN) = "=RC[-3]*RC[-2]"
Cells(Target.Row, C_THANH_TIEN - 1) = "=RC[1]"
End If
End If
End If
End Sub

đại loại như vậy, bạn sửa thêm tuỳ ý
p/s: nhớ lưu file dạng macro-enable hoặc binary

Chào bạn jack nt,

Theo mình thì code sửa thành vầy:
Mã:
Const C_SO_LUONG = 6, C_DON_GIA = 7, C_THANH_TIEN = 9

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = C_SO_LUONG Or Target.Column = C_DON_GIA Then
If Target.Cells.Count = 1 Then
If Target.Offset(, 5 - Target.Column) <> vbNullString Then
Cells(Target.Row, C_THANH_TIEN) = "=RC[-3]*RC[-2]"
Cells(Target.Row, C_THANH_TIEN - 1) = "=RC[1]"
End If
End If
End If
End Sub

sẽ tránh được 2 lỗi:
1. Nếu người dùng xoá phần dữ liệu để nhập dữ liệu khác.
2. Khi nhập số lượng hoặc đơn giá vào là code tính liền dù chẳng có Cam Quýt Mít Dừa gì cả.
Mà kể cũng lạ chủ Topic lại không muốn dùng chức năng Insert table mà excel có sẵn lại đi làm cái mới để dùng nhỉ. --=--
 
Upvote 0
Mà kể cũng lạ chủ Topic lại không muốn dùng chức năng Insert table mà excel có sẵn lại đi làm cái mới để dùng nhỉ. --=--[/QUOTE đã viết:
thực sự thì mình biết vb6 hơn là vba. không rành excel lắm nên nhiều khi không biết cái có sẵn để dùng. vô đây học hỏi từ anh em nhiều. cảm ơn
 
Upvote 0
Cảm ơn bạn đã cho ý kiến! Cách này mình cũng đã biết đến rồi,tuy là công cụ có sẵ nhưng mình không thích dùng cái này lắm.
Bạn có thể viết cho mình mình xin một đoạn mã cho bài này được không?
Cảm ơn bạn nhiều.

Dám cá với bạn không ai đủ "bản lĩnh" để viết 1 code hoạt động giống với Table
Table, PivoTable là những công cụ đặc sắc nhất của bác Bill, bạn còn chê thì không biết cái gì mới gọi là ngon lành?
 
Upvote 0

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

Back
Top Bottom