Hỏi đáp về trình nhập dữ liệu thông tin

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

bitun1991

Thành viên mới
Tham gia
20/6/18
Bài viết
35
Được thích
3
Em xin chào các anh các chị,

Hiện em đang phải nhập liệu bằng tay ở Sheet "Thông Tin" theo hàng ngang khá là vất vả
Em đang Muốn Nhập theo hàng dọc ở sheet "Dữ Liệu" rồi ấn nút "Nhập Liệu' để Copy sang sheet "Thông tin" theo đúng số thứ tự

Sau khi ấn nút "Nhập Liệu" Em muốn như sau ạ:
1. số thứ tự +1 tự động nhảy 1,2,3,4 theo thứ tự ạ
2. Những chỗ bôi vàng sẽ tự động xóa đi ạ


em có gửi kèm file nhờ các anh chị hỗ trợ em với ạ.
Em xin cám ơn!
và chúc các anh chị một ngày tốt lành ạ!
 

File đính kèm

  • Nhập thông tin.xlsx
    21.4 KB · Đọc: 16
Em xin chào các anh các chị,

Hiện em đang phải nhập liệu bằng tay ở Sheet "Thông Tin" theo hàng ngang khá là vất vả
Em đang Muốn Nhập theo hàng dọc ở sheet "Dữ Liệu" rồi ấn nút "Nhập Liệu' để Copy sang sheet "Thông tin" theo đúng số thứ tự

Sau khi ấn nút "Nhập Liệu" Em muốn như sau ạ:
1. số thứ tự +1 tự động nhảy 1,2,3,4 theo thứ tự ạ
2. Những chỗ bôi vàng sẽ tự động xóa đi ạ


em có gửi kèm file nhờ các anh chị hỗ trợ em với ạ.
Em xin cám ơn!
và chúc các anh chị một ngày tốt lành ạ!
Sao bạn không tạo Form nhập dữ liệu trực tiếp cho sheet mà phải nhập vào sheet này rồi chuyển qua sheet kia chi cho cực thế?!
 
Upvote 0
Em xin chào các anh các chị,

Hiện em đang phải nhập liệu bằng tay ở Sheet "Thông Tin" theo hàng ngang khá là vất vả
Em đang Muốn Nhập theo hàng dọc ở sheet "Dữ Liệu" rồi ấn nút "Nhập Liệu' để Copy sang sheet "Thông tin" theo đúng số thứ tự

Sau khi ấn nút "Nhập Liệu" Em muốn như sau ạ:
1. số thứ tự +1 tự động nhảy 1,2,3,4 theo thứ tự ạ
2. Những chỗ bôi vàng sẽ tự động xóa đi ạ


em có gửi kèm file nhờ các anh chị hỗ trợ em với ạ.
Em xin cám ơn!
và chúc các anh chị một ngày tốt lành ạ!
Tham khảo code sau:
Mã:
Option Explicit
Sub NutNhapDuLieu()
Dim R As Long
Dim t
If Not Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]) Is Nothing Then
 t = MsgBox(" SÔ PHIÊU NÀY ĐA CÓ DU LIÊU - BAN MUÔN SUA KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
    If t = vbYes Then
        R = Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]).Row
        Call Nhaplieu(R)
    End If
