Em xin các Bác giúp Marco nhập liệu bổ sung vào dữ liệu với ạ. (1 người xem)

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

trananhtommy

Thành viên hoạt động
Tham gia
11/12/06
Bài viết
111
Được thích
6
E chào các Bác, E loay hoay mãi với file của E mà không xong để kịp làm cho năm mới 2015. Bí quá, em lại nhờ các Bác giúp E với..

Chả là E có 1 file dữ liệu ạ - file đính kèm đây ạ: https://www.dropbox.com/s/bxlpgy083vjkzc2/So GDBT 2015 - lam.rar?dl=0

Việc nhập liệu được chia thành nhiều bước:

Bước 1: Nhập các thông tin cơ bản, ghi vào dữ liệu - cái đã ok. E cóp nhặt và tự làm cho E ngon lành .

Bước 2: Nhập thông tin bổ sung - đây mới là cái E bí và muốn nhờ các Bác giúp.

Thông thường trước đây, khi nhập các thông tin này, E phải vào sheet "Dulieu". Dùng Ctrl + F để tìm đúng dòng và cập nhập bổ sung vào các dữ liệu cần thiết. Tuy nhiên cách làm ấy thủ công quá và E nghĩ Marco có thể giải quyết được bằng cách cập nhật tốt hơn.

Mong các Bác giúp E tạo 1 marco làm thay E việc đó. E đã tạo 1 sheet "Nhap_BS" và các thông tin từ cột B5 đến B21 sẽ được chuyển vào đúng dòng trong các cột từ BY đến CO.

E cảm ơn các Bác nhiều..

Xin được nói rõ hơn là các dữ liệu bổ sung này có thể nhập 1 lần hoặc nhiều lần. Nếu cùng 1 dòng dữ liệu cập nhật được 1 - 2 thông số rồi thì việc ghi bổ sung thông số tiếp theo sẽ không ghi đè dữ liệu đã có.

2015 sắp tới rồi, E cần quá mà chả biết hỏi ai. Mong các Bác trợ giúp cho Em.

Em chân thành cảm ơn các Bác và mong chờ các Bác giúp từng phút giây, hu hu...
 
Để tìm ngay số hồ sơ bồi thường và sửa hoặc thêm dữ liệu, tại B3 của sheet Dulieu (tô màu xanh) bạn gõ thêm số hồ sơ vào nhé. Ví dụ:

B3 đã có sẳn QNI.D04.OT.14.HS.

Bạn chỉ cần thêm số hồ sơ phía sau là 2105, được số hồ sơ như sau:

QNI.D04.OT.14.HS.2105

Bạn sẽ được kết quả chỉ có hồ sơ đó và bạn chỉ việc thêm hoặc sửa dữ liệu là xong. Để thực hiện cho hồ sơ khác bạn chỉ việc thay số 2105 là một số khác, hoặc để hiện tất cả bạn chỉ việc xóa số 2105 đi.
 

File đính kèm

Upvote 0
Cảm ơn Bác. E thấy cách đó cũng tiện, để E nghiên cứu thêm.

Cái việc nhập bổ sung theo mong muốn của E ở bài #1, ngoài Bác quanghai1969 ra chắc không còn ai viết code được nữa ạ..., yêu cầu cao quá ạ..?.

Nếu không còn ai giúp được nữa thì đành phải sử dụng cách cũ hoặc cách của Bác be09 mất thôi.

huhu!
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn Bác. E thấy cách đó cũng tiện, để E nghiên cứu thêm.

Cái việc nhập bổ sung theo mong muốn của E ở bài #1, ngoài Bác quanghai1969 ra chắc không còn ai viết code được nữa ạ..., yêu cầu cao quá ạ..?.

Nếu không còn ai giúp được nữa thì đành phải sử dụng cách cũ hoặc cách của Bác be09 mất thôi.

huhu!
Bạn nói thách thức kiểu đó thì càng bế tắc đấy. Mình chỉ là 1 trong những thành viên dạng trung bình trên diễn đàn. Dù sao cách của anh Be09 là 1 trong những cách hay rồi mà.
 
Upvote 0
Bạn nói thách thức kiểu đó thì càng bế tắc đấy. Mình chỉ là 1 trong những thành viên dạng trung bình trên diễn đàn. Dù sao cách của anh Be09 là 1 trong những cách hay rồi mà.

Vâng, cũng có thể em rất cần giúp mà mong ngóng lâu quá chưa được. Năm 2015 tới đến nơi rồi nên mới thất vọng vậy..

Thực ra cách Bác Be09 làm cũng rất hay, nhưng đưa vào làm thì sẽ bị thủ công vì trong mã số hồ sơ bồi thường ngoài phần số ra còn có nhiều thông tin nữa, như mã tỉnh, mã phòng, mã nghiệp vụ, năm nghiệp vụ. Như vậy khi nhập 1 đoạn dài mã hồ sơ như vậy dễ bị nhầm và mất thời gian nhất là dữ liệu lưu trong nhiều năm, nhiều phòng...

