Tạo nút cập nhật dữ liệu từ 1 bảng excel đang đóng sang 1 bảng đang mở?

giophieudu87

Thành viên mới
Tham gia ngày
23 Tháng tám 2017
Bài viết
6
Thích
2
Điểm
165
Tuổi
20
#1
Xin chào các anh chị em trong diễn đàn, mình có 2 file excel, 1 file là file data( chứa dữ liệu xuất dữ liệu từ phần mềm kế toán) và 1 file mình tạo để in mẫu biểu( file này chứa các dữ liệu đã chọn lọc từ file data vào 1 sheet dulieu). mình muốn tạo 1 nút bấm mà khi mình xuất dữ liệu đè lên file data thì mình mở file IN Mau Bieu và bấm update thì phần dữ liệu cần lấy tự động cập nhật vào sheet DuLieu để mình sử dụng.
xin nhờ anh chị em giúp đỗ tạo nút và tạo mã code hộ mình với. mình mù mờ về VBA. Xin cảm ơn.
 

File đính kèm

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
410
Thích
178
Điểm
395
#2
Xin chào các anh chị em trong diễn đàn, mình có 2 file excel, 1 file là file data( chứa dữ liệu xuất dữ liệu từ phần mềm kế toán) và 1 file mình tạo để in mẫu biểu( file này chứa các dữ liệu đã chọn lọc từ file data vào 1 sheet dulieu). mình muốn tạo 1 nút bấm mà khi mình xuất dữ liệu đè lên file data thì mình mở file IN Mau Bieu và bấm update thì phần dữ liệu cần lấy tự động cập nhật vào sheet DuLieu để mình sử dụng.
xin nhờ anh chị em giúp đỗ tạo nút và tạo mã code hộ mình với. mình mù mờ về VBA. Xin cảm ơn.
Bên này: Link
 
Tham gia ngày
23 Tháng tám 2017
Bài viết
6
Thích
2
Điểm
165
Tuổi
20
#3
bạn ơi mình cứ copy phần code này:
'Code Events cho Sheet2'
'Chọn ô A1 để tự động On / Off'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([A1], Target) Is Nothing And Not IsArray(Selection) Then
If LCase([A1]) = "off" Then
[A1] = "on"
StartFind_1
Else
[A1] = "off"
End If
End If
End Sub

'Code Module'

Sub StartFind_1()
If Sheet2.[A1].value = "off" Then StopTimer: Exit Sub
'Code / Sub tìm file mới ở đây
StartFind_2
End Sub
Sub StartFind_2()
'Thay đổi' thời gian mỗi lần duyệt TimeValue("00:00:01")
Application.OnTime Now + TimeValue("00:00:01"), "StartFind_1"
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:01"), Procedure:="StartFind_1", Schedule:=False
End Sub

vào nút buttom rồi save lại là nó chạy phải ko bạn. với bạn có thể cho mình hỏi thăm thêm là bình thường ko cần code này là nó tự link sang bảng excel khác nhưng mình mang lại cơ quan mình nó lại ko thể tự link, chỉ máy nhà mới tự nhẩy dữ liệu đc là do đâu bạn, Office cơ quan mình là bản 2010
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
410
Thích
178
Điểm
395
#4
@giophieudu87
Sao bạn hỏi mà tôi không có khả năng trả lời vậy. Vì tôi không hiểu bạn hỏi gì.
Có cần cái nút button gì đâu
"Chọn ô A1 để tự động On / Off"
Nhưng mà phải biết Copy code vào đâu
Nếu muốn button thì:
PHP:
Private Sub RunTheFunc()
    If LCase(Sheets(2).[A1]) = "off" Then
      Sheets(2).[A1] = "on"
      StartFind_1
    Else
      Sheets(2).[A1] = "off"
    End If
End Sub
-> @Nguyễn Hoàng Oanh Thơ "Like dạo"
 
Lần chỉnh sửa cuối:
Tham gia ngày
5 Tháng mười một 2015
Bài viết
670
Thích
196
Điểm
220
#5
@giophieudu87
Sao bạn hỏi mà tôi không có khả năng trả lời vậy. Vì tôi không hiểu bạn hỏi gì.
Có cần cái nút button gì đâu
"Chọn ô A1 để tự động On / Off"
Nhưng mà phải biết Copy code vào đâu
Nếu muốn button thì:
PHP:
Private Sub RunTheFunc()
    If LCase(Sheets(2).[A1]) = "off" Then
      Sheets(2).[A1] = "on"
      StartFind_1
    Else
      Sheets(2).[A1] = "off"
    End If
End Sub
-> @Nguyễn Hoàng Oanh Thơ "Like dạo"
Hi @HeSanbi , OT khi xem đến bài nào nếu cảm thấy thích cứ thấy thích là Like thôi ạ,không thích không like đâu ạ :)
Nhưng dù gì đi nữa, với OT đó là hành động cảm ơn ạ.
 
Tham gia ngày
23 Tháng tám 2017
Bài viết
6
Thích
2
Điểm
165
Tuổi
20
#7
hix, vấn đề của em là: ở cái file DATA ấy có 1 số dữ liệu em cần lấy vào file IN MAU BIEU. bình thường khi em cop đè dữ liệu vào file DATA và không mở file ấy lên thì công thức ở file IN MAU BIEU nó vẫn tự cập nhật nhưng ở máy vi tính cá nhân của em thì nó nhẩy hoàn hảo như thế tuy nhiên khi em copy mang lên cơ quan làm thì ở cơ quan công thức ở file IN MAU BIEU nó lại không chịu nhẩy dữ liệu khi file DATA được ghi đè lên. em thì mù về VBA nên vẫn chưa làm đc như anh HeSanSi chỉ hix.
 
Tham gia ngày
23 Tháng tám 2017
Bài viết
6
Thích
2
Điểm
165
Tuổi
20
#9
đúng rồi đó anh. file data là chứa dữ liệu em xuất từ phần mềm kế toán ra, còn ở file IN MAU BIEU kia thì e có 1 bảng chỉ chọn lọc 1 số dữ liệu. công thức bình thường ở IN MAU BIEU sẽ là: ví dụ ở ô A3 công thức sẽ là: =[DATA.xls]sheet1C$2$ chẳng hạn, bình thường là công thức này tự nhảy kể cả copy file DATA sang folder khác nhưng mang lên cơ quan em thì nó chẳng chịu nhẩy. offcice cơ quan em là bản 2010, em ở nhà dùng bản 2013. em định tạo 1 nút bấm là update chẳng hạn để phòng trường hợp không tự nhẩy số liệu thì ấn nút đó nó tự lấy dữ liệu vào ấy ạ.
 
Tham gia ngày
5 Tháng mười một 2015
Bài viết
670
Thích
196
Điểm
220
#10
đúng rồi đó anh. file data là chứa dữ liệu em xuất từ phần mềm kế toán ra, còn ở file IN MAU BIEU kia thì e có 1 bảng chỉ chọn lọc 1 số dữ liệu. công thức bình thường ở IN MAU BIEU sẽ là: ví dụ ở ô A3 công thức sẽ là: =[DATA.xls]sheet1C$2$ chẳng hạn, bình thường là công thức này tự nhảy kể cả copy file DATA sang folder khác nhưng mang lên cơ quan em thì nó chẳng chịu nhẩy. offcice cơ quan em là bản 2010, em ở nhà dùng bản 2013. em định tạo 1 nút bấm là update chẳng hạn để phòng trường hợp không tự nhẩy số liệu thì ấn nút đó nó tự lấy dữ liệu vào ấy ạ.
@giophieudu87 bạn để chung 2 tập tin trên trong cùng thư mục,sau đó chạy đoạn code sau trong tập "IN MAU BIEU.xlsm" nhé:
Mã:
Option Explicit
Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim shtDuLieu As Worksheet, sPath As String
    Const wbLink As String = "[DATA.XLS]sheet1"
    Set shtDuLieu = ThisWorkbook.Worksheets("DU LIEU")
    sPath = ThisWorkbook.Path & "\"
    With shtDuLieu
        .Range("A3").Value = "='" & sPath & wbLink & "'!R2C15&"" ""&'" & sPath & wbLink & "'!R2C14"
        .Range("B3").Value = "='" & sPath & wbLink & "'!R2C25"
        .Range("C3").Value = "=MID('" & sPath & wbLink & "'!R2C27,7,2)&""/""&MID('" & _
                                       sPath & wbLink & "'!R2C27,5,2)&""/""&MID('" & _
                                       sPath & wbLink & "'!R2C27,1,4)"
        .Range("E3").Value = "='" & sPath & wbLink & "'!R2C16"
        .Range("F3").Value = "=TEXT('" & sPath & wbLink & "'!R2C29,""###,###"")"
        .Range("H3").Value = "='" & sPath & wbLink & "'!R2C33"
    End With
End Sub
 

File đính kèm

Top