yeuthamhangxom
Thành viên tiêu biểu
- Tham gia
- 26/10/07
- Bài viết
- 517
- Được thích
- 419
- Nghề nghiệp
- Nhân viên văn phòng
Ý tưởng này xem ra dài dòng và lượm thượm quá bạn à ---> Nghĩ ra hướng khác đi!Gửi các anh chị GPE
Các anh chị giúp em code đưa dữ liệu sang sheet khác như yêu cầu trong file đính kèm.
Làm ơn gửi cho em số điện thoại nếu chưa rõ yêu cầu để em giải thích thêm.
Rất mong các anh chị giúp đỡ.
Cám ơn các anh chị nhiều.
vâng vậy nhờ anh ndu96081631 và các anh chị làm giúp em yêu cầu như file đính kèm.Ý tưởng này xem ra dài dòng và lượm thượm quá bạn à ---> Nghĩ ra hướng khác đi!
Option Explicit
Const Dong As Long = 999
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I3:I" & Dong)) Is Nothing And _
UCase$(Target.Offset(, -1).Value) = "X" Then
With Sheets("ChiTiet").[b65500].End(xlUp).Offset(1)
.Resize(, 5).Value = Target.Offset(, -7).Resize(, 5).Value
.Offset(, 5).Value = Target.Value
.Offset(, 6).Value = Target.Offset(, -2).Value
.Offset(, 7).Value = Target.Value * Target.Offset(, -2).Value
End With
End If
End Sub
Code vẫn còn lổi sư phụ à:Mình gài sẵn công thức đánh tự động số thứ tự ở ChiTiet rồi đó;PHP:Option Explicit Const Dong As Long = 999 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("I3:I" & Dong)) Is Nothing And _ UCase$(Target.Offset(, -1).Value) = "X" Then With Sheets("ChiTiet").[b65500].End(xlUp).Offset(1) .Resize(, 5).Value = Target.Offset(, -7).Resize(, 5).Value .Offset(, 5).Value = Target.Value .Offset(, 6).Value = Target.Offset(, -2).Value .Offset(, 7).Value = Target.Value * Target.Offset(, -2).Value End With End If End Sub
Sẵn đây nói luôn: Cần gì phải gán tên dài liên tu bất tận làm vậy, chả hữu ích thêm, mà chỉ gây phiền (Có thể bây giờ bạn chưa thấy điều này!)!
bạn HYén7 thân mến. Cám ơn bạn đã giúp đỡ. nhưng không hiểu sao máy mình khi mở ra và thêm vật tư mới nó toàn báo là If Not Intersect(Target, Range("I3:I" & Dong)) Is Nothing And _Mình gài sẵn công thức đánh tự động số thứ tự ở ChiTiet rồi đó;PHP:Option Explicit Const Dong As Long = 999 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("I3:I" & Dong)) Is Nothing And _ UCase$(Target.Offset(, -1).Value) = "X" Then With Sheets("ChiTiet").[b65500].End(xlUp).Offset(1) .Resize(, 5).Value = Target.Offset(, -7).Resize(, 5).Value .Offset(, 5).Value = Target.Value .Offset(, 6).Value = Target.Offset(, -2).Value .Offset(, 7).Value = Target.Value * Target.Offset(, -2).Value End With End If End Sub
Sẵn đây nói luôn: Cần gì phải gán tên dài liên tu bất tận làm vậy, chả hữu ích thêm, mà chỉ gây phiền (Có thể bây giờ bạn chưa thấy điều này!)!
đúng anh ndu96081631 ạ. anh có phương án giải quyết nào khác không giúp em với.Code vẫn còn lổi sư phụ à:
- Lổi khi kéo fill dòng trên xuống
- Lổi khi copy từ nơi khác paste vào
Nói chung em vẫn rất "ngán" cái Worksheet_Change này, tự mình dùng thì không sao còn cho người khác xài thì dể TÈO lắm
Theo tôi bạn đừng xài WorkSheet_Change thì hay hơn!đúng anh ndu96081631 ạ. anh có phương án giải quyết nào khác không giúp em với.
Cám ơn anh và mọi người đã giúp.
Nếu làm công thức chuyển qua thì mình chưa làm được. ý mình là tại sheet "bảng đơn giá" mình sẽ liệt kê hết tất cả các hạng mục vật tư mà đại lý mình bán. Nếu có khách hàng mua thì mình chỉ cần tích chữ "X" và ghi số lượng là tự đông dữ liệu được đưa sang và tính toán giá ơ sheet bên khi ấn nút hoàn tất 1 khách hàng thì dữ liệu sẽ cộng tổng tiền luôn đồng thời xóa hết những gì mình đã lựa chọn bên sheet "bảng đơn giá" để nếu có khách hàng mới khác mua mình cũng chỉ cần làm tương tự là gõ "X" và số lượng sau khi chọn xong ấn nút "hào tất 1 khách hàng" là xong. vì mỗi ngày chỗ mình bán cho rất nhiều khách hàng. Nếu làm kiểu này mình nghĩ sẽ nhanh hơn nhiều.Mình thấy yêu cầu bài này chỉ cần công thức chuyển qua là xong và tức thời vì số lượng hàng của 1 khách không nhiều. Làm chi phải sử dụng VBA cho phiền phức nhỉ? Hay là còn yêu cầu gì khác mình chưa hiểu.
Bạn xem thế này có đúng ý không nhéNếu làm công thức chuyển qua thì mình chưa làm được. ý mình là tại sheet "bảng đơn giá" mình sẽ liệt kê hết tất cả các hạng mục vật tư mà đại lý mình bán. Nếu có khách hàng mua thì mình chỉ cần tích chữ "X" và ghi số lượng là tự đông dữ liệu được đưa sang và tính toán giá ơ sheet bên khi ấn nút hoàn tất 1 khách hàng thì dữ liệu sẽ cộng tổng tiền luôn đồng thời xóa hết những gì mình đã lựa chọn bên sheet "bảng đơn giá" để nếu có khách hàng mới khác mua mình cũng chỉ cần làm tương tự là gõ "X" và số lượng sau khi chọn xong ấn nút "hào tất 1 khách hàng" là xong. vì mỗi ngày chỗ mình bán cho rất nhiều khách hàng. Nếu làm kiểu này mình nghĩ sẽ nhanh hơn nhiều.
Mong các cao thủ giúp đỡ bài toán trên.
Cám ơn các bạn đã giúp.