Trang 1/2 1 2 cuốicuối
Hiển thị kết quả tìm kiếm từ 1 đến 10 trên tổng số: 15
  1. #1

    Code để tự động cập nhật dữ liệu từ 1 file khác

    Xin diễn đàn chỉ giúp
    - Mình có 2 file :
    + File 1 (Data) chứa dữ liệu được cập nhật thường xuyên
    + File 2 (Tonghop) được trích dữ liệu từ file 1
    - Mình vô hiệu bảng thông báo Update, Don't Update và Hepl bằng cách vào Edit/Links/Startup Prompt/chọn don't display the alert and don't update automatic links.
    - Nhưng khi cập nhập dữ liệu vào file 1 thì khi mở file 2 lên không xuất hiện dữ liệu được cập nhập vào và phải vào lại Edit/Links/ chọn update values thì dữ liệu mới được cập nhập vào.
    - Mình muốn file 2 này tự động nhận dữ liệu mà không cân thao tác rườm rà như vậy. Mong được giúp đỡ. Chọn tùy chọn thế nào hay có code tự chạy trong workbook hoặc cho 1 nút lệnh
    Xin cảm ơn!

  2. #2
    Tham gia ngày
    09 2009
    Nơi Cư Ngụ
    Ayun Pa - Gia Lai
    Bài gởi
    4,545
    Cảm ơn
    10,140
    Được cảm ơn 8,086 lần trong 3,879 bài viết
    Trích Nguyên văn bởi khoahoc78 View Post
    Xin diễn đàn chỉ giúp
    - Mình có 2 file :
    + File 1 (Data) chứa dữ liệu được cập nhật thường xuyên
    + File 2 (Tonghop) được trích dữ liệu từ file 1
    - Mình vô hiệu bảng thông báo Update, Don't Update và Hepl bằng cách vào Edit/Links/Startup Prompt/chọn don't display the alert and don't update automatic links.
    - Nhưng khi cập nhập dữ liệu vào file 1 thì khi mở file 2 lên không xuất hiện dữ liệu được cập nhập vào và phải vào lại Edit/Links/ chọn update values thì dữ liệu mới được cập nhập vào.
    - Mình muốn file 2 này tự động nhận dữ liệu mà không cân thao tác rườm rà như vậy. Mong được giúp đỡ. Chọn tùy chọn thế nào hay có code tự chạy trong workbook hoặc cho 1 nút lệnh
    Xin cảm ơn!
    Nếu đúng như yêu cầu của bạn thì thử sử dụng code này cho file Tonghop nhé:
    PHP Code:
    Private Sub Workbook_Open()
        
    Application.DisplayAlerts False
        Workbooks
    .Open ThisWorkbook.Path "\Data.xls"
        
    ActiveWorkbook.ActiveSheet.Cells.Copy ThisWorkbook.ActiveSheet.[A1]
        
    ActiveWorkbook.Close False
        Application
    .DisplayAlerts True
    End Sub 
    Bạn tùy biến cho phù hợp với thực tế của bạn. VD: Nguồn ActiveSheet.Cells có thể là Sheets("Sheet1").[B2:D10], đích ActiveSheet.[A1] có thể là Sheets("Sheet1").[B2]
    Tập tin đính kèm Tập tin đính kèm
    Hãy biết nhìn lên để thấy mình còn kém cỏi
    Hãy biết nhìn xuống để thấy mình có thể giúp nhiều người.
    Evaluate | SpeedOn | ExcelDiet | Scripting.Dictionary | Array

  3. Có 2 thành viên cảm ơn nghiaphuc về bài viết này:


  4. #3
    Cảm ơn bạn nếu mình có nhiều file cùng cập nhập đến file tổng hợp thì sao. Các file con này cùng nằm trong 1 thư mục, còn file tổng hợp nằm ngoài thư mục này. Dữ liệu thì được cập nhập theo công thức. chỉ dẫn giùm nhé

  5. #4
    Tham gia ngày
    09 2009
    Nơi Cư Ngụ
    Ayun Pa - Gia Lai
    Bài gởi
    4,545
    Cảm ơn
    10,140
    Được cảm ơn 8,086 lần trong 3,879 bài viết
    Trích Nguyên văn bởi khoahoc78 View Post
    Cảm ơn bạn nếu mình có nhiều file cùng cập nhập đến file tổng hợp thì sao. Các file con này cùng nằm trong 1 thư mục, còn file tổng hợp nằm ngoài thư mục này. Dữ liệu thì được cập nhập theo công thức. chỉ dẫn giùm nhé
    Có phải bạn đang nói đến bài toán tổng hợp theo nhóm và theo quý mà bạn đã có lần hỏi trên GPE?
    Nếu đúng thì chúng ta có thể xử lý như sau: Đây là code cho các file TH1.xls, TH2.xls, TH3.xls, TH4.xls:
    PHP Code:
    Private Sub Workbook_Open()
        
    Dim i As ByteAs Byte
        Application
    .ScreenUpdating False
        Application
    .DisplayAlerts False
        
    For 1 To 4
                Sheets
    (j).[C3:E12].ClearContents
        Next j
        
    For 1 To 8
            Workbooks
    .Open ThisWorkbook.Path "\Nguoi " ".xls"
            
    For 1 To 4
                ActiveWorkbook
    .Sheets(j).[C3:E12].Copy
                ThisWorkbook
    .Sheets(j).[C3:E12].PasteSpecial Paste:=xlPasteValuesOperation:=xlAdd
            Next j
            ActiveWorkbook
    .Close False
        Next i
        Application
    .DisplayAlerts True
        Application
    .ScreenUpdating True
    End Sub 
    Mình viết code này cho trường hợp file TH1.xls nằm trong thư mục Nhom1, nếu file này nằm ngoài thì bạn thay câu lệnh
    PHP Code:
    Workbooks.Open ThisWorkbook.Path "\Nguoi " ".xls" 
    thành câu lệnh
    PHP Code:
    Workbooks.Open ThisWorkbook.Path "Nhom1\Nguoi " ".xls" 
    Lưu ý: Với cách xử lý này, cấu trúc các file con phải hoàn toàn giống với file tổng hợp, kể cả thứ tự sheet và thứ tự tên hàng trong mỗi sheet.
    Tập tin đính kèm Tập tin đính kèm
    Hãy biết nhìn lên để thấy mình còn kém cỏi
    Hãy biết nhìn xuống để thấy mình có thể giúp nhiều người.
    Evaluate | SpeedOn | ExcelDiet | Scripting.Dictionary | Array

  6. #5
    Cảm ơn bạn đã giúp mình nhưng ý mình không phải như thế. Mình muốn ở đây là Vô hiệu hóa cái bảng Update, UnUpdate, Hepl bằng cách vào menu Edit/Links/Startup Prompt/chọn don't display the alert and don't update automatic links. Khi đó cái bảng đó mất đi. Nhưng khi cập nhập xong dữ liệu thì ở file tổng hợp nó cứ trơ ra. Khi nào vào Edit/Links/ chọn Update Values thì nó mới nhận. Mình muốn có code tự động cho file này. Khỏi phải làm như trên. Chứ dữ liệu đã có công thức chuyển qua rồi. Bạn xem trong file tổng hợp thì rõ. Xin cảm ơn bạn nhiều. Chúc khỏe

  7. #6
    Tham gia ngày
    09 2009
    Nơi Cư Ngụ
    Ayun Pa - Gia Lai
    Bài gởi
    4,545
    Cảm ơn
    10,140
    Được cảm ơn 8,086 lần trong 3,879 bài viết
    Trích Nguyên văn bởi khoahoc78 View Post
    Cảm ơn bạn đã giúp mình nhưng ý mình không phải như thế. Mình muốn ở đây là Vô hiệu hóa cái bảng Update, UnUpdate, Hepl bằng cách vào menu Edit/Links/Startup Prompt/chọn don't display the alert and don't update automatic links. Khi đó cái bảng đó mất đi. Nhưng khi cập nhập xong dữ liệu thì ở file tổng hợp nó cứ trơ ra. Khi nào vào Edit/Links/ chọn Update Values thì nó mới nhận. Mình muốn có code tự động cho file này. Khỏi phải làm như trên. Chứ dữ liệu đã có công thức chuyển qua rồi. Bạn xem trong file tổng hợp thì rõ. Xin cảm ơn bạn nhiều. Chúc khỏe
    Mình hiểu ý bạn. Nhưng bạn nhìn những chữ màu đỏ ở trên sẽ thấy: Nếu bạn chọn như vậy thì dữ liệu đương nhiên sẽ không tự động cập nhật. Chính vì vậy, mình mới đề xuất cách thức mỗi lần mở file tổng hợp, dữ liệu được cập nhật (chỉ là giá trị, không chứa công thức). Thực hiện như vậy có 2 ưu điểm:
    - Trong file tổng hợp chỉ chứa giá trị mà không có công thức, do đó kích thước sẽ giảm đi.
    - Trong file tổng hợp không có công thức liên kết đến các file khác nên sẽ không xuất hiện hộp thoại hỏi ta có cập nhật dữ liệu hay không --> Đỡ khó chịu mỗi khi mở file.
    Mình cũng đã thử sử dụng câu lệnh
    PHP Code:
    Application.DisplayAlert=False 
    trong Sub Workbook_Open, và mình cũng đã thử sử dụng phương thức SendKeys trong Sub này để tự động hóa việc nhấn nút Update hay Don't Update nhưng chẳng có tác dụng gì cả, hộp thoại vẫn hiện ra như thường, hình như Excel yêu cầu xác nhận việc này trước khi cho phép chạy Sub Workbook_Open.
    Với cách xử lý của mình, mình cũng nhận thấy 1 nhược điểm, đó là khi số lượng hoặc kích thước các file con lớn thì tốc độ xử lý sẽ bị chậm lại. Nghe nói sử dụng lập trình ADO có thể xử lý được vấn đề lấy dữ liệu từ file đang đóng mà không phải mở file này ra, nhưng mà món này thì mình hoàn toàn mù tịt...
    Hãy biết nhìn lên để thấy mình còn kém cỏi
    Hãy biết nhìn xuống để thấy mình có thể giúp nhiều người.
    Evaluate | SpeedOn | ExcelDiet | Scripting.Dictionary | Array

  8. #7
    Cảm ơn bạn đã trả lời vướng mắc này của mình. Thật tình thì các file của mình kích cở cũng quá lớn vì mình chưa thạo về VBA, nên toàn công thức. Mỗi file có đến 8M, có khoảng 30 file như thế nên khi mở cái biển báo đó thấy chán quá. Chúc bạn khỏe.

  9. #8
    Tham gia ngày
    09 2009
    Nơi Cư Ngụ
    Ayun Pa - Gia Lai
    Bài gởi
    4,545
    Cảm ơn
    10,140
    Được cảm ơn 8,086 lần trong 3,879 bài viết
    Ơ rê ka... Mình mới tìm ra một cách cực kỳ đơn giản và phù hợp với trường hợp của bạn:
    - Đầu tiên, bạn cứ chọn Don't display the alert and don't update automatic links như bạn đã chọn để không hiện ra hộp thoại "quái quỷ" kia nữa.
    - Sau đó, trong file TH1, bạn sử dụng code sau:
    PHP Code:
    Private Sub Workbook_Open()
        
    Application.SendKeys "%Ek%U%l"
    End Sub 
    Mục đích của sub này là mỗi khi mở file TH1 ra sẽ chạy lệnh Edit\Links\Update Values, sau đó đóng hộp thoại này lại.
    Bạn thử xem trong file đính kèm nhé.
    Tập tin đính kèm Tập tin đính kèm
    Hãy biết nhìn lên để thấy mình còn kém cỏi
    Hãy biết nhìn xuống để thấy mình có thể giúp nhiều người.
    Evaluate | SpeedOn | ExcelDiet | Scripting.Dictionary | Array

  10. Có 2 thành viên cảm ơn nghiaphuc về bài viết này:


  11. #9
    bạnnghiaphuc

    ơi bạn có thẻ cho minh xin code cập nhật như trên không với điều kiện là file tổng hợp không cần quan tâm tới file thành phần với lại file tong hơp có nút lệnh tổng hợp được không?
    Cảm ơn bạn nhiều

  12. #10
    Tham gia ngày
    09 2009
    Nơi Cư Ngụ
    Ayun Pa - Gia Lai
    Bài gởi
    4,545
    Cảm ơn
    10,140
    Được cảm ơn 8,086 lần trong 3,879 bài viết
    Trích Nguyên văn bởi hieubk2010 View Post
    bạnnghiaphuc

    ơi bạn có thẻ cho minh xin code cập nhật như trên không với điều kiện là file tổng hợp không cần quan tâm tới file thành phần với lại file tong hơp có nút lệnh tổng hợp được không?
    Cảm ơn bạn nhiều
    Bạn phải đưa một vài file mẫu (file con, file tổng hợp) lên thì mới biết cấu trúc của file này ra sao, cần tổng hợp những gì từ file con?...
    Nói chung là bạn hãy đưa file lên và nêu rõ yêu cầu trong đó, mình tin là sẽ có câu trả lời cho bạn.
    Thân!
    Hãy biết nhìn lên để thấy mình còn kém cỏi
    Hãy biết nhìn xuống để thấy mình có thể giúp nhiều người.
    Evaluate | SpeedOn | ExcelDiet | Scripting.Dictionary | Array

