copy dữ liệu sang sheet khác (1 người xem)

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

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

black0

Thành viên mới
Tham gia
25/10/11
Bài viết
17
Được thích
1
Xin mọi người giúp đỡ!
Chẳng hạn ở sheet1 em đã dùng hàm để tính toán và cho kết quả. em muốn lấy kết quả từ sheet1 vừa tính được sang sheet2 mà không phải nhập lại dữ liệu. Copy theo cách thông thường thì bị lối vậy phải làm sao?
 
Xin mọi người giúp đỡ!
Chẳng hạn ở sheet1 em đã dùng hàm để tính toán và cho kết quả. em muốn lấy kết quả từ sheet1 vừa tính được sang sheet2 mà không phải nhập lại dữ liệu. Copy theo cách thông thường thì bị lối vậy phải làm sao?
Vấn đề đơn giản
nếu bạn sử dụng Paste Special/Values
 
Nếu bạn sử dụng hàm trong excell thì không thể copy sang sheet khác vì nó sẽ bị mã hóa công thức. để có được dữ liệu ở sheet 1 sang sheet 2 mà không cần nhập lại dữ liệu thì bạn làm như sau:
Cách 1: bôi đen toàm bộ chỗ cần coppy nhấn chuột phải- coppy-nhấn chuột phải chọn paste special-rồi paste vào sheet mới.
Cách 2: Ấn phím ctrl + chuột trái vào sheet 1 và giữ phím rồi kéo ra thanh công cụ bên cạnh thành sheet 1(2) thả tay ra thế là được tất cả giữ liệu như sheet ban đầu.
Chúc bạn thành công nha
 
Ban bấm chuột phải vào sheet cần copy rồi thì sẽ xuất hiện 1 bảng. Bạn bấm chọn vào ô create a copy, bấm chọn vào sheet cần chuyển, ok là xong
 
Cách mọi người chỉ cũng tốt nhưng nó làm mất công thức hết như vậy khi mình muốn thay đổi dữ liệu trên sheet1 thì ko còn chính xác nữa. Còn cách copy sheet thì mất thời gian tạo lại cái bảng tổng hợp (sheet2). Còn cách nào khác ko ah?
 
Bạn xem như thế này có đúng ý của bạn không nhé
Mã:
Option Explicit

Sub copy2()
    With Sheets("Sheet2")
        .Cells(65536, 1).End(xlUp).Offset(1, 0).Value = Sheets("Sheet1").Range("C2").Value
    End With
End Sub
Chúc thành công
Cách mọi người chỉ cũng tốt nhưng nó làm mất công thức hết như vậy khi mình muốn thay đổi dữ liệu trên sheet1 thì ko còn chính xác nữa. Còn cách copy sheet thì mất thời gian tạo lại cái bảng tổng hợp (sheet2). Còn cách nào khác ko ah?
 
Cho Mình hỏi có cách nào mình copy co lựa chọn các cột bên sheet 1 qua các cột cố định bên Sheet2. Ví dụ: như Sheet 2 là hóa đơn để In ra có các cột mahang, tenhang, đvt, soluong, dongia, giamgia, thanhtien
 
Cho Mình hỏi có cách nào mình copy co lựa chọn các cột bên sheet 1 qua các cột cố định bên Sheet2. Ví dụ: như Sheet 2 là hóa đơn để In ra có các cột mahang, tenhang, đvt, soluong, dongia, giamgia, thanhtien
Hỏi như kiểu bạn thì chẳng ai hiểu lấy cái gì ở đâu và gán nó chỗ nào, của sheet nào?
Hỏi về hóa đơn là một chủ đề khác nó có liên quan đến Macro. Vì vậy, bạn nên mở Topic khác trong Box Lập trình với Excel và đính kèm File sẽ được nhiều người trợ giúp hơn.
 
