Nhờ các anh chị giúp em code cập nhật dữ liệu nhưng thực hiện trên sheet với ạ (1 người xem)

  • Thread starter Thread starter namkpac
  • Ngày gửi Ngày gửi
Liên hệ QC

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

namkpac

Thành viên thường trực
Tham gia
25/11/08
Bài viết
279
Được thích
9
Nhờ các anh chị giúp em code cập nhật dữ liệu nhưng thực hiện trên sheet với ạ
Nội dung câu hỏi em soạn trong file luôn. cảm ơn anh chị trên diễn đàn.
 

File đính kèm

Nhờ các anh chị giúp em code cập nhật dữ liệu nhưng thực hiện trên sheet với ạ
Nội dung câu hỏi em soạn trong file luôn. cảm ơn anh chị trên diễn đàn.

Nhìn file chẳng hiểu tí nào, sheet1 bạn nên cho kết quả sau khi copy từ sheet2 qua nhé.
 
Upvote 0
Nhìn file chẳng hiểu tí nào, sheet1 bạn nên cho kết quả sau khi copy từ sheet2 qua nhé.

Em gửi lại file với nội dung em hỏi cụ thể hơn mong anh chị trên diễn đàn giúp em với. ví dụ như sheet2 nó tương tự như một phiếu thu khi bấm nút button1 thì toàn bộ nội dung được ghi vào sheet1 là bảng tổng hợp.
 

File đính kèm

Upvote 0
Em gửi lại file với nội dung em hỏi cụ thể hơn mong anh chị trên diễn đàn giúp em với. ví dụ như sheet2 nó tương tự như một phiếu thu khi bấm nút button1 thì toàn bộ nội dung được ghi vào sheet1 là bảng tổng hợp.
.
Xem cách củ chuối ở file đính kèm nhé.
 

File đính kèm

Upvote 0
Thêm 1 tham khảo cho bạn:
PHP:
Option Explicit
Sub gpe()
 Dim Sh As Worksheet
 Dim lRw As Long, jJ As Byte
 Dim StrC As String, sNum As String
 
 Set Sh = ThisWorkbook.Worksheets("Sheet1")
 lRw = Sh.[e65500].End(xlUp).Row
1 '.Xu Lí Só Fiéu:'
 StrC = Sh.[b65500].End(xlUp).Value
 For jJ = 1 To Len(StrC)
    If Asc(Mid(StrC, jJ, 1)) > 64 Then
    Else
        sNum = Mid(StrC, jJ, 9):            Exit For
    End If
 Next jJ
 sNum = Left(StrC, jJ - 1) & Right("00" & CStr(CLng(sNum) + 1), 3)
2 '.Copy:'
  With [B8].CurrentRegion
    .Offset(1, 1).Copy Destination:=Sh.Cells(lRw, "E")
    [a8].Resize(.Rows.Count).Copy Destination:=Sh.Cells(lRw, "A")
    Sh.Cells(lRw, "B").Value = sNum
    Sh.Cells(lRw, "C").Value = Date
  End With
End Sub
 
Upvote 0
Thêm 1 tham khảo cho bạn:
PHP:
Option Explicit
Sub gpe()
 Dim Sh As Worksheet
 Dim lRw As Long, jJ As Byte
 Dim StrC As String, sNum As String
 
 Set Sh = ThisWorkbook.Worksheets("Sheet1")
 lRw = Sh.[e65500].End(xlUp).Row
1 '.Xu Lí Só Fiéu:'
 StrC = Sh.[b65500].End(xlUp).Value
 For jJ = 1 To Len(StrC)
    If Asc(Mid(StrC, jJ, 1)) > 64 Then
    Else
        sNum = Mid(StrC, jJ, 9):            Exit For
    End If
 Next jJ
 sNum = Left(StrC, jJ - 1) & Right("00" & CStr(CLng(sNum) + 1), 3)
