Add-In A-Tools - Truy vấn (lọc), soạn thảo và quản trị dữ liệu Excel qua mạng

Liên hệ QC
ADD-IN A-TOOLS 9.5.0.1 TỐC ĐỘ MỞ FILE TỪ MÁY CHỦ TĂNG GẤP HAI LẦN
Với phiên bản mới v9.5.0.1 ngày 17-09-02-2021 chúng tôi nâng cấp những điểm rất lớn trong chia sẻ Excel qua mạng cho nhiều người dùng chung. Các nâng cấp chính như sau:
+ Nâng cấp: chức năng chia sẻ mạng, tốc độ mở sheet/vùng tăng nhanh gấp hai lần.
+ Nâng cấp: dù khi mạng LAN, Internet bị chậm đường truyền, việc chia sẻ file Excel cho người dùng chung trong vẫn đảm bảo kết nối ổn định.
+ Nâng cấp: trạng thái chọn vùng các user trong mạng cập nhật tốt khi các user đang mở phân vùng ảo.
+ Nâng cấp: tạo file Log (C:\A-Tools\Logxxxx.txt) báo cáo trạng thái hoạt động của máy chủ, máy khách. Nếu lỗi admin vào kiểm tra để xử lý. File khi tăng 50 Mb sẽ tự xóa nội dung.

NodeAliasPath.aspx

Download
 
Lần chỉnh sửa cuối:
Nhờ anh @Nguyễn Duy Tuân xử lý hộ em lỗi sau khi dùng A-Tool. Sau khi em cài A-tool thì không thể mở được file đính kèm. Không biết có xung đột gì không? Cảm ơn anh!
 

File đính kèm

  • Kata.xlsm
    193.4 KB · Đọc: 8
Nhờ anh @Nguyễn Duy Tuân xử lý hộ em lỗi sau khi dùng A-Tool. Sau khi em cài A-tool thì không thể mở được file đính kèm. Không biết có xung đột gì không? Cảm ơn anh!

error_gpe.png

Mình vẫn mở được tuy nhiên file này lỗi tương thích giữa 32 và 64-bit. Trong file có khai báo các hàm API lỗi. Tôi phán đoán 99% là vậy vì tôi chưa mở VBA trong file của bạn.
 
Chào Thầy! Bên mình đang sử dụng A Tool pro cho 1 máy chủ và 5 máy con kết nối. Nhưng lâu lâu máy con ko kết nối được. Thì lúc đó tắt máy chủ và chạy lại thì mới kết nối được. Trường hợp này mình làm sao để cải thiện lại. Chứ tắt máy chủ thì mấy máy khác đang làm phải out ra chung rồi kết nối lại
 
Thầy chỉ giáo giúp. E có đoạn code lấy chi tiết bán hàng và công nợ phải thu bên sheet sổ quỹ. khi thực hiện lệch chạy thì bình thường. Nhưng khi add lên chạy server A tool thì làm máy bị treo và có lỗi. Nhờ thầy chỉnh sửa lại giúp.

Sub DoiChieuCN()
Dim i As Long, arr(1 To 65000, 1 To 35), Rng(), j As Long, K As Long, Dic As Object, Tem As Variant
Set Dic = CreateObject("Scripting.Dictionary")
Application.DisplayAlerts = 0

With Sheets("CHI TIET")
Rng = .Range("A2:AC" & .[A65000].End(xlUp).Row).Value
End With
For j = 1 To UBound(Rng)
If Rng(j, 6) = [E2] Then
Tem = Rng(j, 4)
If Not Dic.Exists(Tem) Then
K = K + 1: Dic.Add (Tem), K
arr(K, 1) = Tem: arr(K, 1) = Rng(j, 4)
arr(K, 1) = Tem: arr(K, 2) = Rng(j, 19)
arr(K, 1) = Tem: arr(K, 3) = Rng(j, 5)
arr(K, 1) = Tem: arr(K, 4) = Rng(j, 15)
Else
arr(Dic.Item(Tem), 4) = arr(Dic.Item(Tem), 4) + Rng(j, 15)
End If