Lần chỉnh sửa cuối:
Hỏi như kiểu bạn thì chẳng ai hiểu lấy cái gì ở đâu và gán nó chỗ nào, của sheet nào?
Hỏi về hóa đơn là một chủ đề khác. Vì vậy, bạn nên mở Topic khác và đính kèm File sẽ được nhiều người trợ giúp hơn.
Trước hết mình rất cảm ơn bạn đã trả lời bài viết của mình. Ý mình muốn hỏi là có thể copy các cột ko theo thứ tự từ sheet 1 qua sheet 2. có điều kiện ví dụ: Mình tạo nút lệnh khi mình rõ bên sheet 2 mã NVA01 thì sẽ copy tất cả các cột của NVA01 từ Sheet 1 sang Sheet 2
 
Trước hết mình rất cảm ơn bạn đã trả lời bài viết của mình. Ý mình muốn hỏi là có thể copy các cột ko theo thứ tự từ sheet 1 qua sheet 2. có điều kiện ví dụ: Mình tạo nút lệnh khi mình rõ bên sheet 2 mã NVA01 thì sẽ copy tất cả các cột của NVA01 từ Sheet 1 sang Sheet 2
Bài 8 tôi nêu vầy:
Nó có liên quan đến Macro. Vì vậy, bạn nên mở Topic khác trong Box Lập trình với Excel và đính kèm File sẽ được nhiều người trợ giúp hơn.
Có nghĩa là phải đính kèm File thì người ta mới hiểu là copy cái gì, ở đâu, nó có bao nhiêu cột?
Bạn tham khảo File trong bài 16 của Topic sau (nó tương tự cái bạn cần, chỉ khác vều cấu trúc).
https://www.giaiphapexcel.com/diendan/threads/nhờ-mọi-người-giúp-tự-thêm-dòng-và-lấy-dữ-liệu.136426/
 
Bài 8 tôi nêu vầy:
Nó có liên quan đến Macro. Vì vậy, bạn nên mở Topic khác trong Box Lập trình với Excel và đính kèm File sẽ được nhiều người trợ giúp hơn.
Có nghĩa là phải đính kèm File thì người ta mới hiểu là copy cái gì, ở đâu, nó có bao nhiêu cột?
Bạn tham khảo File trong bài 16 của Topic sau (nó tương tự cái bạn cần, chỉ khác vều cấu trúc).
https://www.giaiphapexcel.com/diendan/threads/nhờ-mọi-người-giúp-tự-thêm-dòng-và-lấy-dữ-liệu.136426/
Mình thấy cái mình nói nó cũng gần giống với cái bài này của bản. Bây giờ mình đưa file lên bạn xem giúp mình nhé. Cảm ơn
 

File đính kèm

Mình thấy cái mình nói nó cũng gần giống với cái bài này của bản. Bây giờ mình đưa file lên bạn xem giúp mình nhé. Cảm ơn
Thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
End Sub
 
Thử:
PHP:
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
      
Rất cảm ơn bạn đã nhiệt tình giúp đỡ. Bạn có thể giải thích đọan này giúp mình được không bạn
. Với lại mình múôn thêm cái tiêu đề bên dứơi như ngày.... tháng... năm.... Nguời bán, nguời mua, nhân viên bán hàng. Mình có thể làm sao khi dữ liệu được thay đổi thì không ảnh huởng đến cái tiêu đề bên dưới
 
Lần chỉnh sửa cuối:
. Với lại mình múôn thêm cái tiêu đề bên dứơi như ngày.... tháng... năm.... Nguời bán, nguời mua, nhân viên bán hàng. Mình có thể làm sao khi dữ liệu được thay đổi thì không ảnh huởng đến cái tiêu đề bên dưới
Vậy bạn xem code dưới đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&, LR
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Name = "Times New Roman"
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Size = 13
            LR = Range("A5000").End(xlUp).Row
            Range("F" & LR + 2) = Sheets("thongtin").Range("B2")
            Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
End Sub
[/ph]
 