2 '.Copy:'
  With [B8].CurrentRegion
    .Offset(1, 1).Copy Destination:=Sh.Cells(lRw, "E")
    [a8].Resize(.Rows.Count).Copy Destination:=Sh.Cells(lRw, "A")
    Sh.Cells(lRw, "B").Value = sNum
    Sh.Cells(lRw, "C").Value = Date
  End With
End Sub

Cảm ơn các bạn, các anh, chị trên diễn đàn 2 đáp án đều như ý của em, tuy nhiên đáp án 2 là đúng hơn vì mỗi lần cập nhật thì giá trị tại cột B sheet1 lại tăng lên 1 đơn vị. Cảm ơn mọi người rất nhiều.
 
Upvote 0
Nếu em muốn điền 1 dãy số tại cột B sheet1 (em gửi file kèm để minh hoạ); và khi xoá hết dữ liệu mà nhấn nút thì nó mặc định là số đầu tiên chứ giờ em xoá hết nội dung của sheet1 thì khi bấm nút nó báo lỗi. và có thể giải thích giúp em dòng lệnh từ xử lý số liệu và copy không ạ, em dùng F8 để debug nhưng vẫn chưa hiểu lắm.

Nếu em muốn điền 1 dãy số tại cột B sheet1 (em gửi file kèm để minh hoạ); và khi xoá hết dữ liệu mà nhấn nút thì nó mặc định là số đầu tiên chứ giờ em xoá hết nội dung của sheet1 thì khi bấm nút nó báo lỗi.
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
(3) Nếu em muốn điền 1 dãy số tại cột B sheet1 (em gửi file kèm để minh hoạ);
(2) và khi xoá hết dữ liệu mà nhấn nút thì nó mặc định là số đầu tiên chứ giờ em xoá hết nội dung của sheet1 thì khi bấm nút nó báo lỗi.
(1) và có thể giải thích giúp em dòng lệnh từ xử lý số liệu và copy không ạ, em dùng F8 để debug nhưng vẫn chưa hiểu lắm.
PHP:
Option Explicit
Sub gpe()
 Dim Sh As Worksheet
 Dim lRw As Long, jJ As Byte
 Dim StrC As String, sNum As String
 
 Set Sh = ThisWorkbook.Worksheets("Sheet1")
 lRw = Sh.[e65500].End(xlUp).Row
1 '.Xu Lí Só Fiéu:'
10 StrC = Sh.[b65500].End(xlUp).Value
11 For jJ = 1 To Len(StrC)
12    If Asc(Mid(StrC, jJ, 1)) > 64 Then
13    Else
14        sNum = Mid(StrC, jJ, 9):            Exit For
15    End If
16 Next jJ
17 sNum = Left(StrC, jJ - 1) & Right("00" & CStr(CLng(sNum) + 1), 3)
2 '.Copy:'
  With [B8].CurrentRegion
    .Offset(1, 1).Copy Destination:=Sh.Cells(lRw, "E")
    [a8].Resize(.Rows.Count).Copy Destination:=Sh.Cells(lRw, "A")
23    Sh.Cells(lRw, "B").Value = sNum
    Sh.Cells(lRw, "C").Value = Date
  End With
End Sub

D10: Lấy dữ liệu của ô cuối thuộc cột gán vô biến StrC đã khai báo;
D11: Lập vòng lặp duyệt từ đầu đến hết chiều dài của biến này;
(Vòng lặp kết thúc tại D16)
D12: Điều kiện, nếu khi duyệt ta gặp kí tự thì (không làm gì cả)
D13: Bằng không thỏa điều kiện (Nghĩa là gặp kí số) thì thực hiện các lệnh trong D14
D14:
D14A: Cắt lấy fần sau kí tự cuối cùng (đến hết mả fiếu) gán vô biến kiều chuỗi sNum
S14B: Thoát vòng lặp
D15: Kết thúc điều kiện
D17: Cải biến biến sNum từ biến sNum bằng cách:
Chuyển sNum thành kiểu dữ liệu số & cộng thêm 1, sau đó chuyển ngược lại thành chuỗi 3 ký số & gắn thêm tiếp fần ký tự (đầu fiếu)

