Search This Blog

Thursday, September 29, 2022

VBA tăng perfromance đọc file Excel bằng cách sử dụng ADODB

VBA tăng perfromance đọc file Excel bằng cách sử dụng ADODB
Với mục đích cần tổng hợp data từ nhiều file excel khác nhau, thì có rất nhiều cách để các bạn đọc một hoặc nhiều file excel. Thông thường, rất nhiều người hay sử dụng (và cũng rất dễ tìm kiếm trên google) là cách sử dụng câu lệnh Open từng file, lấy data và dùng câu lệnh Close nó. Dưới đây là 2 ví dụ điển hình:

VD1:

Dim wb As Workbook

For i = LBound(MyFiles) To UBound(MyFiles)

    Set wb = Workbooks.Open(MyPath & MyFiles(i), 0, True)

    'lấy data từ wb …..

    wb.Close (False)

Next


VD2:

Dim xApp As New Excel.Application
For i = LBound(MyFiles) To UBound(MyFiles)
    With xApp
        .Workbooks.Open FileName:=MyPath & MyFiles(i), ReadOnly:=True
        .Visible = False
    End With

         'lấy data từ wb …..

    xApp.ActiveWorkbook.Close False
Next

Cả 2 ví dụ trên đều thực hiện thành công và đáp ứng nhu cầu của coder nhưng có performance rất chậm. Tôi áp dụng nó để mở và lấy data từ 1 file TC có size = 3MB, trong đó có 5k ITC thì kết quả như sau:
Ở VD1 -> mất 35 giây.
Ở VD2 -> mất 48 giây.
Bạn hãy tưởng tượng, dự án tôi có 4 file như vậy và hàng ngày tôi cần tổng hợp để xem số liệu create, execute (Không muốn dựa vào report của các leader, tôi muốn xem số thực tế). Và mỗi lần chạy mất 3 phút chỉ cho việc đọc file L, tôi chắc rằng ở FSOFT có rất nhiều dự án có số lượng document khủng của UTC, ITC, DD,…
Tôi đã tìm hiểu, rồi thử với ADODB thì kết quả rất bất ngờ: Tôi đặt log time và việc đọc 4 file ITC đã chỉ còn 6 giây thay vì 3 phút. Các bạn hãy thử sửa VBA của mình và chạy lại đi, đừng ngạc nhiên nhé!
Đây là 1 ví dụ về việc sử dụng ADODB, nếu bạn nào vẫn chưa rõ thì liên hệ qua Account Teams TruongVX tôi sẽ hướng dẫn thêm. Nhớ add thư viện "Microsoft ADO Ext. 6.0 for DDL and Security", "Microsoft.ACE.OLEDB.12.0"

Sub GetDataFromExcelFileWithADODB(path As String, sheetname As String, _
                                    startRow As Integer, StartColumn As Integer, _
                                    endRow As Integer, EndColumn As Integer)
On Error Resume Next
    Dim cnStr As String
    Dim rs As ADODB.Recordset
    Dim query As String  
    Call OptimizeCode_Begin  
    With ActiveSheet
    sheetrange = .Range(.Cells(startRow, StartColumn), _
                      .Cells(endRow, EndColumn)).Address()
    End With
    sheetrange = Replace(sheetrange, "$", "")
    cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
               "Data Source=" & path & ";" & _
               "Extended Properties=Excel 12.0"
    query = "SELECT * FROM [" & sheetname & "$" & sheetrange & "]"
    Set rs = New ADODB.Recordset
    rs.Open query, cnStr, adOpenStatic, adLockReadOnly
    Range("B4").CopyFromRecordset rs
    Dim cell As Range, i As Long
    With Range("A1").CurrentRegion
        For i = 0 To rs.Fields.Count - 1
            .Cells(2, i + 1).Value2 = rs.Fields(i).Name
        Next i
        .EntireColumn.AutoFit
    End With  
    rs.Close  
    Call OptimizeCode_End
End Sub

* Lưu ý:
Khi sử dụng ADODB thì cần phải giải phóng nó sau khi sử dụng nhé, không thì nó sẽ tốn RAM lắm đấy!
Câu lệnh giải phóng biến khai báo kiểu ADODB:
Tên biến.Close -> VD ở trên đang sử dụng rs.Close
Tác giả: Vu Xuan Truong (ICS.YDC)