Trang 1/2 1 2 cuốicuối

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Đề tài tương tự

  1. Cách xóa đoạn code cũ, thay thế bằng 1 đoạn code mới mà không mở file.
    Viết bởi Hai Lúa Miền Tây trong chuyên mục Lập Trình với Excel
    Trả lời: 32
    Bài mới gởi: 24-08-13, 10:10 AM
  2. Nhờ viết Code tự động Update dữ liệu từ 1 sheet của một file khác đến file nguồn
    Viết bởi khoahoc78 trong chuyên mục Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
    Trả lời: 1
    Bài mới gởi: 17-10-10, 03:25 PM
  3. Sử dụng hàm tự tạo của .xla file trong VBA code của một file khác
    Viết bởi jubinell trong chuyên mục Các hàm tự tạo cho worksheet
    Trả lời: 8
    Bài mới gởi: 03-12-09, 11:24 AM
  4. Xin CODE ghép dữ liệu từ nhiều file vào 1 file và Lọc theo địa chỉ
    Viết bởi boyxin trong chuyên mục Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
    Trả lời: 11
    Bài mới gởi: 20-09-08, 10:22 AM
  5. code để open excel file trong VBA Powerpoint file
    Viết bởi huongduongxanh2007 trong chuyên mục Hỏi đáp về VBA - Macro
    Trả lời: 12
    Bài mới gởi: 20-08-08, 11:12 PM

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]