Thôi, em lại đợi chờ và hy vọng vậy!$@!!
 
Upvote 0
Hu hu hu, chắc không ai giúp được em rồi. Thiệt là buồn quá....
 
Upvote 0
Vâng, cũng có thể em rất cần giúp mà mong ngóng lâu quá chưa được. Năm 2015 tới đến nơi rồi nên mới thất vọng vậy..

Thực ra cách Bác Be09 làm cũng rất hay, nhưng đưa vào làm thì sẽ bị thủ công vì trong mã số hồ sơ bồi thường ngoài phần số ra còn có nhiều thông tin nữa, như mã tỉnh, mã phòng, mã nghiệp vụ, năm nghiệp vụ. Như vậy khi nhập 1 đoạn dài mã hồ sơ như vậy dễ bị nhầm và mất thời gian nhất là dữ liệu lưu trong nhiều năm, nhiều phòng...

Thôi, em lại đợi chờ và hy vọng vậy!$@!!
Thay code này trong sheet NHAP_BS
PHP:
Private Sub ListBox1_Click()
Dim R As Long, tam()
    ActiveCell.Value = Sheet1.ListBox1.Value
    ActiveCell.Activate
    R = Sheet3.[A:A].Find([B3].Value, , , 1).Row
    tam = Sheet3.Cells(R, 77).Resize(, 17).Value
    [B5].Resize(UBound(tam, 2)) = Application.Transpose(tam)
    Hide
End Sub
Vẽ thêm 1 cái nút CommandButton1 và cho code này vào
PHP:
Private Sub CommandButton1_Click()
Dim R As Long, tam()
R = Sheet3.[A:A].Find([B3].Value, , , 1).Row
tam = Range("B5:B21").Value
Sheet3.Cells(R, 77).Resize(, 17).Value = Application.Transpose(tam)
End Sub
 
Upvote 0
Mình mới chập chững vào VBA nên nhìu code mình chưa hiểu, mấy bác có thể giải thích giúp em ko?
Code o mode 5:
PHP:
Sub gggg()'' gggg Macro'
'    Range("C6").Select    ActiveCell.FormulaR1C1 = "=R[-1]C[22]"    Range("C7").SelectEnd Sub
Dung để làm gì?
Ở module 2, code

PHP:
Option ExplicitPublic dl()Sub Loc()    Dim kq(), i, j, sT As String        sT = "*" & Trim(UCase(Sheet1.TextBox1.Value)) & "*"    For i = 1 To UBound(dl)       If dl(i, 1) <> "" Then          If UCase(Trim(dl(i, 1))) Like sT Then             j = j + 1             ReDim Preserve kq(1 To j)             kq(j) = dl(i, 1)          End If       End If    Next    If j Then        With Sheet1.ListBox1            .List = kq            .Width = ActiveCell.Width            .Height = 250        End With    End IfEnd Sub

Mục đích làm gì?
 
Upvote 0
Thay code này trong sheet NHAP_BS
PHP:
Private Sub ListBox1_Click()
Dim R As Long, tam()
    ActiveCell.Value = Sheet1.ListBox1.Value
    ActiveCell.Activate
    R = Sheet3.[A:A].Find([B3].Value, , , 1).Row
    tam = Sheet3.Cells(R, 77).Resize(, 17).Value
    [B5].Resize(UBound(tam, 2)) = Application.Transpose(tam)
    Hide
End Sub
Vẽ thêm 1 cái nút CommandButton1 và cho code này vào
PHP:
Private Sub CommandButton1_Click()
Dim R As Long, tam()
R = Sheet3.[A:A].Find([B3].Value, , , 1).Row
tam = Range("B5:B21").Value
Sheet3.Cells(R, 77).Resize(, 17).Value = Application.Transpose(tam)
End Sub

Dạ, Em rất rất cảm ơn Bác.. E làm được rồi, sướng quá hi hi...

Còn tý tẹo nữa, bác giúp nốt vì nó đang ghi đè lên dữ liệu cũ.

VD: Trong sheet "Nhap_BS" Ô B5 ngày hôm trước E đã ghi vào Dulieu là Nguyen Van A

Hôm nay E bổ sung thông tin tiếp cho xe đó, bỏ trống Ô B5, ghi vào Ô B6 - Ngày duyệt PASGS là 30/12/2014 thì khi nhấn ghi dữ liệu nó xóa sạch cái đã ghi ngày hôm trước và nhập chỉ nhập thông tin mới đưa vào thôi.

Bác giúp E để không bị ghi trùng thông tin này có được không ạ..? %#^#$
 
Upvote 0
Dạ, Em rất rất cảm ơn Bác.. E làm được rồi, sướng quá hi hi...

Còn tý tẹo nữa, bác giúp nốt vì nó đang ghi đè lên dữ liệu cũ.

VD: Trong sheet "Nhap_BS" Ô B5 ngày hôm trước E đã ghi vào Dulieu là Nguyen Van A