End If
Next j
With Sheets("SO QUY")
Rng = .Range("A8:N" & .[A65000].End(xlUp).Row).Value
End With
For i = 1 To UBound(Rng)
If Rng(i, 6) = [E2] Then
Tem = Rng(i, 3)
If Not Dic.Exists(Tem) Then
K = K + 1: Dic.Add (Tem), K
arr(K, 1) = Tem: arr(K, 1) = Rng(i, 3)
arr(K, 1) = Tem: arr(K, 2) = Rng(i, 1)
arr(K, 1) = Tem: arr(K, 3) = Rng(i, 5)
arr(K, 1) = Tem: arr(K, 5) = Rng(i, 13)
Else
arr(Dic.Item(Tem), 5) = arr(Dic.Item(Tem), 5) + Rng(i, 13)
End If

End If
Next i
With Sheets("DOI CHIEU CN")
.AutoFilterMode = False
Range("A12:E400").Value = arr

End With

End Sub
 
Code VBA này không tối ưu và có vài vấn đề cần sửa lại nhé.:
+ Rng = .Range("A2:AC" & .[A65000].End(xlUp).Row).Value
Bạn đang tự nhận số phần tử mảng có 65000 dòng. Thực tế có thể iits hơn haowcj nhiều hơn. Bạn cần dùng lệnh để tìm dòng cuối của vùng.
+ Range("A12:E400").Value = arr
Vấn đề thứ nhất, bạn phải có dấu chấm (.) trước Range() nếu nó thuộc đối tượng ở With nếu không nó có thể thuộc sheet bất kỳ; Vấn đề thứ hai ở chỗ A12:E400 - bạn đang tự nhận kích thước của arr (mảng hai chiều) có phần tử cuối của dòng là 400, thực tế có thể nhiều hơn haowcj ít hơn. Bạn cần phải sửa đoạn này để tối ưu.
 
Thầy Tuân giúp giúp file code. Chạy file trên máy bình thường nhưng add lên server thì máy chạy bị treo.
 

File đính kèm

  • Test.rar
    747.2 KB · Đọc: 2
Thầy Tuân giúp giúp file code. Chạy file trên máy bình thường nhưng add lên server thì máy chạy bị treo.
Bạn chưa sửa gì theo gợi ý trên của tôi. Xem qua file thì một vấn đề nữa phải sửa đó là, trong sheet "DOI CHIEU CN", có chạy sự kiện
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$2" Then DoiChieuCN
Range("A12:E400").Sort Key1:=Range("B12"), Order1:=xlAscending, Header:=xlNo
FilterCN
End Sub

Tức cứ khi thay đổi giá trị ô E2 thì sắp xếp vùng A12:E400 và chạy thủ tục FilterCN.
Bạn nên thay thế code FilterCN bằng hàm BS_SQL để tạo báo cáo sẽ đạt tốc độ nhanh nhất và tối ưu cùng máy chủ A-Tools. Các hàm của Add-in A-Tools được thiết kế để chạy nhanh, tối ưu tốc độ và tương thích khi chia sẻ mạng.

Còn việc sắp xếp lại vùng dữ liệu bạn cũng nên xem xét lại có cần thiết phải sắp xếp không, nếu có thì hãy thay bằng hàm BS_SQL.
 
Lần chỉnh sửa cuối:
Bạn chưa sửa gì theo gợi ý trên của tôi. Xem qua file thì một vấn đề nữa phải sửa đó là, trong sheet "DOI CHIEU CN", có chạy sự kiện
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$2" Then DoiChieuCN
Range("A12:E400").Sort Key1:=Range("B12"), Order1:=xlAscending, Header:=xlNo
FilterCN
End Sub

Tức cứ khi thay đổi giá trị ô E2 thì sắp xếp vùng A12:E400 và chạy thủ tục FilterCN.
Bạn nên thay thế code FilterCN bằng hàm BS_SQL để tạo báo cáo sẽ đạt tốc độ nhanh nhất và tối ưng cùng máy chủ.
Còn việc sắp xếp lại vùng dữ liệu bạn cũng nên xem xét lại có cần thiết phải sắp xếp không, nếu có thì hãy thay bằng hàm BS_SQL.
Thầy xem file đính kèm giúp. Chủ yếu lấy doanh số bán theo số phiếu xuất và lây tiền thu bên sổ quỹ qua sheet đối chiếu công nợ.
 

File đính kèm

  • Test.rar
    747.2 KB · Đọc: 1
Web KT
Back
Top Bottom