Wednesday, September 14, 2022

Như thế nào là sếp tốt?

Để định nghĩa một chỗ làm tốt, theo tôi tiêu chí quan trọng nhất là "chất lượng" của sếp?
Có sếp tốt bạn từ trung bình thành khá, từ khá thành giỏi, từ giỏi thành rất giỏi. Làm việc với sếp tồi thì cứ xếp theo thứ tự ngược lại nhé.
Đối với những bạn trẻ mới đi làm "sếp là ai" quan trọng như gái chọn chồng vậy. Lỡ lấy phải chồng và nhà chồng lởm khởm coi như khổ cả đời. Ngược lại lấy được chồng xịn sướng cả một đời gái.

Vậy như thế nào là một người sếp tốt. Tạm có mấy gạch đầu dòng như sau.

Sếp phải có cái đầu hơn nhân viên

Đặc ân của người đi làm thuê là hàng ngày được tiếp xúc với sếp thông minh. Cuộc đời đi làm của tôi tiếp xúc với đủ loại sếp khác nhau. Tây có ta có. Rất thông minh và thiếu i ốt đủ cả. Sếp thông minh làm tôi thấy mình ngu nhưng không làm tôi ngu. Đó là điều tôi cực thích. Thỉnh thoảng tôi thông minh đột xuất vào ngày ăn nhiều i ốt thì sếp cũng biết ngay. Sếp cổ vũ ngay và làm tôi có cảm tưởng mình thông minh hơn cả sếp. Phàm người giỏi thường có cái tôi khá to. Nhưng người giỏi thực sự thường biết ghi nhận, lắng nghe và cổ vũ người giỏi hơn mình.

Sếp chuyên môn có thể không giỏi hơn nhân viên nhưng họ hơn người ở chổ biết sử dụng người giỏi hơn họ. Đừng an phận thủ thường hài lòng với một người sếp chỉ có mỗi ưu điểm tính cách dễ chịu. Dễ chịu nhưng mãi không thấy mình lớn lên bao nhiêu theo thời gian cũng chán. Tốt nhất là có sếp vừa có phong cách dễ chịu lại vừa giỏi. Không được cả hai thì sao? Nếu phải chọn giữa Lưu Bị và Tào Tháo sẽ nhiều người chọn Tào Tháo. Tất nhiên chỉ ở góc độ tài năng.

Quản trị theo phong cách nhân trị

Người theo tư duy nhân trị thường điềm tĩnh và ít để lộ cảm xúc. Họ là mẫu nhà hiền triết. Họ có khả năng thấu hiểu, nhìn ra tiềm năng và biết đối nhân xử thế để phát huy năng lực của nhân viên. Đối với nhân viên giỏi và có cá tính mẫu sếp theo hướng nhân trị rất phù hợp để thu hút nhân tâm. Tôi thích mẫu người này tiếc rằng chả gặp được ai.
Sếp theo tư duy nhân trị không phải khi nào cũng có phong cách hiền triết. Về quản trị họ là nhân trị nhưng về tính cách có thể họ là người bộc trực thậm chí nhiều lúc nóng tính và độc đoán khi cần. Nóng tính và độc đoán như ông Alex Ferguson của CLB Man United nhưng thực chất ông là điển hình của nhân trị. Đằng sau phong cách dữ dội bề ngoài là trái tim yêu thương và thấu hiểu. Nhiều lúc để làm việc dưới trướng của những đầu óc thông minh nên có khả năng thích nghi với sự độc đoán có thể chấp nhận.

Biết truyền cảm hứng