Vậy bạn xem code dưới đây:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&, LR
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Name = "Times New Roman"
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Size = 13
            LR = Range("A5000").End(xlUp).Row
            Range("F" & LR + 2) = Sheets("thongtin").Range("B2")
            Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
End Sub
[/ph]
Mình Rất...rất vô cùng cảm ơn bạn. Nhưng bạn có thể làm cho mục ngày tháng năm của hiện tại và tiêu đề người bán hàng chỉ in đậm khi xuất hiện ở dòng đó còn nếu xuât hiện dòng khác thì dòng khác in đậm dòng cũ trở lại bình thường dùm mình luôn được không bạn. Và khi nhấn nút in chỉ in dòng có dữ liệu thôi.
 
Lần chỉnh sửa cuối:
Mình Rất...rất vô cùng cảm ơn bạn. Nhưng bạn có thể làm cho mục ngày tháng năm của hiện tại dùm mình luôn được không.
Thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&, LR
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Name = "Times New Roman"
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Size = 14
            LR = Range("A5000").End(xlUp).Row
            Range("G" & LR + 2) = Sheets("thongtin").Range("B1")
            Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
            Range("G" & LR + 7) = Sheets("thongtin").Range("B4")
           
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
End Sub
 
Lần chỉnh sửa cuối:
bài viết rất hay cám ơn bạn
 
Thử:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&, LR
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Name = "Times New Roman"
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Size = 14
            LR = Range("A5000").End(xlUp).Row
            Range("G" & LR + 2) = Sheets("thongtin").Range("B1")
            Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
            Range("G" & LR + 7) = Sheets("thongtin").Range("B4")
          
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
End Sub
Mình cảm ơn bạn. Nhưng mình có 3 vấn đề thắc mắc nhờ bạn giúp:
- Nhưng bạn có thể làm cho mục ngày tháng năm mặc nhiên là Now().
- Mình chưa hiểu đọan code:
Range("G" & LR + 2) = Sheets("thongtin").Range("B1")
Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
Range("G" & LR + 7) = Sheets("thongtin").Range("B4")
Khác gì nhiều so với đọan code trên không bạn.
- Tiêu đề người bán hàng chỉ in đậm khi xuất hiện ở dòng đó còn nếu xuât hiện dòng khác thì dòng khác in đậm dòng cũ trở lại bình thường dùm mình luôn được không bạn. Và khi nhấn nút in chỉ in dòng có dữ liệu thôi.
 
Mình cảm ơn bạn. Nhưng mình có 3 vấn đề thắc mắc nhờ bạn giúp:
- Nhưng bạn có thể làm cho mục ngày tháng năm mặc nhiên là Now().
- Mình chưa hiểu đọan code:
Range("G" & LR + 2) = Sheets("thongtin").Range("B1")
Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
Range("G" & LR + 7) = Sheets("thongtin").Range("B4")
Khác gì nhiều so với đọan code trên không bạn.
- Tiêu đề người bán hàng chỉ in đậm khi xuất hiện ở dòng đó còn nếu xuât hiện dòng khác thì dòng khác in đậm dòng cũ trở lại bình thường dùm mình luôn được không bạn. Và khi nhấn nút in chỉ in dòng có dữ liệu thôi.
Bạn xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&, LR
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Name = "Times New Roman"
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Size = 14
            LR = Range("A5000").End(xlUp).Row
            Range("G" & LR + 2) = Sheets("thongtin").Range("B1")
            Range("G" & LR + 2).Font.Italic = True
            Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
            Range("G" & LR + 3).Font.Bold = True
            Range("G" & LR + 7) = Sheets("thongtin").Range("B4")
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
    Range("A1:I" & LR + 8).Select
    'Range("A1:I" & LR + 8).PrintOut
End Sub
 

File đính kèm

