Tổng Hợp Dữ Liệu Từ Các Sheet Lại (1 người xem)

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

Yumi_000

Thành viên chính thức
Tham gia
30/7/08
Bài viết
63
Được thích
9
Các Bác giúp em vấn đề này với ạ.
Em muốn tổng hợp số liệu từ sheet1 và sheet2 vào 1 sheet tổng hợp.các bác xem file đính kèm rồi giúp em với.em đang cần gấp để báo cáo danh sách tổng cho sếp.
Cảm ơn cả nhà nhiều nhé.
 
Lần chỉnh sửa cuối:
Các Bác giúp em vấn đề này với ạ.
Em muốn tổng hợp số liệu từ sheet1 và sheet2 vào 1 sheet tổng hợp.các bác xem file đính kèm rồi giúp em với.em đang cần gấp để báo cáo danh sách tổng cho sếp.
Cảm ơn cả nhà nhiều nhé.
Cách nhanh nhất là copy và paste. Nhớ có dòng tổng để kiểm tra!
 
Các Bác giúp em vấn đề này với ạ.
Em muốn tổng hợp số liệu từ sheet1 và sheet2 vào 1 sheet tổng hợp.các bác xem file đính kèm rồi giúp em với.em đang cần gấp để báo cáo danh sách tổng cho sếp.
Cảm ơn cả nhà nhiều nhé.

bạn xem file đính kèm nha :
 

File đính kèm

Cảm ơn hoangdanh282vn.nếu là 12 sheet thì có tổng hợp như vậy được không anh?
anh chỉ giúp em nhé.
Chỉ cần cở 3 sheet thôi là công thức đủ "lết bánh" rồi... 12 sheet e rằng phải dùng đến VBA... nếu bạn đồng ý thì chúng ta sẽ tiếp tục với giãi pháp VBA

VBA thì em không biết dùng.bác thử tạo giúp em 1 file mẫu để em ngâm cứu thế nào chứ bây giờ em chưa biết nên làm thế nào cả.
Ví dụ cho bạn tham khảo đây!
Giã sử tôi có 1 file gồm 7 sheet... Từ sheet 1 đến sheet 6 là phần nhập liệu... Sheet Tonghop là nơi ta gôm tất cả dử liệu ở các sheet về
Yêu cầu và tính năng của file này:
- Tên các sheet là gì cũng đựoc, duy nhất Tonghop không được đổi tên (nếu thay đổi bạn phải sửa lại code)
- Bạn có thể thêm bao nhiêu sheet vào file này tùy ý, đặt sheet nằm đâu cũng đựoc
- Bạn phải bảo đãm cấu trúc dử liệu ở các sheet là giống nhau hoàn toàn (nếu có khác thì phải sửa lại code)
- Bạn không cần làm bất cứ thao tác gì, cứ việc nhập liệu, khi chuyển sang sheet Tonghop là mọi thứ sẽ đựoc cập nhật chính xác (thử nghiệm bằng cách nhập gì đó thêm vào các sheet rồi sang Tonghop kiểm chứng)
Vân vân và vân vân...
Thử xem có gì trục trặc không?
Cách làm ở file này gần giống với yêu cầu tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=13136
nhưng file của bạn có phần dể hơn 1 chút (hãy tham khảo thêm)
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
ndu96081631
user_offline.gif