(2) Bạn làm kiểu này để lừa máy tính:
Thêm 1 dòng giữa fần tiêu đề (dòng 10) & fần dữ liệu bên dưới
Sau đó nhập vô các ô [B11:E11] trị mã đầu số fiếu, như "AC000"
Cuối cùng cho dòng mới thêm này biến khỏi người trần mắt thịt (ẩn đi);

(3) Bạn nghiên cứu & tự sửa D23 xem sao & chúc thành công!
 
Upvote 0
PHP:
D10: Lấy dữ liệu của ô cuối thuộc cột [B] gán vô biến StrC đã khai báo;
D11: Lập vòng lặp duyệt từ đầu đến hết chiều dài của biến này;
(Vòng lặp kết thúc tại D16)
D12: Điều kiện, nếu khi duyệt ta gặp kí tự thì (không làm gì cả)
D13: Bằng không thỏa điều kiện (Nghĩa là gặp kí số) thì thực hiện các lệnh trong D14
D14: 
D14A: Cắt lấy fần sau kí tự cuối cùng (đến hết mả fiếu) gán vô biến kiều chuỗi sNum
S14B: Thoát vòng lặp
D15: Kết thúc điều kiện
D17: Cải biến biến sNum từ biến sNum bằng cách:
Chuyển sNum thành kiểu dữ liệu số & cộng thêm 1, sau đó chuyển ngược lại thành chuỗi 3 ký số & gắn thêm tiếp fần ký tự (đầu fiếu)

(2) Bạn làm kiểu này để lừa máy tính:
Thêm 1 dòng giữa fần tiêu đề (dòng 10) & fần dữ liệu bên dưới
Sau đó nhập vô các ô [B11:E11] trị mã đầu số fiếu, như "AC000"
Cuối cùng cho dòng mới thêm này biến khỏi người trần mắt thịt (ẩn đi);

(3) Bạn nghiên cứu & tự sửa D23 xem sao & chúc thành công![/QUOTE]

Mình thử làm các nội dung như sau nhưng khi thực hiện nó báo lỗi Type mismatch
Thêm 1 dòng giữa fần tiêu đề (dòng 10) & fần dữ liệu bên dưới
Sau đó nhập vô các ô [B11:E11] trị mã đầu số fiếu, như "AC000"
Cuối cùng cho dòng mới thêm này biến khỏi người trần mắt thịt (ẩn đi);
Còn tự sửa D23 thì mình chưa làm được vì mình đang tự học, tự mày mò vba excel
 
Upvote 0
Bạn xem trong file nha

--=0 --=0 --=0 \\\\\\\\\\\\\\\\\\\\\//////////////////////////\\\\\\\\\\\\\\\\\\\\}}}}} }}}}} }}}}}
 

File đính kèm

Upvote 0
Em cảm ơn các anh chị nha. trường hợp nếu nội dung bên sheet2 nằm lung tung tức là nằm không theo thứ tự như hiện tại thì mình thay đổi thế nào anh chị nhỉ?

Em cảm ơn các anh chị, em muốn hỏi thêm anh chị một xíu nữa nha, tại sheet2 nội dung không nằm theo thứ tự mà nằm rải rác em ví dụ như khi chèn thêm các cột vào giữa từng cột nội dung thì khi điền nội vào sheet1 code sẽ thay đổi thế nào ạ?

----------------------
HLMT:

[WARNING]Hãy kiên nhẫn, đừng post bài liên tục, tránh spam nhé.[/WARNING]
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
[thongbao]em muốn hỏi thêm anh chị một xíu nữa nha, tại sheet2 nội dung không nằm theo thứ tự mà nằm rải rác em ví dụ như khi chèn thêm các cột vào giữa từng cột nội dung thì khi điền nội vào sheet1 code sẽ thay đổi thế nào ạ?
[/thongbao]

Thì lúc đó tạo vòng lặp duyệt toàn bộ tên trường trên dòng 7 của trang 'Sh2'; Khi nào trùng với cột nào trên trang 'Sh1' thì chép từng cột thôi;
 