Bạn xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&, LR
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Name = "Times New Roman"
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Size = 14
            LR = Range("A5000").End(xlUp).Row
            Range("G" & LR + 2) = Sheets("thongtin").Range("B1")
            Range("G" & LR + 2).Font.Italic = True
            Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
            Range("G" & LR + 3).Font.Bold = True
            Range("G" & LR + 7) = Sheets("thongtin").Range("B4")
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
    Range("A1:I" & LR + 8).Select
    'Range("A1:I" & LR + 8).PrintOut
End Sub
Cảm ơn bạn giỏi quá. Mình mới tập tành làm nên chưa rành lắm
 
Cảm ơn bạn giỏi quá. Mình mới tập tành làm nên chưa rành lắm
Nhưng bạn ơi mình có cách nào làm tiêu đề nó In đậm chỉ khi nó nằm ở Cell đó khi chuyển sang cell khác thì cell mói In đậm cell cũng chuyển laj bình thường. Còn cột tổng cộng nữa bạn ơi
 
Lần chỉnh sửa cuối:
Bạn nói rõ hơn, cụ thể trong File BANHANG?
Trong file in HĐ BH đó bạn. vd: Khi mình In đậm(hoặc các định dạng khác) c11 của tiêu đề. đến mã hđ khác tiêu đề không nằm ơ C11 nữa mà nằm C50 thi fkhi đó C11 vẫn In đậm. mình chỉ muốn là nó in đậm lúc nào hiện tiêu đề thôi. Với lại bạn làm dùm mình cột tổng cộng đơn hàng ở cuối dòng dùm mình với
 
Trong file in HĐ BH đó bạn. vd: Khi mình In đậm(hoặc các định dạng khác) c11 của tiêu đề. đến mã hđ khác tiêu đề không nằm ơ C11 nữa mà nằm C50 thi fkhi đó C11 vẫn In đậm. mình chỉ muốn là nó in đậm lúc nào hiện tiêu đề thôi. Với lại bạn làm dùm mình cột tổng cộng đơn hàng ở cuối dòng dùm mình với
Tôi gán dòng "Tổng tiền", còn việc chữ In đậm, in nghiêng đơn giản lắm, bạn chịu ghi Macro là được.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&, LR
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Name = "Times New Roman"
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Size = 14
            LR = Range("A5000").End(xlUp).Row
             Range("G" & LR + 1) = "T" & ChrW(7893) & "ng ti" & ChrW(7873) & "n:"
              Range("I" & LR + 1).Formula = Application.Evaluate("=SUM(I11:I" & LR & ")")
            Range("G" & LR + 2) = Sheets("thongtin").Range("B1")
            Range("G" & LR + 2).Font.Italic = True
            Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
            Range("G" & LR + 3).Font.Bold = True
            Range("G" & LR + 7) = Sheets("thongtin").Range("B4")
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
    Range("A1:I" & LR + 8).Select
    'Range("A1:I" & LR + 8).PrintOut
End Sub
 
