Hoàn Thiện Code nhập dữ liệu đồng thời trên nhiều sheet (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

minhcong.tckt

Thành viên thường trực
Tham gia
13/4/11
Bài viết
385
Được thích
36
Giới tính
Nam
Em gửi file đính kèm, mong các huynh tỷ hoàn thiện code cho em

Mục đích của em là:
Khi form hiện ra (Form nằm ở shéet1 :
1/ Nếu mình nhập vào TextBoox " Khách hàng" thì dữ liệu sẽ điền vào sheet 2 (em đã làm được)
2/ Nếu mình nhập vào Textboox " Nhà Cung Cấp " thì dữ liệu điền vào sheet 3 (em chưa làm được )

Hai dữ liệu trên được nhập đồng thời.

Mong nhận được sự giúp đỡ của các huynh tỷ
Chân thành cảm ơn!!!
 

File đính kèm

Có ai giúp em với ko ạ, em đang rất cần
 
Upvote 0
Có ai giúp em với ko ạ, em đang rất cần
Thay code dưới, và thêm các thuộc tính như hướng dẫn:
PHP:
'Dat thuoc tinh Cancel = True cho nut CmdCancel'
'Nhan ESC de thoat'
Private Sub CmdCancel_Click()
    Unload Me
End Sub
'===================================================='
'Muon cap nhat vao dia chi nao thi sua o day'
Private Sub UpdateData(sh As Worksheet, st As String)
    sh.Range("A60000").End(xlUp).Offset(1) = st
End Sub
'===================================================='
 
'Dat thuoc tinh Default = True cho nut CmdOK'
'Nhan Enter de cap nhat'
Private Sub CmdOK_Click()
    If Trim(Me.TextKHHD) <> "" Then Call UpdateData(Sheet2, Me.TextKHHD)
    If Trim(Me.textNCC) <> "" Then Call UpdateData(Sheet3, Me.textNCC)
    Me.TextKHHD = ""
    Me.textNCC = ""
    TextKHHD.SetFocus
End Sub
 
'(Dat ten textbox nha cung cap la: textNCC)'
 
Upvote 0
Thay code dưới, và thêm các thuộc tính như hướng dẫn:
PHP:
'Dat thuoc tinh Cancel = True cho nut CmdCancel'
'Nhan ESC de thoat'
Private Sub CmdCancel_Click()
    Unload Me
End Sub
'===================================================='
'Muon cap nhat vao dia chi nao thi sua o day'
Private Sub UpdateData(sh As Worksheet, st As String)
    sh.Range("A60000").End(xlUp).Offset(1) = st
End Sub
'===================================================='
 
'Dat thuoc tinh Default = True cho nut CmdOK'
'Nhan Enter de cap nhat'
Private Sub CmdOK_Click()
    If Trim(Me.TextKHHD) <> "" Then Call UpdateData(Sheet2, Me.TextKHHD)
    If Trim(Me.textNCC) <> "" Then Call UpdateData(Sheet3, Me.textNCC)
    Me.TextKHHD = ""
    Me.textNCC = ""
    TextKHHD.SetFocus
End Sub
 
'(Dat ten textbox nha cung cap la: textNCC)'

Cảm ơn anh/ chị nha, cho em hỏi 1 chút nữa.
Nếu trong trường hợp sheet2 và sheet 3 của em có nhiều hơn 1 textboox thì sửa code trên ntn???
Tức là em nhập vào sheet2 cột a, b sheet 3 cột D, c
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu thêm mục textboox "địa chỉ" thì thêm code như thế nào các bác
Các cột điền thông tin của sheet2 và sheet3 ở những cột khác nhau
VD: Sheet2: Cột a và C
Sheet3: Cột b và D
 

File đính kèm

Upvote 0
Nếu thêm mục textboox "địa chỉ" thì thêm code như thế nào các bác
Các cột điền thông tin của sheet2 và sheet3 ở những cột khác nhau
VD: Sheet2: Cột a và C
Sheet3: Cột b và D
Xem mẫu ở code để thay đổi theo yêu cầu:
PHP:
'===================================================='
'Muon cap nhat vao dia chi nao thi sua o day'
Private Sub UpdateData(sh As Worksheet, st1 As String, st2 As String, Optional col1 As String = "A", Optional col2 As String = "C")
    sh.Range(col1 & "60000").End(xlUp).Offset(1) = st1
    sh.Range(col2 & "60000").End(xlUp).Offset(1) = st2
End Sub
'===================================================='
 
'Dat thuoc tinh Default = True cho nut CmdOK'
'Nhan Enter de cap nhat'
Private Sub CmdOK_Click()
    If (Trim(Me.TextKHHD) <> "") And (Trim(Me.TextDCKH) <> "") Then
        Call UpdateData(Sheet2, Me.TextKHHD, Me.TextDCKH)
        Me.TextKHHD = ""
        Me.TextDCKH = ""
    Else
        ' tuy chon thong bao: MsgBox "Nhap du thong tin truoc khi nhan nut OK" '
    End If
    If (Trim(Me.TextNCC) <> "") And (Trim(Me.TextDCNCC) <> "") Then
        Call UpdateData(Sheet3, Me.TextNCC, Me.TextDCNCC, "B", "D")
        Me.TextNCC = ""
        Me.TextDCNCC = ""
    Else
        ' tuy chon thong bao: MsgBox "Nhap du thong tin truoc khi nhan nut OK" '
    End If
    TextKHHD.SetFocus
End Sub


>>> để nhấn phím Tab khi nhập dữ liệu nên thay đổi thứ tự nhấn tab bởi thuộc tính: TabIndex của các textbox (có thứ tự là: 0, 1, 2, 3)
 
Upvote 0
Xem mẫu ở code để thay đổi theo yêu cầu:
PHP:
'===================================================='
'Muon cap nhat vao dia chi nao thi sua o day'
Private Sub UpdateData(sh As Worksheet, st1 As String, st2 As String, Optional col1 As String = "A", Optional col2 As String = "C")
    sh.Range(col1 & "60000").End(xlUp).Offset(1) = st1
    sh.Range(col2 & "60000").End(xlUp).Offset(1) = st2
End Sub
'===================================================='
 
'Dat thuoc tinh Default = True cho nut CmdOK'
'Nhan Enter de cap nhat'
Private Sub CmdOK_Click()
    If (Trim(Me.TextKHHD) <> "") And (Trim(Me.TextDCKH) <> "") Then
        Call UpdateData(Sheet2, Me.TextKHHD, Me.TextDCKH)
        Me.TextKHHD = ""
        Me.TextDCKH = ""
    Else
        ' tuy chon thong bao: MsgBox "Nhap du thong tin truoc khi nhan nut OK" '
    End If
    If (Trim(Me.TextNCC) <> "") And (Trim(Me.TextDCNCC) <> "") Then
        Call UpdateData(Sheet3, Me.TextNCC, Me.TextDCNCC, "B", "D")
        Me.TextNCC = ""
        Me.TextDCNCC = ""
    Else
        ' tuy chon thong bao: MsgBox "Nhap du thong tin truoc khi nhan nut OK" '
    End If
    TextKHHD.SetFocus
End Sub


>>> để nhấn phím Tab khi nhập dữ liệu nên thay đổi thứ tự nhấn tab bởi thuộc tính: TabIndex của các textbox (có thứ tự là: 0, 1, 2, 3)

Cảm ơn anh nhiều nhé, đúng ý của em rồi
 
Upvote 0
Xem mẫu ở code để thay đổi theo yêu cầu:
PHP:
'===================================================='
'Muon cap nhat vao dia chi nao thi sua o day'
Private Sub UpdateData(sh As Worksheet, st1 As String, st2 As String, Optional col1 As String = "A", Optional col2 As String = "C")
    sh.Range(col1 & "60000").End(xlUp).Offset(1) = st1
    sh.Range(col2 & "60000").End(xlUp).Offset(1) = st2
End Sub
'===================================================='
 
'Dat thuoc tinh Default = True cho nut CmdOK'
'Nhan Enter de cap nhat'
Private Sub CmdOK_Click()
    If (Trim(Me.TextKHHD) <> "") And (Trim(Me.TextDCKH) <> "") Then
        Call UpdateData(Sheet2, Me.TextKHHD, Me.TextDCKH)
        Me.TextKHHD = ""
        Me.TextDCKH = ""
    Else
        ' tuy chon thong bao: MsgBox "Nhap du thong tin truoc khi nhan nut OK" '
    End If
    If (Trim(Me.TextNCC) <> "") And (Trim(Me.TextDCNCC) <> "") Then
        Call UpdateData(Sheet3, Me.TextNCC, Me.TextDCNCC, "B", "D")
        Me.TextNCC = ""
        Me.TextDCNCC = ""
    Else
        ' tuy chon thong bao: MsgBox "Nhap du thong tin truoc khi nhan nut OK" '
    End If
    TextKHHD.SetFocus
End Sub


>>> để nhấn phím Tab khi nhập dữ liệu nên thay đổi thứ tự nhấn tab bởi thuộc tính: TabIndex của các textbox (có thứ tự là: 0, 1, 2, 3)

Làm fiền anh thêm 1 lần nữa
em đã thử vận dụng file anh sửa cho em trên file thực tế, nhưng vì em chưa hiểu nên chưa vận dụng được
Giờ em muốn hỏi:
Dữ liệu nhập vào sheet2 là 3 cột, còn dữ liệu nhập vào sheet3 là 4 cột (tức là số cột nhập vào của 2 sheet không giống nhau) thì khi khai báo mình sẽ khai báo như thế nào ???

Em có gưi file đính kèm, mong anh giúp đỡ
 

File đính kèm

Upvote 0
Về nguyên tắc thì cũng chẳng khác gì, 2, 3, hay nhiều hơn cũng thế.
Vấn đề ở đây là: Bạn đã suy nghĩ kỹ hết các tình huống trong khi nhập dữ liệu hay chưa?
Ví dụ: có thể 1 khách hàng hoặc 1 nhà cung cấp chưa có đầy đủ thông tin (thiếu địa chỉ chẳng hạn) thì có được phép nhập dữ liệu hay không?
Hay là, khi cần sửa thông tin thì có được phép không? Nếu được, thì căn cứ vào đâu để tìm và thay thông tin củ bằng thông tin mới... Lúc đó bạn sẽ thấy cần 1 mã số để quản lý khách hàng; 1 mã số để quản lý nhà cung cấp... cần 1 thủ tục để kiểm tra mã số có trùng không, nếu trùng là cập nhật, nếu không thì là bổ sung...
Tóm lại, cái mà bạn cần, đó là hãy phân tích đầy đủ bài toán để có thể xây dựng 1 form nhập dữ liệu tốt hơn, ít thay đổi hơn và đặc biệt là dễ hiệu chỉnh code khi cần thiết.
 
Upvote 0
Về nguyên tắc thì cũng chẳng khác gì, 2, 3, hay nhiều hơn cũng thế.
Vấn đề ở đây là: Bạn đã suy nghĩ kỹ hết các tình huống trong khi nhập dữ liệu hay chưa?
Ví dụ: có thể 1 khách hàng hoặc 1 nhà cung cấp chưa có đầy đủ thông tin (thiếu địa chỉ chẳng hạn) thì có được phép nhập dữ liệu hay không?
Hay là, khi cần sửa thông tin thì có được phép không? Nếu được, thì căn cứ vào đâu để tìm và thay thông tin củ bằng thông tin mới... Lúc đó bạn sẽ thấy cần 1 mã số để quản lý khách hàng; 1 mã số để quản lý nhà cung cấp... cần 1 thủ tục để kiểm tra mã số có trùng không, nếu trùng là cập nhật, nếu không thì là bổ sung...
Tóm lại, cái mà bạn cần, đó là hãy phân tích đầy đủ bài toán để có thể xây dựng 1 form nhập dữ liệu tốt hơn, ít thay đổi hơn và đặc biệt là dễ hiệu chỉnh code khi cần thiết.

I/ Thực tình em định tạo 1 phiếu nhập mua hàng (khi có hóa đơn mua vào)
1. những thông tin chung của phiếu nhập mua: mã chứng từ, ngày chứng từ, mã khách sẽ vào cả sheet2 và sheet3
2. những thông tin về kê thuế sẽ vào sheet2
3. những thông tin về kho hàng vào sheet3
II/ Làm thế nào để khi ko nhỡ mã khách hàng, ko nhớ mã kho, hàng hóa mà vẫn điền được vào textbox: mã khách... (tạo 1 form tìm kiếm???)
 

File đính kèm

Upvote 0
Trước khi bàn về việc xây dựng form nhập liệu, ta hãy bàn về cách thức xây dựng (xác lập các thuộc tính, các quan hệ...), lưu trữ, xử lý, khai thác dữ liệu. Bạn hãy thực hiện từ các bước cơ bản sau:
1. Xác định các loại đối tượng chính cần quản lý - dựa trên cơ sở mục tiêu của chương trình: quản lý kho - xuất nhập; kế toán... hay là gì?
ví dụ 1: đối tượng Hàng Hóa, cần ít nhất những thuộc tính sau: Mã hàng hóa, tên, chủng loại (hoặc các đặc trưng), đơn vị tính, nước sản xuất...
từ đó, xây dựng tiếp: Mã HH, loại, đơn giá, thời gian áp dụng... (vì đơn giá phụ thuộc thời gian, do đó nếu thay đổi giá có thể ảnh hưởng đến các tính toán trong quá khứ)
ví dụ 2: đối tượng Nhà Cung Cấp, đối tượng Khách Hàng, đối tượng Kho, bộ mã chứng từ... (tôi cũng không rành lắm trong lĩnh lực này, hic, tôi làm ở giáo dục mà!)
2. Xây dựng các mối quan hệ giữa các đối tượng (các tác động qua lại), ví dụ: Nhập - Xuất - Tồn hoặc Mua - Bán - Thuế - Lợi nhuận - Doanh thu....
3. Xây dựng các bảng dữ liệu chuẩn (còn gọi là các Từ điển dữ liệu)
4. Xây dựng công cụ nhập dữ liệu (là trường hợp hiện nay bạn đang quan tâm)
5. Công cụ xử lý, khai thác, ví dụ: tính toán, thống kê, in ấn....

Trên đây chỉ là một số gợi ý để bạn có thể bước đầu tiếp cận đến việc xây dựng phần mềm quản lý riêng của mình (tất nhiên, cách nhanh nhất là tìm một chương trình HOÀN THIỆN, gần với mục tiêu của mình để tham khảo cách thức tổ chức, quản lý của người khác, áp dụng vào tình huống của mình).
Hy vọng bạn sẽ sớm có một kế hoạch tổng thể trước khi đi vào từng chi tiết.
 
Upvote 0
anh giúp em viết code tại bài #10, em đang rất cần
Em ko biết viết VBA, chỉ dựa vào các file tương tự để làm thôi. Mong anh giúp đỡ
 
Upvote 0
Web KT

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

Back
Top Bottom