Tự động Update dữ liệu.

Liên hệ QC

chipxinh

Thành viên mới
Tham gia
17/12/07
Bài viết
23
Được thích
4
Xin chào GPE!

Em có 1 bài toán nhỏ muốn hỏi các anh chị!
Em muốn tạo 1 macro để các dữ liệu tại Sheet Data tự động cập nhật sang Sheet Baocao. Và Tại Sheet bao cao sẽ tự xuống dòng khi thấy dữ liệu nhiều, cách dòng "Xin chào giải pháp Excel" 2 dòng.
Em xin gửi file kèm theo.

Chân thành cám ơn mọi người. Mong nhận được hồi âm sớm ạ.
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu cấu trúc các sheet không thay đổi thì bạn có thể làm đơn giản thế này:
 

File đính kèm

Upvote 0
Hix.. không được ruì. Lam_Ao thủ xóa 1 ít data rùi Update thử sẽ thấy ko ổn à. Thân!
Phải sửa lại thế ni, Lam_Ao ơi!
PHP:
Option Explicit
Sub Update()
 Dim i As Long, last_row As Long

 Sheets("Bao Cao").Select:       last_row = [A65432].End(xlUp).Row '<<='
 Range("A1:Z" & last_row).ClearContents '<<='
 Worksheets("data").Select
 last_row = Range("A65536").End(xlUp).Row
1 Range(Cells(1, 1), Cells(last_row, 4)).Copy Destination:=Sheets("Bao Cao").Cells(1, 1)

2 Sheets("Bao Cao").Select:       last_row = [A65432].End(xlUp).Row + 2

 Range("A" & last_row) = "Xin chao giai phap excel!"
 Range("A" & last_row).Font.Bold = True
End Sub
Với lại không cần Button. Miển là có dữ liệu là tự Update và ngược lại. Câu trúc có thể thay đổi
Chưa rõ í tác giả. Phải nhập vài dòng mới nhấn tổ hợp phím cho macro trên chạy chứ,(?)
Hay bạn muốn xong dòng nào thì Copy dòng đó sang sheet bên kia?
 
Upvote 0
Hix.. không được ruì. Lam_Ao thủ xóa 1 ít data rùi Update thử sẽ thấy ko ổn à.
Thân!
Code này chỉ viết khi miền dữ liệu bên sheet data liên tục, cấu trúc khác đương nhiên sẽ khác. Mình viết theo ý chủ quan khi nhìn thấy bạn sắp xếp dữ liệu như vậy.
Với lại không cần Button. Miển là có dữ liệu là tự Update và ngược lại.
Việc tự update không phải là giải pháp hay, bạn đang chỉnh sửa dữ liệu, nó cứ update liên tục à? Nên có một thao tác update, xác nhận việc cập nhật dữ liệu.
Câu trúc có thể thay đổi.
Vậy bạn phải xây dựng một cấu trúc chuẩn, hoặc ít ra cho mình biết là nó sẽ thay đổi như thế nào?
 
Upvote 0
Chưa rõ í tác giả. Phải nhập vài dòng mới nhấn tổ hợp phím cho macro trên chạy chứ,(?)
Hay bạn muốn xong dòng nào thì Copy dòng đó sang sheet bên kia?

Em muốn xong dòng nào thì Update dòng đó.
Vì dữ liệu của em không nhiều và cũng it chỉnh sữa, nên em không cần button.
Em có thể làm công thức, nhưng không biết làm cho tự động lên, xuống dòng.

Cám ơn mọi người đã giúp đở
 
Upvote 0
Thử với cái con ni xem sao!

PHP:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 'Tai Sheets("DaTa")'
 If Not Intersect(Target, Range("B2:B99")) Is Nothing Then
    Sheets("Bao cao").Range("A1:D" & (9 + Target.Row)).ClearContents
    Range("A1:C" & Target.Row).Copy Destination:=Sheets("Bao Cao").Range("A1")
    Sheets("Bao cao").Range("A" & Sheets("Bao cao").Range("A65432").End(xlUp).Row _
        + 2) = "Xin chào Gi?i Pháp Excel"
    Sheets("Bao cao").Range("A" & Sheets("Bao cao").Range("A65432").End(xlUp).Row _
        ).Font.Bold = True
 End If
End Sub
 
Upvote 0
Copy như thế nào vậy?

Bac Sa ơi! em copy không chạy. Anh co the gui file cho em được ko? Cám ơn anh nhiều.

Tô toàn bộ đoạn code của mình; & bấm {CTRL}+C
Bạn phải chuột vô SheetName có tên là "Data", & dùng chuột chọn dòng cuối;
Bạn sẽ được đưa đến CS mới đối với bạn không chừng;
Bạn bấm tổ hợp phím để dán đoạn code của mình vô CS này; Lưu lại & nhập vô dòng cuối 1 record nữa xem sao!
Còn chưa được thì nhắn tin, mình sẽ gởi file vô bài này khi nhận tin nhắn của bạn!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Sorry anh! Em em làm vẩn không đuợc.
Anh vui long gữi file cho em nhé. Cám ơn sự giúp đở cùa anh và mọi nguời.
Đúng là đọc hướng dẫn của bác SA_DQ em cũng không hiểu lắm, để em mạn phép chép code của bác vào file gửi cho bạn ấy vậy.
 

File đính kèm

Upvote 0
Thay đổi vi trí

Cám ơn mọi nguời rất nhiều.
Nhưng nếu em muốn thay đổi vị trí của data và bao cao thì phải làm sao? Em đã thử sửa Code nhưng nó vẩn như củ. Bác SA sửa lại giúp em với.