Bạn à, tôi có 1 vấn đề này phiền mọi người giúp đỡ: Xây dựng 1 macro cho phép copy tất cả sheet trong các file excel trong 1 thư mục vào 1 file tổng hợp. Ví dụ: Thư mục VDu có 5 file excel; trong mỗi file excel này có 5 sheet-> 5 file sẽ có 25 sheet. Vậy công việc của macro này là copy 25 sheet do vao trong file tong hop(các sheet trong file nầy có tên là các số thứ tự 1,2,3,..,500 hoặc hơn.Mong các bạn giúp mình.
Thanks
 
Chỉnh sửa lần cuối bởi điều hành viên:
VBA thì em không biết dùng.bác thử tạo giúp em 1 file mẫu để em ngâm cứu thế nào chứ bây giờ em chưa biết nên làm thế nào cả.
Tôi cải tiến code lại 1 chút (ngắn gọn hơn)
PHP:
Option Explicit
Private Sub Worksheet_Activate()
  Dim Sh As Worksheet
  Dim Src As Range
  Dim Sc As Long, Sd As Long, Er As Long
  Application.ScreenUpdating = False
  Range("A2:C10000").ClearContents
  For Each Sh In Worksheets
    If Sh.Name <> "Tonghop" Then
      With Sh.[A1].SpecialCells(2, 1)
        Sc = Sh.[A1].CurrentRegion.Columns.Count - 1
        Er = [B65536].End(xlUp).Row + 1
        Set Src = Union(.Offset(, 0), .Offset(, 1)).Offset(, 1).Resize(, Sc)
        Cells(Er, 2).Resize(.Rows.Count, Sc).Value = Src.Value
      End With
    End If
  Next Sh
  With [A1].SpecialCells(4)
    Sd = .Rows.Count
    .FormulaArray = "=Row(1:" & Sd & ")"
    .Value = .Value
  End With
  Application.ScreenUpdating = True
End Sub
 

File đính kèm

Tôi cải tiến code lại 1 chút (ngắn gọn hơn)
PHP:
Option Explicit
Private Sub Worksheet_Activate()
  Dim Sh As Worksheet
  Dim Src As Range
  Dim Sc As Long, Sd As Long, Er As Long
  Application.ScreenUpdating = False
  Range("A2:C10000").ClearContents
  For Each Sh In Worksheets
    If Sh.Name <> "Tonghop" Then
      With Sh.[A1].SpecialCells(2, 1)
        Sc = Sh.[A1].CurrentRegion.Columns.Count - 1
        Er = [B65536].End(xlUp).Row + 1
        Set Src = Union(.Offset(, 0), .Offset(, 1)).Offset(, 1).Resize(, Sc)
        Cells(Er, 2).Resize(.Rows.Count, Sc).Value = Src.Value
      End With
    End If
  Next Sh
  With [A1].SpecialCells(4)
    Sd = .Rows.Count
    .FormulaArray = "=Row(1:" & Sd & ")"
    .Value = .Value
  End With
  Application.ScreenUpdating = True
End Sub

Bác có thương thì cho trót, bác vui lòng giải thích giúp em ý nghĩa của từng dòng VBA đó đc không ah, khai báo thì em hiểu, specialcell(2,1), currentRegion, Union...... có nghĩa là sai hở bác
Xin chân thành cám ơn bác
 
Bác có thương thì cho trót, bác vui lòng giải thích giúp em ý nghĩa của từng dòng VBA đó đc không ah, khai báo thì em hiểu, specialcell(2,1), currentRegion, Union...... có nghĩa là sai hở bác
Xin chân thành cám ơn bác
- Range("gì đó").SpecialCells(2,1) <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + G\Special... chọn mục Contents và check vào "Number" (bỏ các dấu check "Text", "Logic" và "Error" ) ---> Trong hộp Goto này, nếu đếm từ trên xuống thì Contents nằm vị trí thứ 2
- Range("gì đó").CurrentRegion <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + Shift + *
- Union(Range(1),Range(2)...) <==> GầntTương đương với việc bạn chọn vùng 1, bấm giữ Ctrl rồi chọn vùng 2, giữ Ctrl, lại chọn tiếp vùng khác ---> Kết hợp các vùng không liên tục lại với nhau để thao tác 1 lần
Toàn bộ đều có thể Record macro để xem (trừ Union ra)
--------------------
Nhân tiện rút gọn code này thêm bước nữa (chỉ xài 1 biến duy nhất)
PHP:
Private Sub Worksheet_Activate()
  Dim Sh As Worksheet
  Application.ScreenUpdating = False
  Range("A2:C10000").ClearContents
  For Each Sh In Worksheets
    If Sh.Name <> "Tonghop" Then
      With Sh.Range("A1").CurrentRegion.Offset(1, 1).SpecialCells(2)
        Range("B65536").End(xlUp)(2).Resize(.Rows.Count, .Columns.Count).Value = .Value
      End With
    End If
  Next Sh
  Range("A1").SpecialCells(4).Value = Evaluate("=Row(R1:R1000)")
  Application.ScreenUpdating = True
End Sub
Code này xem ra dể hiểu hơn rất nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
- Range("gì đó").SpecialCells(2,1) <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + G\Special... chọn mục Contents và check vào "Number" (bỏ các dấu check "Text", "Logic" và "Error" ) ---> Trong hộp Goto này, nếu đếm từ trên xuống thì Contents nằm vị trí thứ 2
- Range("gì đó").CurrentRegion <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + Shift + *
- Union(Range(1),Range(2)...) <==> GầntTương đương với việc bạn chọn vùng 1, bấm giữ Ctrl rồi chọn vùng 2, giữ Ctrl, lại chọn tiếp vùng khác ---> Kết hợp các vùng không liên tục lại với nhau để thao tác 1 lần
Toàn bộ đều có thể Record macro để xem (trừ Union ra)
--------------------
Nhân tiện rút gọn code này thêm bước nữa (chỉ xài 1 biến duy nhất)
PHP:
Private Sub Worksheet_Activate()
  Dim Sh As Worksheet
  Application.ScreenUpdating = False
  Range("A2:C10000").ClearContents
  For Each Sh In Worksheets
    If Sh.Name <> "Tonghop" Then
      With Sh.Range("A1").CurrentRegion.Offset(1, 1).SpecialCells(2)
        Range("B65536").End(xlUp)(2).Resize(.Rows.Count, .Columns.Count).Value = .Value
      End With
    End If
  Next Sh
  Range("A1").SpecialCells(4).Value = Evaluate("=Row(R1:R1000)")
  Application.ScreenUpdating = True
End Sub
Code này xem ra dể hiểu hơn rất nhiều
thanks bác đã giúp em cách làm nhưng em cái em hỏi chính là ý nghĩa và công dụng của những cái đó là gì đó bác. Bác giúp e hiểu luôn nhé!!!
 
thanks bác đã giúp em cách làm nhưng em cái em hỏi chính là ý nghĩa và công dụng của những cái đó là gì đó bác. Bác giúp e hiểu luôn nhé!!!
Ẹc... Ẹc... Bạn hỏi nhiêu tôi trả lời bấy nhiêu rồi đấy thôi... Khúc trên ấy!
Còn gì nữa nào?
(tôi kém vụ giãi thích này lắm ---> E rằng bạn mua sách hoặc down tài liệu của sư phụ Sa về đọc còn sướng hơn)
 
Anh ndu96081631 xem dum cong thức của em cái

anh coi dum em. em không biết gửi bài ở đâu cả, nên đành gửi ở đây.
 

File đính kèm

ndu96081631
user_offline.gif


Bạn à, tôi có 1 vấn đề này phiền mọi người giúp đỡ: Xây dựng 1 macro cho phép copy tất cả sheet trong các file excel trong 1 thư mục vào 1 file tổng hợp. Ví dụ: Thư mục VDu có 5 file excel; trong mỗi file excel này có 5 sheet-> 5 file sẽ có 25 sheet. Vậy công việc của macro này là copy 25 sheet do vao trong file tong hop(các sheet trong file nầy có tên là các số thứ tự 1,2,3,..,500 hoặc hơn.Mong các bạn giúp mình.
Thanks

thấy bạn hỏi trên điễn đàn đã lâu nhưng không thấy ai trả lời. Nay tôi cũng rất cần làm công việc như bạn không biết bạn đã làm được chưa giúp tôi với.
không biết vấn đề này quá khó hay sao mà không có một ai trong diễn đàn này giúp.
 
- Range("gì đó").SpecialCells(2,1) <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + G\Special... chọn mục Contents và check vào "Number" (bỏ các dấu check "Text", "Logic" và "Error" ) ---> Trong hộp Goto này, nếu đếm từ trên xuống thì Contents nằm vị trí thứ 2
- Range("gì đó").CurrentRegion <==> Bạn quét chọn Range("gì đó") rồi bấm Ctrl + Shift + *
- Union(Range(1),Range(2)...) <==> GầntTương đương với việc bạn chọn vùng 1, bấm giữ Ctrl rồi chọn vùng 2, giữ Ctrl, lại chọn tiếp vùng khác ---> Kết hợp các vùng không liên tục lại với nhau để thao tác 1 lần
Toàn bộ đều có thể Record macro để xem (trừ Union ra)
--------------------
Nhân tiện rút gọn code này thêm bước nữa (chỉ xài 1 biến duy nhất)
PHP:
Private Sub Worksheet_Activate()
  Dim Sh As Worksheet
  Application.ScreenUpdating = False
  Range("A2:C10000").ClearContents
  For Each Sh In Worksheets
    If Sh.Name <> "Tonghop" Then
      With Sh.Range("A1").CurrentRegion.Offset(1, 1).SpecialCells(2)
        Range("B65536").End(xlUp)(2).Resize(.Rows.Count, .Columns.Count).Value = .Value
      End With
    End If
  Next Sh
  Range("A1").SpecialCells(4).Value = Evaluate("=Row(R1:R1000)")
  Application.ScreenUpdating = True
End Sub
Code này xem ra dể hiểu hơn rất nhiều


minh k biết ji về visua nen ban giúp mình với.. như file ni thì minh gộp làm sao.. với lại muốn gộp tăng thêm nữa thì chỉnh sửa chổ nào.. đây chỉ là file thu gọn thôi
 

File đính kèm

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

Back
Top Bottom