Else
 t = MsgBox(" SÔ PHIÊU NÀY NÀY CHUA CÓ DU LIÊU - BAN MUÔN NHAP KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
    If t = vbYes Then
        R = Sheets("ThongTin").Cells(Rows.Count, "B").End(xlUp).Row + 1
        Call Nhaplieu(R)
    End If
End If
End Sub
Sub Nhaplieu(ByVal R As Long)
Dim KQ(1 To 1, 1 To 57), d&, Rng As Range
With Sheets("NhapLieu")
        KQ(1, 1) = .[B2]: KQ(1, 2) = .[B3]
        KQ(1, 3) = .[B4]: KQ(1, 4) = .[B5]
        KQ(1, 5) = .[B6]: KQ(1, 6) = .[D6]: KQ(1, 7) = .[D5]
        KQ(1, 8) = .[B7]: KQ(1, 9) = .[D7]: KQ(1, 10) = .[D8]
        KQ(1, 11) = .[B9]: KQ(1, 12) = .[D9]
        KQ(1, 13) = .[B10]: KQ(1, 14) = .[D10]
        KQ(1, 15) = .[B11]: KQ(1, 16) = .[D11]
        KQ(1, 17) = .[D12]
        For d = 14 To 23
            If .Range("B" & d) <> Empty Then KQ(1, d + 4) = .Range("B" & d)
            If .Range("C" & d) <> Empty Then KQ(1, d + 14) = .Range("C" & d)
            If .Range("D" & d) <> Empty Then KQ(1, d + 24) = .Range("D" & d)
            If .Range("E" & d) <> Empty Then KQ(1, d + 34) = .Range("E" & d)
        Next
            .[B2] = .[B2] + 1
        Set Rng = Union(.Range("B3:B4"), .Range("B6"), .Range("D5:D6"), .Range("D11"), .Range("B16:B23"), .Range("C14:E23"))
            Rng.Select
            Selection.ClearContents
        End With
        With Sheets("ThongTin")
                .Range("A" & R).Resize(1, 57) = KQ
        End With
MsgBox "ĐA XONG"
End Sub
Lưu ý : tôi đã đổi tên sheet thành tên tiếng Việt không dấu.
Chức năng xóa sữ liệu cũ tôi không làm mà chỉ ghi đè.
Xem file
 

File đính kèm

  • Nhập thông tin them sưa , xoa.xlsm
    33.1 KB · Đọc: 17
Upvote 0
Có vẻ như bạn nhận việc ngoài khả năng của mình.
Đối với bạn là khổ. Đối với người khác thì là cơ hội học hỏi hầu mở mang kiến thức và kỹ năng để tiến thân.
Nay thì bác cũng quen với kiểu viết tắt e hoặc a rồi ấy nhỉ?
 
Upvote 0
Tham khảo code sau:
Mã:
Option Explicit
Sub NutNhapDuLieu()
Dim R As Long
Dim t
If Not Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]) Is Nothing Then
 t = MsgBox(" SÔ PHIÊU NÀY ĐA CÓ DU LIÊU - BAN MUÔN SUA KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
    If t = vbYes Then
        R = Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]).Row
        Call Nhaplieu(R)
    End If