Chúc mọi nguời ngủ ngon.
Thân!
 
Lần chỉnh sửa cuối:
Upvote 0
Nhưng nếu em muốn thay đổi vị trí của data và bao cao thì phải làm sao? Em đã thử sửa Code nhưng nó vẩn như củ. Bác SA sửa lại giúp em với.
Chúc mọi nguời ngủ ngon. Thân!
Chép cái ni thay cho cái của mi sáng tác & chú í 1 số điều sau đây:
Khi nhập gì đó vô 1 ô bất kỳ nào tại sheets("Data") & {ENTER}, sẽ xuất hiện hộp thoại Đề nghị chọn địa chỉ chép đến;
Khi chưa muốn chép & sẽ nhập tiếp thì hãy bấm vô nút "CANCEL"
Khi muốn nó chép sang "Bao cao" thì dùng chuột bấm vô tên sheet 'Bao cao' ( ở góc phải dưới cùng) sau đó tiếp theo ta bấm vô 1 ô nào đó sẽ chứa giá trị trên trái nhất những gì trên sheets("Data")

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 'Tai Sheets("DaTa")'
 On Error GoTo LoiSub
 Dim Rng As Range, DesRng As Range
 Dim DesAdr As String
 Dim SoDong As Long, SoCot As Byte
 
 Set Rng = Target.CurrentRegion
 SoDong = Rng.Rows.Count + 9:       SoCot = Rng.Columns.Count + 9
 Set DesRng = Application.InputBox("CHO BIET DIA CHI CHEP DEN:", Type:=8)
1 DesRng.Resize(SoDong, SoCot).ClearContents

2 Rng.Copy Destination:=DesRng
    MsgBox DesRng.Address
3  DesRng.Offset(SoDong - 7) = "Xin chào Gi?i Pháp Excel"
4  DesRng.Offset(SoDong - 7).Font.Bold = True
 
Err_Sub:                                            Exit Sub
LoiSub:
    Select Case Err
    Case 424:                            Exit Sub
    Case Else
        MsgBox Error, , Erl & " " & Err:                        Resume Err_Sub
    End Select
End Sub
 
Upvote 0
Chào các bác, em làm như thế này Đúng với yêu cầu của CHIP XINH luôn.
Nếu thay đổi data là BAOCAO tự thay đổi theo....
Chúc mọi người vui vẻ...
 

File đính kèm

Upvote 0
Em làm như thế này Đúng với yêu cầu của CHIP XINH luôn.
Nếu thay đổi data là BAOCAO tự thay đổi theo..
Bạn chipXinh muốn thay đổi vị trí cả 2 sheets nhập liệu & sheet đích chép đến mà bạn!
Code của bạn chỉ chạy khi nhập vô cột 'B' thôi; Mà mình thử vẫn thấy dòng cuối chưa chuẩn vị trí lắm hay sao í!
Bạn thử code cuối của mình chưa; bất kỳ dữ liệu nằm ở đâu trên sheets("Data") & đích chép đến là bất kỳ ô nào miễn vùng xung quanh nó còn đủ chổ để chứa hết dữ liệu đã copy & đang nằm trong ngăn nhớ!
Tất nhiên phải gặp phiền phức nhỏ là mỗi lần {ENTER} bên sheets("Data") lại bị hỏi thăm sức khỏe!

Chúc cháu con Vua Hùng Vui khỏe!
 
Upvote 0
Cám ơn anh rất nhiều!
Nhưng em không muốn bị hỏi thăm sức khỏe đâu, em muốn làm như #7 ấy.
Tóm lại là vi trí như file #9 nhưng cách làm thì nhu file của anh SA #7. Và sẽ không bao giờ thay đổi vi trí nữa

Chờ tin của anh!
Thân!
 
Lần chỉnh sửa cuối:
Upvote 0
Chip ơi!
Vị trí #7 và #9 là j thế ?
Chưa hiểu lắm...
Nếu không muốn "hỏi thăm sức khỏe" thì add CODE vào 1 button là OK.
 
Upvote 0
Vậy là bài này đã CLOSE.
Cám ơn bác SA đã chỉ giáo...
 
Upvote 0
Cám ơn anh rất nhiều! Nhưng em không muốn bị hỏi thăm sức khỏe đâu, em muốn làm như #7 ấy. Tóm lại là vi trí như file #9 nhưng cách làm thì nhu file của anh SA #7. Và sẽ không bao giờ thay đổi vi trí nữa Chờ tin của anh!
Thân!
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 'Tai Sheets("DaTa")'
 If Not Intersect(Target, Range("E7:E99")) Is Nothing Then
    Sheets("Bao cao").Range("B28:D" & (9 + Target.Row)).ClearContents
    Range("D8:E" & Target.Row).Copy Destination:=Sheets("Bao Cao").Range("B28")
    Sheets("Bao cao").Range("B" & Sheets("Bao cao").Range("B65432").End(xlUp).Row _
        + 2) = "Xin chào Gi?i Pháp Excel"
    Sheets("Bao cao").Range("B" & Sheets("Bao cao").Range("B65432").End(xlUp).Row _
        ).Font.Bold = True
 End If
End Sub

Còn muốn đổi vị trí bên sheets("Bao cao") thì sẽ sửa code #10 lại nếu có iêu cầu!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Tóm lại em muốn làm như file dưới dây. Anh SA sữa code giup em nhá.
Gửi file luôn cho em nhé.
Cám ơn anh rất nhiều..
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom