Xin giúp đỡ code tự động đưa dữ liệ sang sheet khác

Liên hệ QC

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
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.
 

File đính kèm

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.
Ý 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!
 
Upvote 0

File đính kèm

Upvote 0
File của bạn có lỗi nhỏ, hãy xem dưới đây

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
Mình gài sẵn công thức đánh tự động số thứ tự ở ChiTiet rồi đó;
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!)!
 

File đính kèm

Upvote 0
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
Mình gài sẵn công thức đánh tự động số thứ tự ở ChiTiet rồi đó;
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!)!
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
 
Upvote 0
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
Mình gài sẵn công thức đánh tự động số thứ tự ở ChiTiet rồi đó;
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 _
UCase$(Target.Offset(, -1).Value) = "X" Then
và tô màu vàng bạn ạ. nó là bị sao hả bạn. mình mới học VBA nên còn +-+-+-+ lắn bạn chỉ giúp mình nha.
cám ơn bạn và mọi người đã nhiệt tình giúp đỡ.
 
Upvote 0
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
đú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.
 
Upvote 0
đú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.
Theo tôi bạn đừng xài WorkSheet_Change thì hay hơn!
Cứ nhập liệu bình thường, đến cuối cùng ta bấm nút là nó lọc sang
Sub ấy sẽ hoạt động theo nguyên tắc sau:
- AutotFilter cột đánh dấu x (điều kiện lọc là "x")
- Copy dử sang sheet kia
Cái này quá dể, thậm chí bạn có thể record macro quá trình bạn AutoFilter rồi chỉnh lại tí code là xong ngay (trong tầm tay bạn)
 
Upvote 0
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.
 
Upvote 0
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.
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.
 
Upvote 0
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.
Bạn xem thế này có đúng ý không nhé
Mình dùng công thức và một tý macro
Thân
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom