Hỏi cách chuyển và lưu dữ liệu bảng kê sang sheet khác và xóa dữ liệu vừa nhập

Liên hệ QC

siv2

Thành viên hoạt động
Tham gia
14/7/12
Bài viết
122
Được thích
7
Mình làm thủ quỹ thu chi tiền mặt muốn tạo 1 bảng kê tiền như file kèm theo. Mà trình VBA kém quá , mong anh em giúp đỡ để file của mình làm dc như sau:
- Mỗi lần thu chi tiền xong click vào shapes " Lưu ...." là nội dung : Họ Tên , giờ giao dịch , số tờ tiền thu chi sẽ lưu sang sheet " Lưu" như 1 ví dụ e đã làm sẵn,
-Lưu sang sang bên bảng kê nhập phải xóa hết các dữ liệu đã nhập của khác hàng trước sẵn sàng cho khách hàng sau
Mong các anh chị giúp đỡ ! Mình cảm ơn nhiều !!!!
Thêm chút là mình có file " Mẫu" kèm theo nhưng ko có pass đầy đủ để chỉnh sửa nên muốn làm file mới cũng đưa lên đây để mọi người dễ hiểu. Anh em lưu ý là ở file mẫu click vào chữ " Bảng Kê " phía trên là nó sẽ lưu lần lượt từng khách hàng sang sheet MAUDT
Nguyện vọng của mình là làm dc như file mẫu và cải tiến thêm chút là mỗi lần lưu là cả thu cả chi luôn !
 

File đính kèm

  • Mẫu.xls
    157 KB · Đọc: 11
  • Cần làm.xlsx
    17.6 KB · Đọc: 9
Lần chỉnh sửa cuối:
Mình làm thủ quỹ thu chi tiền mặt muốn tạo 1 bảng kê tiền như file kèm theo. Mà trình VBA kém quá , mong anh em giúp đỡ để file của mình làm dc như sau:
- Mỗi lần thu chi tiền xong click vào shapes " Lưu ...." là nội dung : Họ Tên , giờ giao dịch , số tờ tiền thu chi sẽ lưu sang sheet " Lưu" như 1 ví dụ e đã làm sẵn,
-Lưu sang sang bên bảng kê nhập phải xóa hết các dữ liệu đã nhập của khác hàng trước sẵn sàng cho khách hàng sau
Mong các anh chị giúp đỡ ! Mình cảm ơn nhiều !!!!
File thiết kế như bạn thì cứ làm thủ công đi vì code không bao giờ làm data như bạn đâu.
 
File thiết kế như bạn thì cứ làm thủ công đi vì code không bao giờ làm data như bạn đâu.
Gõ dữ liệu vào một dòng rồi chuyển cả dòng sang csdl (tức là sheet khác) là chuyện cũng đúng thôi.

Chỉ là quy trình của thớt không có chỗ nào tránh dữ liệu bị nhập nhiều lần.
 
Bạn xem file mẫu mình gửi thêm , mục đích mình muốn làm như thế mà ko hiểu người ta làm thế nào
Bạn thử code này chưa có kiểm tra điều kiện các loại.
Mã:
Sub luu()
   Dim i As Long, kq(1 To 2, 1 To 15), lr As Long
   With Sheet1
        kq(1, 1) = .Range("c8").Value
        kq(1, 2) = Now()
        kq(1, 3) = "Thu"
        kq(1, 4) = .Range("C13").Value
        kq(1, 5) = .Range("C14").Value
        kq(1, 6) = .Range("C15").Value
        kq(1, 7) = .Range("C16").Value
        kq(1, 8) = .Range("C17").Value
        kq(1, 9) = .Range("C18").Value
        kq(1, 10) = .Range("C19").Value
        kq(1, 11) = .Range("C20").Value
        kq(1, 12) = .Range("C21").Value
        kq(1, 13) = .Range("C22").Value
        kq(1, 14) = .Range("C23").Value
        kq(1, 15) = .Range("D24").Value
        kq(2, 2) = Now()
        kq(2, 3) = "Chi"
        kq(2, 4) = .Range("i13").Value
        kq(2, 5) = .Range("i14").Value
        kq(2, 6) = .Range("i15").Value
        kq(2, 7) = .Range("i16").Value
        kq(2, 8) = .Range("i17").Value
        kq(2, 9) = .Range("i18").Value
        kq(2, 10) = .Range("i19").Value
        kq(2, 11) = .Range("i20").Value
        kq(2, 12) = .Range("i21").Value
        kq(2, 13) = .Range("i22").Value
        kq(2, 14) = .Range("i23").Value
        kq(2, 15) = .Range("j24").Value
        .Range("C13:C23").ClearContents
        .Range("i13:i23").ClearContents
  End With
  With Sheet2
      lr = .Range("D" & Rows.Count).End(xlUp).Row + 1
      .Range("B" & lr).Resize(2, 15).Value = kq
  End With
End Sub
 
Gom chỗ dài dài kia lại chứ... :)

For icol = 4 to 14
kq(1, icol) = .Range("C13").Offset(i -4).value
kq(2, icol) = .Range("I13").Offset(i -4).value
Next icol
 
Gom chỗ dài dài kia lại chứ... :)

For icol = 4 to 14
kq(1, icol) = .Range("C13").Offset(i -4).value
kq(2, icol) = .Range("I13").Offset(i -4).value
Next icol
Mỗi lượt chạy phải tính cái range?
With .Range("C13")
For iCol = 4 to 15
kq(1, iCol) = .Offset(i-4, ).Value
kq(2, iCol) = .Offset(i-4, 6).Value
Next iCol
End With

Ở đây chỉ có 1 cell cho nên dùng thuộc tính Cells dễ hơn.
For iCol = 4 to 15
kq(1, iCol) = .Cells(i + 9, "C").Value
kq(2, iCol) = .Cells(i + 9, "I").Value
Next iCol
 
Mỗi lượt chạy phải tính cái range?
With .Range("C13")
For iCol = 4 to 15
kq(1, iCol) = .Offset(i-4, ).Value
kq(2, iCol) = .Offset(i-4, 6).Value
Next iCol
End With

Ở đây chỉ có 1 cell cho nên dùng thuộc tính Cells dễ hơn.
For iCol = 4 to 15
kq(1, iCol) = .Cells(i + 9, "C").Value
kq(2, iCol) = .Cells(i + 9, "I").Value
Next iCol
Vâng anh điền tay cho bạn đó rễ hiểu ấy mà.Làm vòng lặp thì nó tiện hơn.
 
Bạn thử code này chưa có kiểm tra điều kiện các loại.
Mã:
Sub luu()
   Dim i As Long, kq(1 To 2, 1 To 15), lr As Long
   With Sheet1
        kq(1, 1) = .Range("c8").Value
        kq(1, 2) = Now()
        kq(1, 3) = "Thu"
        kq(1, 4) = .Range("C13").Value
        kq(1, 5) = .Range("C14").Value
        kq(1, 6) = .Range("C15").Value
        kq(1, 7) = .Range("C16").Value
        kq(1, 8) = .Range("C17").Value
        kq(1, 9) = .Range("C18").Value
        kq(1, 10) = .Range("C19").Value
        kq(1, 11) = .Range("C20").Value
        kq(1, 12) = .Range("C21").Value
        kq(1, 13) = .Range("C22").Value
        kq(1, 14) = .Range("C23").Value
        kq(1, 15) = .Range("D24").Value
        kq(2, 2) = Now()
        kq(2, 3) = "Chi"
        kq(2, 4) = .Range("i13").Value
        kq(2, 5) = .Range("i14").Value
        kq(2, 6) = .Range("i15").Value
        kq(2, 7) = .Range("i16").Value
        kq(2, 8) = .Range("i17").Value
        kq(2, 9) = .Range("i18").Value
        kq(2, 10) = .Range("i19").Value
        kq(2, 11) = .Range("i20").Value
        kq(2, 12) = .Range("i21").Value
        kq(2, 13) = .Range("i22").Value
        kq(2, 14) = .Range("i23").Value
        kq(2, 15) = .Range("j24").Value
        .Range("C13:C23").ClearContents
        .Range("i13:i23").ClearContents
  End With
  With Sheet2
      lr = .Range("D" & Rows.Count).End(xlUp).Row + 1
      .Range("B" & lr).Resize(2, 15).Value = kq
  End With
End Sub
Cảm ơn bạn nhé mình đang thử cũng thấy tạm ổn để mình kiểm tra thêm
Nhờ bạn giúp mình thêm là mình muốn số nhập bên bảng kê Chi chuyển sang nó sẽ mang dấu "-" thì làm thế nào bạn nhỉ
 
Cảm ơn bạn nhé mình đang thử cũng thấy tạm ổn để mình kiểm tra thêm
Nhờ bạn giúp mình thêm là mình muốn số nhập bên bảng kê Chi chuyển sang nó sẽ mang dấu "-" thì làm thế nào bạn nhỉ
Thì trong đám số liệu này
1611116940756.png
muốn thêm dấu trừ cột nào thì thêm vào trước giá trị range ấy, ví dụ -Range("i18").Value
 
Thì trong đám số liệu này
View attachment 253222
muốn thêm dấu trừ cột nào thì thêm vào trước giá trị range ấy, ví dụ -Range("i18").Valueo

Thì trong đám số liệu này
View attachment 253222
muốn thêm dấu trừ cột nào thì thêm vào trước giá trị range ấy, ví dụ -Range("i18").Value
cảm ơn bạn nhiều nhé để mình thử
 
Web KT
Back
Top Bottom