Upvote 0
[thongbao]em muốn hỏi thêm anh chị một xíu nữa nha, tại sheet2 nội dung không nằm theo thứ tự mà nằm rải rác em ví dụ như khi chèn thêm các cột vào giữa từng cột nội dung thì khi điền nội vào sheet1 code sẽ thay đổi thế nào ạ?[/thongbao]

Thì tạo vòng lặp duyệt tên trường trên dòng 7 của trang 'Sh2', khi nào trùng với tên trường thuộc dòng 10 trang 'Sh1' thì chép vô như trường 'STT' vậy!
 
Upvote 0
[thongbao]em muốn hỏi thêm anh chị một xíu nữa nha, tại sheet2 nội dung không nằm theo thứ tự mà nằm rải rác em ví dụ như khi chèn thêm các cột vào giữa từng cột nội dung thì khi điền nội vào sheet1 code sẽ thay đổi thế nào ạ?[/thongbao]

Thì tạo vòng lặp duyệt tên trường trên dòng 7 của trang 'Sh2', khi nào trùng với tên trường thuộc dòng 10 trang 'Sh1' thì chép vô như trường 'STT' vậy!

Em không rõ lắm anh chị giúp em với, trường hợp nếu nội dung của sheet1 giữa các cột ta chèn thêm cột khác vào thì code điền nó có giống trên không ạ? em gửi file lên lại nhờ các anh chị giúp em với, em cảm ơn nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em không rõ lắm anh chị giúp em với, trường hợp nếu nội dung của sheet1 giữa các cột ta chèn thêm cột khác vào thì code điền nó có giống trên không ạ? em gửi file lên lại nhờ các anh chị giúp em với, em cảm ơn nhiều

Thứ tự các trường có thể lộn tùng fèo nhưng tên trường giữa 2 trang tính cần thiết fải như nhau;

Bạn nên đưa lại file khác nghiêm chỉnh hơn!
 
Upvote 0
Thứ tự các trường có thể lộn tùng fèo nhưng tên trường giữa 2 trang tính cần thiết fải như nhau;

Bạn nên đưa lại file khác nghiêm chỉnh hơn!

em gửi file cụ thể hơn nhờ các anh chị giúp em với nha.
 

File đính kèm

Upvote 0
Trên GPE.COM mọi người đều tốt bụng cả bạn à!

. . Nếu anh chị nào tốt bụng giúp em giải thích sơ qua đoạn code với, em cảm ơn!
PHP:
Option Explicit
Private Sub Cmd_nhap_Click()
 Dim Sh As Worksheet
 Dim lRw As Long, rNum As Byte
  
 Set Sh = ThisWorkbook.Worksheets("Tong hop")
1 'Xác Dinh Dòng Cuói Chúa Du Lieu Cua Trang Sh:'
 lRw = Sh.[e65500].End(xlUp).Row + 1
2 'Xác Dinh So Dong Cua Hóa Don:'
 rNum = [G23].End(xlUp).Row - 13
 With Sh.Cells(lRw, "G")
    .Value = [G23].Value                                            'Tong Tièn'
    .Offset(, -1).Value = [A14].Value                               'Noi Dung TH'
    .Offset(, -2).Resize(rNum).Value = Date                         'Ngày TH'
    .Offset(, -3).Resize(rNum).Value = [I4].Value                   'Só Hóa Don'
    .Offset(, -5).Resize(rNum).Value = [I6].Value                   'Ngày Nhap'
    .Offset(, 1).Resize(rNum, 2).Value = [J14].Resize(rNum, 2).Value    'No - Có'
    .Offset(, 3).Resize(rNum).Value = [c14].Resize(rNum).Value      'Ma DK'
    .Offset(, 4).Resize(rNum).Value = [P14].Resize(rNum).Value      'Ma DK Chung'
    .Offset(, 5).Resize(rNum).Value = [A14].Resize(rNum).Value      'Noi Dung Chi Tiét'
    .Offset(, 6).Resize(rNum).Value = [G14].Resize(rNum).Value      'Só Tièn'
    .Offset(, 7).Resize(rNum, 2).Value = [e14].Resize(rNum, 2).Value    'Ma Ngành-CM'
    .Offset(, 9).Resize(rNum, 4).Value = [l14].Resize(rNum, 4).Value    '4 Cuói'
 End With
End Sub
 

File đính kèm

Upvote 0
PHP:
Option Explicit<BR>Private Sub Cmd_nhap_Click()<BR>&nbsp;Dim Sh As Worksheet<BR>&nbsp;Dim lRw As Long, rNum As Byte<BR>&nbsp;&nbsp;<BR>&nbsp;Set Sh = ThisWorkbook.Worksheets("Tong hop")<BR>1 'Xác Dinh Dòng Cuói Chúa Du Lieu Cua Trang Sh:'<BR>&nbsp;lRw = Sh.[e65500].End(xlUp).Row + 1<BR>2 'Xác Dinh So Dong Cua Hóa Don:'<BR>&nbsp;rNum = [G23].End(xlUp).Row - 13<BR>&nbsp;With Sh.Cells(lRw, "G")<BR>&nbsp;&nbsp; &nbsp;.Value = [G23].Value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'Tong Tièn'<BR>&nbsp;&nbsp; &nbsp;.Offset(, -1).Value = [A14].Value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Noi Dung TH'<BR>&nbsp;&nbsp; &nbsp;.Offset(, -2).Resize(rNum).Value = Date &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Ngày TH'<BR>&nbsp;&nbsp; &nbsp;.Offset(, -3).Resize(rNum).Value = [I4].Value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Só Hóa Don'<BR>&nbsp;&nbsp; &nbsp;.Offset(, -5).Resize(rNum).Value = [I6].Value &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Ngày Nhap'<BR>&nbsp;&nbsp; &nbsp;.Offset(, 1).Resize(rNum, 2).Value = [J14].Resize(rNum, 2).Value &nbsp; &nbsp;'No - Có'<BR>&nbsp;&nbsp; &nbsp;.Offset(, 3).Resize(rNum).Value = [c14].Resize(rNum).Value &nbsp; &nbsp; &nbsp;'Ma DK'<BR>&nbsp;&nbsp; &nbsp;.Offset(, 4).Resize(rNum).Value = [P14].Resize(rNum).Value &nbsp; &nbsp; &nbsp;'Ma DK Chung'<BR>&nbsp;&nbsp; &nbsp;.Offset(, 5).Resize(rNum).Value = [A14].Resize(rNum).Value &nbsp; &nbsp; &nbsp;'Noi Dung Chi Tiét'<BR>&nbsp;&nbsp; &nbsp;.Offset(, 6).Resize(rNum).Value = [G14].Resize(rNum).Value &nbsp; &nbsp; &nbsp;'Só Tièn'<BR>&nbsp;&nbsp; &nbsp;.Offset(, 7).Resize(rNum, 2).Value = [e14].Resize(rNum, 2).Value &nbsp; &nbsp;'Ma Ngành-CM'<BR>&nbsp;&nbsp; &nbsp;.Offset(, 9).Resize(rNum, 4).Value = [l14].Resize(rNum, 4).Value &nbsp; &nbsp;'4 Cuói'<BR>&nbsp;End With<BR>End Sub<BR>
<BR><BR>Em cảm ơn các pác nhiều hòan toàn những công việc đều đúng ý của em mà từ đây em học hỏi từ các anh chị nhiều. một lần nữa cảm ơn mọi người đã giúp đỡ
 
Upvote 0
Giúp em giải quyết vấn đề lọc và nạp giá trị tương ứng sau khi chọn dữ liệu trong list cột C sheet "nhap" thì cột P sheet nhập sẽ lấy giá trị tương ứng nằm trong dữ liệu của cột C sheet "nguon". em xin cảm ơn.
 
Upvote 0
Web KT

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

Back
Top Bottom