Tôi gán dòng "Tổng tiền", còn việc chữ In đậm, in nghiêng đơn giản lắm, bạn chịu ghi Macro là được.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a, b(1 To 1000, 1 To 9), dk, i&, k&, LR
    If Target.Address = "$G$3" Then
        dk = [G3].Value
        a = Sheets("BanHang").Range("A4", Sheets(1).Range("A6000").End(3)).Resize(, 31)
        Application.ScreenUpdating = False
        For i = 1 To UBound(a)
            If a(i, 1) = dk And dk <> Empty Then
                k = k + 1
                b(k, 1) = k
                b(k, 2) = a(i, 1): b(k, 3) = a(i, 2)
                b(k, 4) = a(i, 8): b(k, 5) = a(i, 9)
                b(k, 6) = a(i, 5): b(k, 7) = a(i, 11)
                b(k, 8) = a(i, 13): b(k, 9) = a(i, 16)
            End If
        Next
        If k Then
            Range("A11:I1000").ClearContents
            Range("A11").Resize(k, 9) = b
            Range("A11:I65000").Borders.LineStyle = xlNone
            Range("A11", Range("A65000").End(3)).Resize(, 9).Borders.LineStyle = 1
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Name = "Times New Roman"
            Range("A11", Range("A65000").End(3)).Resize(, 9).Font.Size = 14
            LR = Range("A5000").End(xlUp).Row
             Range("G" & LR + 1) = "T" & ChrW(7893) & "ng ti" & ChrW(7873) & "n:"
              Range("I" & LR + 1).Formula = Application.Evaluate("=SUM(I11:I" & LR & ")")
            Range("G" & LR + 2) = Sheets("thongtin").Range("B1")
            Range("G" & LR + 2).Font.Italic = True
            Range("G" & LR + 3) = Sheets("thongtin").Range("B3")
            Range("G" & LR + 3).Font.Bold = True
            Range("G" & LR + 7) = Sheets("thongtin").Range("B4")
        Else
            Range("A11:I65000").Borders.LineStyle = xlNone
        End If
    End If
    Range("A1:I" & LR + 8).Select
    'Range("A1:I" & LR + 8).PrintOut
End Sub
Bạn siêu thật. Mình không rành về macro bạn có thể chỉ giúp mình luôn không. Ủa sao bạn không đưa cột tổng tiền vào khung luôn giống ở trên cho đẹp. Mình rất cảm kích bạn.
 
Lần chỉnh sửa cuối:
Bạn siêu thật. Mình không rành về macro bạn có thể chỉ giúp mình luôn không. Ủa sao bạn không đưa cột tổng tiền vào khung luôn giống ở trên cho đẹp. Mình rất cảm kích bạn.
Được voi sao không đòi tiên luôn hàm "Đọc số thành chữ".
 
Kakakak. Bác giúp mình như vậy là quí lắm rồi. Chân thành cảm ơn và chúc bác và gia đình dồi dào sức khỏe
Bạn cho mình hỏi. Mình có code đổi số ra chữ rồi bây giờ mình muốn đưa vào dòng cuối kế dòng tổng tiền như thế nào vậy bạn
 
Nghĩa là bạn vẫn chưa nhìn thấy dòng tiền bằng chữ phải không?
 
Bạn chụp hình lên xem nào. Máy tôi chưa phát hiện ra lỗi.
Mấy cái "đuôi" bên dưới định dạng đủ thứ thì nên để nó ở "phương trời nào đó" phía dưới, Format nó 1 lần do "chủ nhơn" làm, code chỉ làm nhiệm vụ lọc dữ liệu cho gọn.
Dòng nào không có dữ liệu thì ẩn nó đi.
Đừng chiều theo ý của "chủ nhơn" cho mệt.
Sửa code của bạn lại 1 chút.
 

File đính kèm

Mấy cái "đuôi" bên dưới định dạng đủ thứ thì nên để nó ở "phương trời nào đó" phía dưới, Format nó 1 lần do "chủ nhơn" làm, code chỉ làm nhiệm vụ lọc dữ liệu cho gọn.
Dòng nào không có dữ liệu thì ẩn nó đi.
Đừng chiều theo ý của "chủ nhơn" cho mệt.
Sửa code của bạn lại 1 chút.
Xin cảm ơn bác Ba tê
 
Mấy cái "đuôi" bên dưới định dạng đủ thứ thì nên để nó ở "phương trời nào đó" phía dưới, Format nó 1 lần do "chủ nhơn" làm, code chỉ làm nhiệm vụ lọc dữ liệu cho gọn.
Dòng nào không có dữ liệu thì ẩn nó đi.
Đừng chiều theo ý của "chủ nhơn" cho mệt.
Sửa code của bạn lại 1 chút.
Rất cảm ơn bạn Ba Tê đã giúp mình rút gọn lại code. Đa tạ sự giúp đỡ của 2 bạn
phulien1902,
Ba Tê
 

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

Back
Top Bottom