Code copy code vao codesheet (1 người xem)

Liên hệ QC

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

overnight_9

strive for mastery
Tham gia
4/7/12
Bài viết
160
Được thích
81
Nghề nghiệp
Công nhân
Hi anh chi,
Nhờ anh chị giúp tôi 1 đoạn code copy vào các sheet của file, có đính kèm file nhờ anh chị giúp. cám ơn nhiều
 

File đính kèm

Thử cách này xem, chỉ là test thôi.

Khi đóng Form, mình lấy những file nào chưa xoá thêm ra lưu tạm tại cột M, khi khởi động thì những file này sẽ được add vào tự động trước khi mình chủ động add thêm file

MỚI UP LẠI FILE CÓ ĐIỀU CHỈNH CODE
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Tôi đang nghĩ đến 1 hướng khác đơn giản hơn: Tạo 1 Add-In có code của tác giả. Như vậy thì bất kỳ file Excel nào mở lên cũng đều dùng được Add-In đó thông qua việc gọi Add-In thế nào đó
Nghiên cứu xem (như vậy khỏi cần form, khỏi cần Add code gì gì đó cho mất công)
 
Upvote 0
hi anh Quanghai,
(sub xoatatcacode) không hoạt động khi mình xoá file trong listbox,
& sub xoa_het_file cũng không hoạt động luôn anh Quanghai ơi, xem lại giúp em



cám ơn anh Quanghai nhiều.
xong phần này em sẽ tự thưởng cho mình 1 chút gì đó gọi là xả stress, đang suy nghỉ..... thực sự em ngồi vọc cả tuần cứ đến khúc quanh co là phải (search) nguồn tùm lum rồi ngồi đọc muốn điên khùng luôn.
 
Lần chỉnh sửa cuối:
Upvote 0
hi anh Quanghai,
(sub xoatatcacode) không hoạt động khi mình xoá file trong listbox,
& sub xoa_het_file cũng không hoạt động luôn anh Quanghai ơi, xem lại giúp em


cám ơn anh Quanghai nhiều.
Bảo đảm là do bạn thay đổi gì đó nên mới thế thôi. Nếu file gốc hoạt động tốt tức là code ok nhé
 
Upvote 0
Bảo đảm là do bạn thay đổi gì đó nên mới thế thôi. Nếu file gốc hoạt động tốt tức là code ok nhé

hi anh Quanghai,
Chèn file & chen code vào file thì chay được. còn 2 vấn đề em đang mò mẫn chưa ra tìm ra.
1./ khi chèn được file thì file đó chưa hiện hành để làm việc.
2./ khi xoá file trong list thì code báo lỗi chổ:

PHP:
Workbooks.Open ThisWorkbook.path & "\filedulieu\" & tenfile

Em xoá cái bẫy lỗi "On error goto Loi:" mới phát hiện ra lỗi này.
Theo em nhận định thì đây là 1 biến khác biến trên nó mà code theo đường dẫn đến "\filedulieu\" nhưng không xác định được tên của file để mở ra, các anh hướng dẫn giúp phần này.

dù các file vẩn ở thư mục "filedulieu",

PHP:
Sub xoa_1_file()
Application.ScreenUpdating = False
Dim tenfile

   tenfile = UserForm1.Listbox1.Column(0)
   With UserForm1
      .Listbox1.RemoveItem (.Listbox1.ListIndex)
      MsgBox "Da xoa " & tenfile
   End With
   Workbooks.Open ThisWorkbook.path & "\filedulieu\" & tenfile
   Xoatatcacode
   ActiveWorkbook.Close True
   Application.ScreenUpdating = True
   Exit Sub

Application.ScreenUpdating = True
End Sub


PHP:
Sub add_list()
Application.ScreenUpdating = False
Dim FilesToOpen
Dim x As Integer
On Error GoTo ErrHandler
    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="Microsoft Excel Files (*.xls), *.xls", MultiSelect:=True)
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "No Files were selected"
        GoTo ExitHandler
    End If
    x = 1
    While x <= UBound(FilesToOpen)
        Workbooks.Open Filename:=FilesToOpen(x)
        UserForm1.Listbox1.AddItem (ActiveWorkbook.Name)
        add_code
        ActiveWorkbook.Close True
        x = x + 1
    Wend
    
ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
Application.ScreenUpdating = True
End Sub