Else
 t = MsgBox(" SÔ PHIÊU NÀY NÀY CHUA CÓ DU LIÊU - BAN MUÔN NHAP KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
    If t = vbYes Then
        R = Sheets("ThongTin").Cells(Rows.Count, "B").End(xlUp).Row + 1
        Call Nhaplieu(R)
    End If
End If
End Sub
Sub Nhaplieu(ByVal R As Long)
Dim KQ(1 To 1, 1 To 57), d&, Rng As Range
With Sheets("NhapLieu")
        KQ(1, 1) = .[B2]: KQ(1, 2) = .[B3]
        KQ(1, 3) = .[B4]: KQ(1, 4) = .[B5]
        KQ(1, 5) = .[B6]: KQ(1, 6) = .[D6]: KQ(1, 7) = .[D5]
        KQ(1, 8) = .[B7]: KQ(1, 9) = .[D7]: KQ(1, 10) = .[D8]
        KQ(1, 11) = .[B9]: KQ(1, 12) = .[D9]
        KQ(1, 13) = .[B10]: KQ(1, 14) = .[D10]
        KQ(1, 15) = .[B11]: KQ(1, 16) = .[D11]
        KQ(1, 17) = .[D12]
        For d = 14 To 23
            If .Range("B" & d) <> Empty Then KQ(1, d + 4) = .Range("B" & d)
            If .Range("C" & d) <> Empty Then KQ(1, d + 14) = .Range("C" & d)
            If .Range("D" & d) <> Empty Then KQ(1, d + 24) = .Range("D" & d)
            If .Range("E" & d) <> Empty Then KQ(1, d + 34) = .Range("E" & d)
        Next
            .[B2] = .[B2] + 1
        Set Rng = Union(.Range("B3:B4"), .Range("B6"), .Range("D5:D6"), .Range("D11"), .Range("B16:B23"), .Range("C14:E23"))
            Rng.Select
            Selection.ClearContents
        End With
        With Sheets("ThongTin")
                .Range("A" & R).Resize(1, 57) = KQ
        End With
MsgBox "ĐA XONG"
End Sub
Lưu ý : tôi đã đổi tên sheet thành tên tiếng Việt không dấu.
Chức năng xóa sữ liệu cũ tôi không làm mà chỉ ghi đè.
Xem file
Em cám ơn ạ! thật sự đã hỗ trợ trong công việc của em rất nhiều ạ!
chúc anh chị một ngày tốt lành ạ!
Bài đã được tự động gộp:

Tôi cảnh báo và khuyến khích tinh thần vượt khó khăn cho người khác chứ tôi có giúp đâu?
Vả lại, bạn xem lại ngữ cảnh xem. Từ e kia tôi đọc là "ngại"
em xin lỗi ạ.
 
Upvote 0
Em xin chào các anh các chị, . . . .
Em có gửi kèm file nhờ các anh chị hỗ trợ em với ạ.
. . . . . .
(1) File của bạn đang thiếu xương sống, đó là mã NS (mã nhân sự duy nhất cho từng người
Có 1 số người ta xài số CCCD hay số định danh cá nhân
Không có cột dữ liệu này thì file thuộc loại sinh vật không xương sông!

Nếu là mình thì cần có trang tính riêng để lưu mối quan hệ của 1 nhân sự;
(1) 'Hồ sơ NS':
STTHo & Ten
1Nguyễn Văn AnhNVA00
2Ngô Vĩnh ÁnhNVA01
3Nguyễn ÁnhNJA00
4Nhữ Thị Vân AnhNVA02

(2) Dữ liệu (mối) quan hệ:
STTHo & TenMã QHQH
1Nguyễn Vũ AnhNVA00Cha
2Trần Lệ ThuNVA00Mẹ
3Nguyễn Thu AnhNVA00Con
4Ngô Văn AnhNVA01Bố
5Nguyễn Xuân ÁiNVA01Vợ
6Trần Thị KiênNVA02mẹ

Rất vui nếu được tiếp tục cùng bạn!

Sao bạn không tạo Form nhập dữ liệu trực tiếp cho sheet mà phải nhập vào sheet này rồi chuyển qua sheet kia chi cho cực thế?!
Nếu ai biết tạo form thì xài form; Còn không/chưa biết thì lấy 1 trang tính làm Form; cũng tốt mà!
 
Lần chỉnh sửa cuối:
Upvote 0
Tham khảo code sau:
Mã:
Option Explicit
Sub NutNhapDuLieu()
Dim R As Long
Dim t
If Not Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]) Is Nothing Then
 t = MsgBox(" SÔ PHIÊU NÀY ĐA CÓ DU LIÊU - BAN MUÔN SUA KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
    If t = vbYes Then
        R = Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]).Row
        Call Nhaplieu(R)
    End If
