Nhập dữ liệu từ Form vào file Data
Nhờ mọi người giúp.
Tôi đã làm được cái Form nhập dữ liệu trong file Form:
– Nhập dữ liệu vào FormPX -> Save dữ liệu vào PX.
Giờ tôi muốn nâng cấp lên một tí: dữ liệu sẽ được lưu vào file khác.
file "Data" lưu trên máy chủ; file "Form" lưu trên máy khác.
– Nhập dữ liệu vào FormPX
– Nhấn nút "Save" dữ liệu vào PX
Mục đích: để cùng lúc nhập dữ liệu trên hai máy khác nhau.
Cảm ơn mọi người đã giúp đỡ.
Vấn đề này không phải không làm được…Nhưng tại sao không ai giúp…Vì dấn thân vào giúp bạn rồi…thì khổ lắm
—————————
Cho nên: Bạn cần 1 lời khuyên…Tại sao không lắng nghe lời khuyên ấy…
Lời khuyên: Tại # cuối cùng trong topic này của bạn, bạn chưa lưu tâm: [URL='https://www.giaiphapexcel.com/forum/showthread.php?112401-S%E1%BB%ADa-gi%C3%B9m-code-t%E1%BA%A1o-Form-nh%E1%BA%ADp-li%E1%BB%87u/page2']https://www.giaiphapexcel.com/forum/showthread.php?112401-Sửa-giùm-code-tạo-Form-nhập-liệu/page2
Xem xong, bạn cần lưu tâm + phản hồi thì sẽ có người tiếp. Bằng không thì…tự chơi 1 mình nhé!
À. Minh nhớ ra rồi. Phương án đó không thực hiện được, vì liên quan đến Form nhập dữ liệu.
Ví dụ:
Khi A nhập dữ liệu trên máy mình (file Form) thì lưu ngay lập tức vào file Data
Khi B nhập dữ liệu trên máy mình (file Form) thì lưu vào dòng kế tiếp tại file Data.
Cảm ơn bạn đã nhắc nhở & quan tâm.
—————————Người ta nói: Không gì là không thể —————————Nên: Đừng vội phán là phương án đó không thực hiện được…
—————
Người ta đã đưa ra hướng tư vấn cho bạn, cho thấy rằng người ta đã có kinh nghiệm trong việc này…Cho nên là chắc chắn sẽ được.
Quay trở lại vấn đề của bạn:
1. Nếu bạn muốn nhập liệu trực tiếp update thì chỉ có phần mềm mới đáp ứng được cho bạn vấn đề này… Còn về Excel thì có cái Atool gì đó (phải mất phí)…hỗ trợ bạn vấn đề này => Làm đơn giản mà được việc -> không tốn phí/ Với việc làm đúng theo í bạn thì phải tốn phí…. Vậy bạn thích cái nào
2. Tại sao phải dùng form là không khả thi, Form ở đây bạn đừng hiểu cao siêu gì cả. Form ở đây là 1 cái file Excel làm mẫu nhập liệu, bạn thiết kế sẵn…bạn copy cho 10 người (nhân viên) của bạn nhập liệu…Tất nhiên Form phải chuẩn, mọi người đều nhập giống nhau trên form này… Nhập xong có thể gửi mail cho bạn file này…(bạn là người sẽ tổng hợp vào file tổng với vài dòng code – GPE sẽ hỗ trợ bạn code này)…
Nếu công ty bạn có xài Server thì có thể làm xong nhân viên của bạn copy quăng lên server… Hoặc bạn có thể tạo ra 10 Cái file trên server và share Full file này cho từng nhân viên của bạn đẻ Open trực tiếp file này và nhâp liệu….trên đó
P/s: Lưu ý là Form nhập liệu này cũng có 1 sheet là Phiếu xuất. 1 sheet là Data, khi người dùng nhập vào sheet Phiếu xuất gì đó -> In / Và vài dòng code VBA sẽ lưu nội dung đã in này sang sheet Data
2. Vấn đề của bạn là đã có tất cả 10 file của 10 người này rồi…Căn cứ vào sheêt Data trên file này…Bạn tổng hợp vào 1 Sheet trên File tổng của bạn… => Vấn đề đã giải quyết xong…
Theo ý tôi đã nói ở trên. Bạn cho mỗi nhân viên 1 File Form nhập liệu. Sau đó gôm File lại, và bạn thực hiện tổng hợp lên File Tổng (Data) của bạn
———————————————————————————————————————————–
Cod như sau:
1. Code cho nút Save của File Form.xls (code thay cho cái Sub trong file của bạn.)
Public Sub NhapDuLieu()
Dim Arr, dArr, I As Long, J As Long, K As Long
Arr = Sheets("FormPX").Range("A6", Sheets("FormPX").Range("A9").End(4)).Resize(, 11).Value
ReDim dArr(1 To UBound(Arr), 1 To 12)
For I = 5 To UBound(Arr)
If Arr(I, 1) <> Empty Then
K = K + 1
dArr(K, 1) = Arr(1, 8)
dArr(K, 2) = Arr(I, 1)
dArr(K, 3) = Arr(2, 8)
For J = 2 To 8
dArr(K, J + 2) = Arr(I, J)
Next J
dArr(K, 11) = Arr(2, 2)
dArr(K, 12) = Arr(1, 2)
End If
Next I
If K Then Sheets("PX").Range("A65000").End(3).Offset(1).Resize(K, 12).Value = dArr
End Sub
2. Code tổng hợp từ nhiều file cho File Data của bạn.
Đưa tất cả các file con (File Form cho từng người vào 1 thư mục, File Data cũng có thể đưa vào đây luôn, hoặc để ở đâu thì tùy.)
Chạy code -> Cửa sổ mở ra. Chọn cả Thư mục chứa file con trên -> Ok đợi kết quả sẽ update tất cả vào Sheet PX trên file Data này. (Chú ý là chọn Thư mục rồi nhấn OK , chứ không phải Open thư mục chứa file con ở cửa sổ chọn file nha.)
Public Sub THOP_ALL()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim ChonO As Object, ChonF As Object, pFile, Path
Dim fil As Object, Wb As Workbook, Sh As Worksheet, WbMain As Workbook
Dim Arr, dArr(1 To 65000, 1 To 12), I As Long, J As Long, K As Long
pFile = ActiveWorkbook.Name
Set WbMain = ActiveWorkbook
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "CHON FOLDER"
.Show
If .SelectedItems.Count = 0 Then Exit Sub
Path = .SelectedItems(1) & ""
End With
Set ChonO = CreateObject("Scripting.FileSystemObject")
Set ChonF = ChonO.GetFolder(Path)
For Each fil In ChonF.Files
If InStr(1, fil.Name, pFile) <= 0 Then
Set Wb = Workbooks.Open(fil.Path)
Set Sh = Wb.Sheets("PX")
Arr = Sh.Range("A6", Sh.[A65000].End(3)).Resize(, 12).Value
For I = 1 To UBound(Arr)
K = K + 1
For J = 1 To 12
dArr(K, J) = Arr(I, J)
Next J
Next I
Workbooks(fil.Name).Close
End If
Next fil
WbMain.Sheets("PX").Range("A6").Resize(65000, 12).ClearContents
WbMain.Sheets("PX").Range("A6").Resize(K, 12).Value = dArr
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Hết rồi đó,!
Khoá học Trưởng phòng nhân sự
Nguồn nhân lực là một trong Tứ trụ kinh doanh của doanh nghiệp, có tác động tới sự tồn tại và phát triển bền...
Xem khóa học
Bình luận