Truyền cảm hứng là một kỹ năng rất quan trọng trong quản lý. Ông Ferguson sau khi nghỉ hưu ở tuổi 73 đã được đại học Harvard mời thỉnh giảng môn quản trị ngành nghề giải trí và thể thao. Câu nói yêu thích của ông già gân này với các siêu sao tài giỏi cá tính đầy mình của ông là: làm tốt lắm, con trai. Câu nói đơn giản này có tác dụng lớn hơn người ta nghĩ. Bản chất con người ta là thích khen, thích được khích lệ. Một câu khích lệ đúng lúc chả khác gì liều doping không mất tiền mua. Tất nhiên đã là doping thì không được dùng quá liều. Nếu không muốn xảy ra phản ứng phụ. Khả năng truyền cảm hứng đến từ sự tâm huyết, chân thành và tất nhiên dựa trên nền tảng tài năng chuyên môn. Không những Sir Alex Ferguson, hầu như tất cả các nhà quản lý tài năng đều hội tụ đầy đủ những phầm chất này để trở thành những người truyền cảm hứng được yêu mến.

Nếu lỡ phải làm việc với sếp không giỏi thậm chí xếp kém thì phải làm sao. Tôi đã từng một lần đụng độ ca này. Sau khi chia tay sau một chuỗi đụng độ tôi rút ra được một kết luận: sếp kém cũng là một cơ hội. Họ giúp bạn rèn luyện kỹ năng đối mặt với sự khó chịu và bất công, những thứ hầu như ai cũng phải gặp. Điều này nữa: họ giúp bạn biết mình may mắn và trân trọng nếu sau đó bạn gặp được sếp giỏi. Có nhiều bạn đang làm việc với một sếp giỏi nhưng không nhận ra may mắn đó. Và tất nhiên họ sẽ không thực sự trân trọng những gì mình có cho đến khi gặp một sếp kém.


Đứng ở góc nhìn quản trị thương hiệu, sếp lớn nhất của một doanh nghiệp là một trong những yếu tố quan trọng nhất tạo nên một Corporate brand (Thương hiệu công ty) và một Employer Brand (Thương hiệu nhà tuyển dụng) mạnh.


Đức Sơn

Monday, September 12, 2022

Mentor coach consult



01. Mentor là hoạt động dẫn dắt, giúp người được dẫn dắt làm đúng ngay từ đầu, tức DO THE RIGHT THINGS

02. Coach (khai vấn) là hoạt động gỡ rối, thông quá các câu hỏi gợi mở, nhà khai vấn giúp người cần khai vấn biết lý do tại sao mình gặp khó khăn (ví dụ công ty làm việc kém là do đâu) và điều gì nên làm cho vấn đề đó.

03. Consulting (Tư Vấn) là hoạt động chuyên sâu giúp người được tư vấn tìm ra được cách giải quyết tất cả vấn đề đang tồn đọng và đôi khi còn đi giải quyết cả vấn đề đó hộ cho người thuê tư vấn.

---------
Vì sao Hùng chia sẻ điều này.
Rất nhiều bạn hiện nay tìm đến các mentors, coach, nhà tư vấn không đúng thời điểm và đúng mục đích.

Nếu bạn là 1 doanh nghiệp đang phát triển ổn định, hiện tại chưa gặp khó khăn gì, chỉ là doanh nghiệp cứ tàn tàn, dù làm 7-8 năm rồi.  Cái bạn nên tìm là MENTOR.

Nếu bạn là 1 DN và đang gặp phải vấn đề mà không biết lý do vì sao, như tại sao doanh số luôn kém dù muốn sales giỏi về rất nhiều, nhưng nhân sự lười dù lương rất cao thì bạn nên tìm 1 COACH có kinh nghiệm ở vấn đề bạn gặp, chứ không nên tìm MENTOR làm gì.

Nếu bạn là 1 DN và đang gặp phải vấn đề, nhưng bạn đã khoanh vùng, biết rõ giải pháp cần làm gì để xử lý, nhưng năng lực không có.  Ví dụ bạn biết rõ cần xây lại hệ thống bảng lương theo mô hình lương 3P, nhưng không biết cách thức triển khai thế nào, trình tự...thì hãy tìm đến nhà tư vấn, người có kinh nghiệm rất sâu ở đúng giải pháp bạn đang muốn triển khai.  Chứ tìm đến coach, mentor không giúp ích gì cả.

----------


Nguyễn Tuấn Hùng

CON NGƯỜI và TINH THẦN

CON NGƯỜI và TINH THẦN 1 –  " Nếu có một gã trọc phú hàng to súng lớn, có thể mua biệt thự alibaba cho em ở, xe lếch xù cho em đi, nạp ...