Hôm nay E bổ sung thông tin tiếp cho xe đó, bỏ trống Ô B5, ghi vào Ô B6 - Ngày duyệt PASGS là 30/12/2014 thì khi nhấn ghi dữ liệu nó xóa sạch cái đã ghi ngày hôm trước và nhập chỉ nhập thông tin mới đưa vào thôi.

Bác giúp E để không bị ghi trùng thông tin này có được không ạ..? %#^#$
Có kèm chú thích, bạn có thể tuỳ biến thêm
PHP:
Private Sub CommandButton1_Click()
Dim R As Long, tam(), kq(), bs(), i
'xác định dòng của dk tại B3
R = Sheet3.[A:A].Find([B3].Value, , , 1).Row
'gán giá trị vào biến bs để dành đó
bs = Range("B5:B21").Value
'lấy dữ liệu đã có sẵn lên biến tam để đó
tam = Sheet3.Cells(R, 77).Resize(, 17).Value
'tạo ra 1 mảng kq có chỉ số bằng với chỉ số của biến bs
ReDim kq(1 To UBound(bs))
'duyệt qua biến tam nếu đã có dữ liệu rồi thì không ghi đè
For i = 1 To UBound(bs)
   If tam(1, i) = "" Then
      kq(i) = bs(i, 1)
   Else
      kq(i) = tam(1, i)
   End If
Next
Sheet3.Cells(R, 77).Resize(, 17).Value = kq
End Sub
Private Sub ListBox1_Click()
    ActiveCell.Value = Sheet1.ListBox1.Value
    ActiveCell.Activate
    Hide
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Thay code này trong sheet NHAP_BS
PHP:
Private Sub ListBox1_Click()
Dim R As Long, tam()
    ActiveCell.Value = Sheet1.ListBox1.Value
    ActiveCell.Activate
    R = Sheet3.[A:A].Find([B3].Value, , , 1).Row
    tam = Sheet3.Cells(R, 77).Resize(, 17).Value
    [B5].Resize(UBound(tam, 2)) = Application.Transpose(tam)
    Hide
End Sub
Vẽ thêm 1 cái nút CommandButton1 và cho code này vào
PHP:
Private Sub CommandButton1_Click()
Dim R As Long, tam()
R = Sheet3.[A:A].Find([B3].Value, , , 1).Row
tam = Range("B5:B21").Value
Sheet3.Cells(R, 77).Resize(, 17).Value = Application.Transpose(tam)
End Sub

Bác QuangHai1969 ơi, cho E hỏi, nếu E muốn nhập thêm 1 giá trị ở Ô B4 sheet "Nhap_BS" vào cột B tương ứng ở sheet "Dulieu" và mọi thứ ở trên không thay đổi thì hàm của Bác cần phải sửa thêm những gì nữa ạ. Nhờ Bác chỉ thêm giúp E với nhé. Em cảm ơn ạ.
 
Upvote 0
Sao bạn không nghĩ đến giải pháp khác, ví dụ dùng Form, mà lại loay quay với việc sửa sửa trên sheet Form vậy.

Tôi chỉ mặn mà với sheet Form khi dùng nó làm phiếu xuất kho, phiếu xuất hàng hoặc hóa đơn với nhiều dòng chủng loại nhiều loại số lượng và đơn vị tính khi xuất và in phiếu xong dùng nó để nhập vào sheet theo dõi.
 
Lần chỉnh sửa cuối:
Upvote 0
Sao bạn không nghĩ đến giải pháp khác, ví dụ dùng Form, mà lại loay quay với việc sửa sửa trên sheet Form vậy.

Tôi chỉ mặn mà với sheet Form khi dùng nó làm phiếu xuất kho, phiếu xuất hàng hoặc hóa đơn với nhiều dòng chủng loại nhiều loại số lượng và đơn vị tính khi xuất và in phiếu xong dùng nó để nhập vào sheet theo dõi.

Dạ, trót lỡ theo cách này rồi Bác ạ, loay hoay sắp xong rồi giờ chuyển sang cái khác ngại lắm vì trình độ còn a bờ cờ...

Em biết là có nhiều cách hay trong excel. Lỡ theo bác QuangHai1969 nên theo đến chót thôi ạ.. hi hi
 
Upvote 0
Dạ, trót lỡ theo cách này rồi Bác ạ, loay hoay sắp xong rồi giờ chuyển sang cái khác ngại lắm vì trình độ còn a bờ cờ...

Em biết là có nhiều cách hay trong excel. Lỡ theo bác QuangHai1969 nên theo đến chót thôi ạ.. hi hi

Tôi chỉ nêu ý tưởng thôi, việc còn lại thì tùy thuộc vào người sử dụng, thấy cái gì hợp với mình thì cứ thực hiện.
 
Upvote 0
Chao ban trananhtommy ban co the cho minh xin file du lieu dc ko vi duong link minh vao nhg bi loi 404. Cam on ban nhieu nhen
 
Upvote 0
Dùng form thì được bao nhiêu cột các bác nhỉ?
 
Upvote 0

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

Back
Top Bottom