Em sữ dụng Excel 2007, nhưng em có chỉnh lại các đuôi *.xls = xlsm rồi
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi đang nghĩ đến 1 hướng khác đơn giản hơn: Tạo 1 Add-In có code của tác giả. Như vậy thì bất kỳ file Excel nào mở lên cũng đều dùng được Add-In đó thông qua việc gọi Add-In thế nào đó
Nghiên cứu xem (như vậy khỏi cần form, khỏi cần Add code gì gì đó cho mất công)
Tôi ví dụ 1 code như đã nói ở trên nhé!
1> Chèn 1 Class Module, đặt tên cho nó là wkbEvent và chèn code dưới đây vào nó
PHP:
Public WithEvents ExlApp As Application
Private Sub Class_Initialize()
  Set ExlApp = Application
End Sub
PHP:
Private Sub Class_Terminate()
    Set ExlApp = Nothing
End Sub
PHP:
Private Sub ExlApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  If Target.Address = "$A$1" Then MsgBox "Thí nghiem su kien Change"
  ''Code cho sự kiện change tùy ý bạn chỉnh
End Sub
2> Chèn 1 Module, đặt tên cho nó là wkbRegulator và chèn code dưới đây vào nó
PHP:
Dim ExlObj As New wkbEvent
Sub Event_Start()
  If ExlObj Is Nothing Then Set ExlObj = New wkbEvent
End Sub
PHP:
Sub Event_Stop()
  Set ExlObj = Nothing
End Sub
Xong, ra ngoài bảng tính, bấm Alt + F8, gán phím tắt cho Sub Event_StartCtrl + Shift + I Sub Event_StopCtrl + Shift + T
Xong, lưu file thành định dạng xlam rồi đóng file
Xong, mở 1 file mới, vào Add-Ins, kích hoạt tên Add-In vừa lưu
Xong, bấm Ctrl + Shift + I để khởi động sự kiện Change rồi chọn vào cell A1 để thí nghiệm
Bấm Ctrl + Shift + T để tắt sự kiện Change
----------------------
Như vậy chỉ cần Add-Ins này, mọi file đều dùng được mà chẳng cần phải chèn, xóa code gì cả cho rườm rà
 

File đính kèm

Upvote 0
Như vậy chỉ cần Add-Ins này, mọi file đều dùng được mà chẳng cần phải chèn, xóa code gì cả cho rườm rà

Tks thầy NDU,
không biết nói thế nào nữa, gặp thầy rồi tính.

Nếu mà lộ đề thì làm gì trò chịu ngồi đọc sách cả 2 tuần nay EC...EC....

Nhờ vậy mà em học được từ anh Quanghai một số kiến thức quan trong, em cám ơn anh Quanghai nhiều nhiều.
 
Upvote 0
Tks thầy NDU,
không biết nói thế nào nữa, gặp thầy rồi tính.

Nếu mà lộ đề thì làm gì trò chịu ngồi đọc sách cả 2 tuần nay EC...EC....

Nhờ vậy mà em học được từ anh Quanghai một số kiến thức quan trong, em cám ơn anh Quanghai nhiều nhiều.
Thật ra mấy cái code copy ấy tôi đang có sẵn đây (post lên là được)
Tuy nhiên có vài nguyên nhân khiến tôi chưa post:
- Tôi muốn một vài bạn đã nguyên cứu VBA trong thời gian gần đây sẽ cùng tham gia
- Muốn bạn tự mình "vận động" để... nhớ dai hơn
- Mặc khác, chưa biết bài toán thật sự của bạn là gì, liệu có cần phải làm thế không?
vân vân...
 
Upvote 0
Thật ra mấy cái code copy ấy tôi đang có sẵn đây (post lên là được)
Tuy nhiên có vài nguyên nhân khiến tôi chưa post:
- Tôi muốn một vài bạn đã nguyên cứu VBA trong thời gian gần đây sẽ cùng tham gia
- Muốn bạn tự mình "vận động" để... nhớ dai hơn
- Mặc khác, chưa biết bài toán thật sự của bạn là gì, liệu có cần phải làm thế không?
vân vân...

em xin nói 1 câu này rồi nhờ mod đóng toptic lại giúp,

Em sẽ gặp anh NDU mọi chuyện tính tiếp. em cảm ơn
 
Upvote 0
Web KT

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

Back
Top Bottom