xin mã code tự động tao sheet mới theo sheet danh sách và theo sheet mẫu (2 người xem)

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

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

Nana_nd

Thành viên mới
Tham gia
9/6/20
Bài viết
8
Được thích
0
e chào các anh chị ạ, em có file cập nhập hóa đơn dưới đây, một tháng e có rất nhiều hóa đơn, em muốn khi em gõ tên 1 hóa đơn mới ở sheet danh sách, file sẽ tự tạo một sheet mới có tên của hóa đơn mới và định dạng giống sheet mẫu, em mong các anh chị giúp đỡ ạ
 

File đính kèm

e chào các anh chị ạ, em có file cập nhập hóa đơn dưới đây, một tháng e có rất nhiều hóa đơn, em muốn khi em gõ tên 1 hóa đơn mới ở sheet danh sách, file sẽ tự tạo một sheet mới có tên của hóa đơn mới và định dạng giống sheet mẫu, em mong các anh chị giúp đỡ ạ
Góp ý cho bạn:
1/ Đầu câu phải viết hoa, bài viết bằng tiếng Việt cần viết có dấu đầy đủ, tránh phạm lỗi chính tả (có 2 dòng mà cũng viết tắt là sao). Bân nên đọc lại nội quy để hiểu.
2/ Không nên lưu mỗi hóa đơn là 1 sheet, chỉ cần 1 sheet mẫu muốn in hóa đơn nào thì truy vấn nó ra. Không lẽ có 1000 hóa đơn lại làm 1000 sheet.
3/ Trong File có nhiều loại hóa đơn bạn nên cụ thể và áp dụng loại hóa đơn nào? Hay là tất cả?
 
Mã:
Sub Ahihi()
    Dim NewFile As Workbook, Mau As Worksheet, SoSheet As Long
    Dim arrS()
    Dim Dong As Long
    
    Set NewFile = Application.Workbooks.Add(xlWorksheet)
    ThisWorkbook.Worksheets("mau").Copy , NewFile.Worksheets(1)
    Set Mau = NewFile.Worksheets(2)
    SoSheet = NewFile.Worksheets.Count
    arrS = ThisWorkbook.Worksheets("danhsach").Range("A2:C19").Value
    For Dong = 1 To UBound(arrS)
        If arrS(Dong, 1) <> "" Then
            Mau.Copy Mau
            With ActiveSheet
                .Name = arrS(Dong, 1)
                .Range("B1") = arrS(Dong, 1)
                .Range("B3") = arrS(Dong, 3)
            End With
        End If
    
    Next Dong
    
    
End Sub
Bạn sửa tên sheet "Mẫu" thành "mau", "danh sách" thành danhsach rồi chạy code nhé, muốn lới rộng danh sách thì sửa địa chỉ "A2:C19" cho phù hợp
 
bác truongvu317 ơi, em paste code kia vào mà không được, nó chạy ra một file mới như này ạ

Untitled.png
 
bác truongvu317 ơi, em paste code kia vào mà không được, nó chạy ra một file mới như này ạ

View attachment 239433
Mã:
Sub Ahihi()
    Dim NewFile As Workbook, Mau As Worksheet, SoSheet As Long
    Dim arrS()
    Dim Dong As Long
    
    'Set NewFile = Application.Workbooks.Add(xlWorksheet)
    'ThisWorkbook.Worksheets("mau").Copy , NewFile.Worksheets(1)
    
    Set Mau = ThisWorkbook.Worksheets("Mau")
    'SoSheet = NewFile.Worksheets.Count
    arrS = ThisWorkbook.Worksheets("danhsach").Range("A2:C19").Value
    For Dong = 1 To UBound(arrS)
        If arrS(Dong, 1) <> "" Then
            Mau.Copy Mau
            With ActiveSheet
                .Name = arrS(Dong, 1)
                .Range("B1") = arrS(Dong, 1)
                .Range("B3") = arrS(Dong, 3)
            End With
        End If
    
    Next Dong
    
    
End Sub

Nếu thế sài code này xem có được không.
Bài đã được tự động gộp:

Tên hóa đơn của bạn chứa dấu "/" thì sao mà đặt tên sheet được
Lại một vấn đề nhức đầu nữa.
 
bác truongvu317 ơi, em paste code kia vào mà không được, nó chạy ra một file mới như này ạ

View attachment 239433


arrS = ThisWorkbook.Worksheets("danhsach").Range("A2:C19").Value

Trong File của bạn sheet nào có tên danhsach không bạn??? Bạn xem lại sheet nào có chứa danh sách tên sheet cần tạo và đổi tên sheet thành danhsach đấy
 
arrS = ThisWorkbook.Worksheets("danhsach").Range("A2:C19").Value

Trong File của bạn sheet nào có tên danhsach không bạn??? Bạn xem lại sheet nào có chứa danh sách tên sheet cần tạo và đổi tên sheet thành danhsach đấy
Mình đã nhắn nhủ bạn đó về cái danhsach ở bài trước rùi, hình bạn ý chụp nó cũng chạy ra được vài sheet gì gì đó, chỉ là đang chạy thì không biết lý do gì đó mà dây đứt lìa đàn, nụ hoa chưa thắm vội tàn,
 
hình bạn ý chụp nó cũng chạy ra được vài sheet gì gì đó, chỉ là đang chạy thì không biết lý do gì đó mà dây đứt lìa đàn, nụ hoa chưa thắm vội tàn
Em thấy "dây đứt lìa đàn" là do chỗ này đó bác:
Đến dòng thứ 2, tên hóa đơn chứa dấu "/" nên tên sheet không lưu được
 
Các bác ơi, em paste code kia, bỏ dấu "/" và file đã chạy rồi ạ, em cảm ơn nhiều ạ, nhưng mà các sheet bị thay đổi một ít nội dung chứ không giữ nguyên như sheet mau, như này ạ:

thaydoi.png
sheet mau đây ạ:
mau.png
và cho em hỏi là có cách nào để sheet mau và sheet danhsach của em luôn ở đầu tiên không ạ.
 
Web KT

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

Back
Top Bottom