Else
 t = MsgBox(" SÔ PHIÊU NÀY NÀY CHUA CÓ DU LIÊU - BAN MUÔN NHAP KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
    If t = vbYes Then
        R = Sheets("ThongTin").Cells(Rows.Count, "B").End(xlUp).Row + 1
        Call Nhaplieu(R)
    End If
End If
End Sub
Sub Nhaplieu(ByVal R As Long)
Dim KQ(1 To 1, 1 To 57), d&, Rng As Range
With Sheets("NhapLieu")
        KQ(1, 1) = .[B2]: KQ(1, 2) = .[B3]
        KQ(1, 3) = .[B4]: KQ(1, 4) = .[B5]
        KQ(1, 5) = .[B6]: KQ(1, 6) = .[D6]: KQ(1, 7) = .[D5]
        KQ(1, 8) = .[B7]: KQ(1, 9) = .[D7]: KQ(1, 10) = .[D8]
        KQ(1, 11) = .[B9]: KQ(1, 12) = .[D9]
        KQ(1, 13) = .[B10]: KQ(1, 14) = .[D10]
        KQ(1, 15) = .[B11]: KQ(1, 16) = .[D11]
        KQ(1, 17) = .[D12]
        For d = 14 To 23
            If .Range("B" & d) <> Empty Then KQ(1, d + 4) = .Range("B" & d)
            If .Range("C" & d) <> Empty Then KQ(1, d + 14) = .Range("C" & d)
            If .Range("D" & d) <> Empty Then KQ(1, d + 24) = .Range("D" & d)
            If .Range("E" & d) <> Empty Then KQ(1, d + 34) = .Range("E" & d)
        Next
            .[B2] = .[B2] + 1
        Set Rng = Union(.Range("B3:B4"), .Range("B6"), .Range("D5:D6"), .Range("D11"), .Range("B16:B23"), .Range("C14:E23"))
            Rng.Select
            Selection.ClearContents
        End With
        With Sheets("ThongTin")
                .Range("A" & R).Resize(1, 57) = KQ
        End With
MsgBox "ĐA XONG"
End Sub
Lưu ý : tôi đã đổi tên sheet thành tên tiếng Việt không dấu.
Chức năng xóa sữ liệu cũ tôi không làm mà chỉ ghi đè.
Xem file
Cho em hỏi thêm là e có đánh dấu ' vào phần hộp tin hiện mes lên tuy nhiên lại ngưng mất cả dòng lệnh phía sau.
cho em hỏi là làm thế nào để không hiện hộp mes lên mà vẫn chạy được dòng sau ạ.
Bài đã được tự động gộp:

(1) File của bạn đang thiếu xương sống, đó là mã NS (mã nhân sự duy nhất cho từng người
Có 1 số người ta xài số CCCD hay số định danh cá nhân
Không có cột dữ liệu này thì file thuộc loại sinh vật không xương sông!

Nếu là mình thì cần có trang tính riêng để lưu mối quan hệ của 1 nhân sự;
(1) 'Hồ sơ NS':
STTHo & Ten
1Nguyễn Văn AnhNVA00
2Ngô Vĩnh ÁnhNVA01
3Nguyễn ÁnhNJA00
4Nhữ Thị Vân AnhNVA02

(2) Dữ liệu (mối) quan hệ:
STTHo & TenMã QHQH
1Nguyễn Vũ AnhNVA00Cha
2Trần Lệ ThuNVA00Mẹ
3Nguyễn Thu AnhNVA00Con
4Ngô Văn AnhNVA01Bố
5Nguyễn Xuân ÁiNVA01Vợ
6Trần Thị KiênNVA02mẹ

Rất vui nếu được tiếp tục cùng bạn!


Nếu ai biết tạo form thì xài form; Còn không/chưa biết thì lấy 1 trang tính làm Form; cũng tốt mà!
dạ vâng, file gốc từ công ty cho nên em đang trong quá trình hoàn thiện ạ.
 
Upvote 0
Cho em hỏi thêm là e có đánh dấu ' vào phần hộp tin hiện mes lên tuy nhiên lại ngưng mất cả dòng lệnh phía sau.
cho em hỏi là làm thế nào để không hiện hộp mes lên mà vẫn chạy được dòng sau ạ.
Bài đã được tự động gộp:


dạ vâng, file gốc từ công ty cho nên em đang trong quá trình hoàn thiện ạ.
Tôi chân thành khuyên bạn nên bỏ thói quen viết tắt, Bạn nói về mình (đại từ nhân xưng chỉ về chính mình) thì tại sao không dùng là " em " thay cho " e" có thấy mình trang trọng hơn không.
về sửa code thì bạn đánh dấu "'" và các dòng
[code[
....
' t = MsgBox(" SÔ PHIÊU NÀY ĐA CÓ DU LIÊU - BAN MUÔN SUA KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
' If t = vbYes Then
R = Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]).Row
Call Nhaplieu(R)
' End If
....
[/code]
chừa lại 2 dòng : R=.... và Call ....
 
Upvote 0
Lưu ý : tôi đã đổi tên sheet thành tên tiếng Việt không dấu.
Chức năng xóa sữ liệu cũ tôi không làm mà chỉ ghi đè.
Xem file
Ui, cảm ơn bạn nhiều nhiều. Mình được tham khảo 1 file rất hữu ích ạ. Chúc bạn tuần làm việc vui & thuận lợi ;)
 
Upvote 0
Tôi chân thành khuyên bạn nên bỏ thói quen viết tắt, Bạn nói về mình (đại từ nhân xưng chỉ về chính mình) thì tại sao không dùng là " em " thay cho " e" có thấy mình trang trọng hơn không.
về sửa code thì bạn đánh dấu "'" và các dòng
[code[
....
' t = MsgBox(" SÔ PHIÊU NÀY ĐA CÓ DU LIÊU - BAN MUÔN SUA KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
' If t = vbYes Then
R = Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]).Row
Call Nhaplieu(R)
' End If
....
[/code]
chừa lại 2 dòng : R=.... và Call ....
dạ vâng em xin lỗi ạ,

Chị ơi còn phần địa chỉ vẫn chưa copy chị ạ. chị viết hộ em với ạ.
 
Upvote 0
Thì anh ấy tên là Hương chứ tưởng gì nữa bạn!
dạ vâng em xin lỗi ạ :(
Bài đã được tự động gộp:

Tôi chân thành khuyên bạn nên bỏ thói quen viết tắt, Bạn nói về mình (đại từ nhân xưng chỉ về chính mình) thì tại sao không dùng là " em " thay cho " e" có thấy mình trang trọng hơn không.
về sửa code thì bạn đánh dấu "'" và các dòng
[code[
....
' t = MsgBox(" SÔ PHIÊU NÀY ĐA CÓ DU LIÊU - BAN MUÔN SUA KHÔNG?" & Chr(10) & "NHÂN YES ĐÊ TIÊP TUC NHÂP" & Chr(10) & "NHÂN NO ĐÊ BO QUA", vbYesNo, "THÔNG BÁO")
' If t = vbYes Then
R = Sheets("ThongTin").Range("A7:A10000").Find(Sheets("NhapLieu").[B2]).Row
Call Nhaplieu(R)
' End If
....
[/code]
chừa lại 2 dòng : R=.... và Call ....
Anh ơi còn phần địa chỉ vẫn chưa copy ạ.
anh viết thêm hộ em với ạ.
 
Upvote 0
dạ vâng em xin lỗi ạ :(
Bài đã được tự động gộp:


Anh ơi còn phần địa chỉ vẫn chưa copy ạ.
anh viết thêm hộ em với ạ.
Trong sheet nhapLieu ô Địa chỉ đang để rỗng, nên khi chạy code nó bỏ qua. Giò bạn thêm gì đó vào ô ấy và nhấn nút và kiểm tra Sheet Thongtin xem đã có chưa.
 
Upvote 0
Trong sheet nhapLieu ô Địa chỉ đang để rỗng, nên khi chạy code nó bỏ qua. Giò bạn thêm gì đó vào ô ấy và nhấn nút và kiểm tra Sheet Thongtin xem đã có chưa.
1679015364166.png

Em có thử 2,3 lần rồi anh ạ.
Nó cũng không xóa tự động và copy sang sheet "thông tin" khi ấn "Nhập Liệu" anh ạ.
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom