Code chuyển dữ liệu giữa 02 file theo Sheets chỉ định (1 người xem)

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

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

Thaiduc

Thành viên hoạt động
Tham gia
13/3/07
Bài viết
118
Được thích
6
Nhờ GPE giúp mình:
Tại Bảng B, mở Form nhập dự liệu, khi nhập họ và tên, mà họ và tên đó có trong Sheet 1 thì hiện ra năm sinh của người đó (lọc).
Sau khi có dữ liệu trên Form (họ và tên; năm sinh) thì chọn nút kết chuyển dữ liệu sang Sheet 2 của bảng A, dữ liệu được ghi vào bảng A và bảng B thoát khỏi Excel.
Bảng A hiện ra và có dữ liệu vừa chuyển từ bảng B tại Sheet 2.
Có gửi kèm 02 file: BANG A.Xls và BANG B.Xls.
Rất cám ơn.
 

File đính kèm

Rất mong các sư huynh, đệ ra đây giúp với.
 
Upvote 0
Nhờ GPE giúp mình:
Tại Bảng B, mở Form nhập dự liệu, khi nhập họ và tên, mà họ và tên đó có trong Sheet 1 thì hiện ra năm sinh của người đó (lọc).
Sau khi có dữ liệu trên Form (họ và tên; năm sinh) thì chọn nút kết chuyển dữ liệu sang Sheet 2 của bảng A, dữ liệu được ghi vào bảng A và bảng B thoát khỏi Excel.
Bảng A hiện ra và có dữ liệu vừa chuyển từ bảng B tại Sheet 2.
Có gửi kèm 02 file: BANG A.Xls và BANG B.Xls.
Rất cám ơn.
Đã xem file của bạn nhưng hong biết ý bạn như thế nào, sao giúp được.
 
Upvote 0
Rất cám ơn Anh.
Trong File BANG B.xls. UserForm1 có 02 TextBox (1 là họ và tên; 2 là năm sinh). Khi nhập họ và tên trong Form, nếu trùng họ và tên đã có ở Sheet B thì hiện năm sinh tương ứng ở TextBox 2 (năm sinh).
Khi có đủ dữ liệu (họ và tên, năm sinh) ở 2 TextBox. Nhấn CommandButton (KẾT CHUYỂN DỮ LIỆU SANG BẢNG A & THOÁT) thì dữ liệu trên Form đó chuyển sang Flie BANG A.xls nhưng ghi dữ liệu vào Sheet 2, chứ không phải ở Sheet A.
Xin nhờ Anh giúp. Rất mong và cám ơn rất nhiều.
Thân ái kính chào.
 
Upvote 0
Rất cám ơn Anh.
Trong File BANG B.xls. UserForm1 có 02 TextBox (1 là họ và tên; 2 là năm sinh). Khi nhập họ và tên trong Form, nếu trùng họ và tên đã có ở Sheet B thì hiện năm sinh tương ứng ở TextBox 2 (năm sinh).
Khi có đủ dữ liệu (họ và tên, năm sinh) ở 2 TextBox. Nhấn CommandButton (KẾT CHUYỂN DỮ LIỆU SANG BẢNG A & THOÁT) thì dữ liệu trên Form đó chuyển sang Flie BANG A.xls nhưng ghi dữ liệu vào Sheet 2, chứ không phải ở Sheet A.
Xin nhờ Anh giúp. Rất mong và cám ơn rất nhiều.
Thân ái kính chào.

Còn cái form nhập liệu ở file Bang A thì sao hả bạn?
 
Upvote 0
Form nhập liệu ở file BANG A, Anh đừng quan tâm tới (mình sẽ dùng để mở BANG B mà thôi. Anh ra tay giúp mình nhe. Cám ơn nhiều. Mình cũng ở Miền Tây (Kiên Giang).
 
Upvote 0
Form nhập liệu ở file BANG A, Anh đừng quan tâm tới (mình sẽ dùng để mở BANG B mà thôi. Anh ra tay giúp mình nhe. Cám ơn nhiều. Mình cũng ở Miền Tây (Kiên Giang).
Vậy thì tôi đã thấy bạn đã làm xong rồi mà, còn chăng chỉ là yêu cầu nhập tên thoả điều kiện thì ra năm sinh. Cái này mình dùng hàm Vlookup là ra.

Mã:
Private Sub Hoten_Change()
On Error GoTo Handle
Namsinh = Application.WorksheetFunction.VLookup(Hoten, Sheets("B").[A2:B1000], 2, 0)
Exit Sub
Handle:
Namsinh = ""
End Sub

Private Sub NHAP_Click()
Application.ScreenUpdating = False
If Trim(Me.Hoten.Value) = "" Then
    Me.Hoten.SetFocus
    MsgBox "CHUA NHAP HO VA TEN !", vbCritical + vbOKOnly
Else
  With Workbooks.Open(ThisWorkbook.path & "\BANG A.xls")
    With .ActiveSheet.[a65536].End(3)
      .Offset(1) = Me.Hoten.Value
      .Offset(1, 1) = Me.Namsinh.Value
    '  Me.Hoten.Value = ""
    '  Me.Namsinh.Value = ""
    '  Me.Hoten.SetFocus
    End With
   ' .Close True
  End With
End If
ThisWorkbook.Close (True)
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Vậy thì tôi đã thấy bạn đã làm xong rồi mà, còn chăng chỉ là yêu cầu nhập tên thoả điều kiện thì ra năm sinh. Cái này mình dùng hàm Vlookup là ra.

Mã:
Private Sub Hoten_Change()
On Error GoTo Handle
Namsinh = Application.WorksheetFunction.VLookup(Hoten, Sheets("B").[A2:B1000], 2, 0)
Exit Sub
Handle:
Namsinh = ""
End Sub

Private Sub NHAP_Click()
Application.ScreenUpdating = False
If Trim(Me.Hoten.Value) = "" Then
    Me.Hoten.SetFocus
    MsgBox "CHUA NHAP HO VA TEN !", vbCritical + vbOKOnly
Else
  [COLOR=#ff0000]With Workbooks.Open(ThisWorkbook.path & "\BANG A.xls")[/COLOR]
    With .ActiveSheet.[a65536].End(3)
      .Offset(1) = Me.Hoten.Value
      .Offset(1, 1) = Me.Namsinh.Value
    '  Me.Hoten.Value = ""
    '  Me.Namsinh.Value = ""
    '  Me.Hoten.SetFocus
    End With
   ' .Close True
  End With
End If
ThisWorkbook.Close (True)
Application.ScreenUpdating = True
End Sub

Hai Lúa Miền Tây chưa hiểu ý mình rồi!
Ý mình là thay vì ghi dữ liệu vào BANG A tại Sheet A thì ghi dữ liệu vào Sheet 2 của BANG A.
Đoạn Code này: With Workbooks.Open(ThisWorkbook.path & "\BANG A.xls") mình thử thay bằng nhiều cách nhưng không được như ý (ghi dữ liệu vào Sheet 2 của BANG A)
 
Upvote 0
Hai Lúa Miền Tây chưa hiểu ý mình rồi!
Ý mình là thay vì ghi dữ liệu vào BANG A tại Sheet A thì ghi dữ liệu vào Sheet 2 của BANG A.
Đoạn Code này: With Workbooks.Open(ThisWorkbook.path & "\BANG A.xls") mình thử thay bằng nhiều cách nhưng không được như ý (ghi dữ liệu vào Sheet 2 của BANG A)

Đoạn màu đỏ là đoạn để mở file "Bang A", file "Bang A" này nằm chung folder với file chạy code.
Đoạn code sau sẽ nhập vào sheet hiện hành:

Mã:
Private Sub NHAP_Click()
Application.ScreenUpdating = False
If Trim(Me.Hoten.Value) = "" Then
    Me.Hoten.SetFocus
    MsgBox "CHUA NHAP HO VA TEN !", vbCritical + vbOKOnly
Else
  With Workbooks.Open(ThisWorkbook.path & "\BANG A.xls")
    With .[COLOR=#ff0000][B]ActiveSheet[/B][/COLOR].[a65536].End(3)
      .Offset(1) = Me.Hoten.Value
      .Offset(1, 1) = Me.Namsinh.Value
    '  Me.Hoten.Value = ""
    '  Me.Namsinh.Value = ""
    '  Me.Hoten.SetFocus
    End With
   ' .Close True
  End With
End If
ThisWorkbook.Close (True)
Application.ScreenUpdating = True
End Sub
Thay ActiveSheet thành Sheets("Sheet2") là được.

Mã:
Private Sub NHAP_Click()
Application.ScreenUpdating = False
If Trim(Me.Hoten.Value) = "" Then
    Me.Hoten.SetFocus
    MsgBox "CHUA NHAP HO VA TEN !", vbCritical + vbOKOnly
Else
  With Workbooks.Open(ThisWorkbook.path & "\BANG A.xls")
    With [B][COLOR=#ff0000].Sheets("Sheet2")[/COLOR][/B].[a65536].End(3)
      .Offset(1) = Me.Hoten.Value
      .Offset(1, 1) = Me.Namsinh.Value
    '  Me.Hoten.Value = ""
    '  Me.Namsinh.Value = ""
    '  Me.Hoten.SetFocus
    End With
   ' .Close True
  End With
End If
ThisWorkbook.Close (True)
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Anh Hai Lúa Miền Tây ơi!
Cho hỏi, sao chuyển dữ liệu thứ nhất, đến dữ liệu thứ hai thì nó không ghi dòng dưới mà lại ghi đè lên dòng thứ nhất đã chuyển trước đó.
Có cách nào khắc phục không Anh.
 
Upvote 0

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

Back
Top Bottom