Hỏi cách ẩn cột có tổng số = 0 trong table

Liên hệ QC

PhamHuyHung1990

Thành viên mới
Tham gia
18/10/21
Bài viết
16
Được thích
0
Xin chào cả nhà,

Mình có khai báo table, tên là data, bảng có nhiều cột mà một số cột có tổng số bằng không (hay là không có dữ liệu). Mình muốn ẩn và hiện nhanh các cột này thì làm thế nào?
Mong được sự giúp đỡ của GPE
 

PhamHuyHung1990

Thành viên mới
Tham gia
18/10/21
Bài viết
16
Được thích
0
nếu đưa macro của nút cập nhật dữ liệu vào file Personal.xlsb

Sub Cmd1_Click()
If Cmd1.Caption = "Hidden" Then
Call Hidden
Cmd1.Caption = "Unhidden"
Else
Call Unhidden
Cmd1.Caption = "Hidden"
End If
End Sub


làm sao để nút cập nhật dữ liệu trong file "ẩn cột" hoạt động.
Mình đã thử mà không chạy

1638006605238.png
 
Lần chỉnh sửa cuối:
Upvote 0

Hoàng Tuấn 868

Đăng ký hôm qua
Tham gia
9/11/19
Bài viết
2,590
Được thích
2,244
nếu đưa macro của nút cập nhật dữ liệu vào file Personal.xlsb

Sub Cmd1_Click()
If Cmd1.Caption = "Hidden" Then
Call Hidden
Cmd1.Caption = "Unhidden"
Else
Call Unhidden
Cmd1.Caption = "Hidden"
End If
End Sub


làm sao để nút cập nhật dữ liệu trong file "ẩn cột" hoạt động.
Mình đã thử mà không chạy

View attachment 269760
Xin lỗi bạn nhé, câu hỏi này thiếu mất chủ ngữ.
 
Upvote 0

PhamHuyHung1990

Thành viên mới
Tham gia
18/10/21
Bài viết
16
Được thích
0
Xin lỗi bạn nhé, câu hỏi này thiếu mất chủ ngữ.
Mình thành thật xin lỗi bạn.
Sự giúp đỡ của phía trên của bạn rất hữu ích cho mình và mình rất biết ơn về điều này.

file trong bài #6 đúng rồi và mình đã đưa macro vào file Personal.xlsb để dùng chung. Nhưng làm như vậy nút bấm cập nhật dữ liệu như bạn thiết kế không hoạt động. Vậy mong bạn chỉ giúp mình cách sửa lỗi với!

Xin cám ơn bạn rất nhiều!
 
Upvote 0

PhamHuyHung1990

Thành viên mới
Tham gia
18/10/21
Bài viết
16
Được thích
0
Bạn đưa file Personal.xlsb lên đây xem thế nào.
file đây, bạn xem giúp với. Mình mình muốn đưa 2 macro này vào nút bấm:

Sub HiddenDat()
Dim i As Range
Application.ScreenUpdating = False
For Each i In Range("k1:BH1")
If i.Value = 0 Then
i.EntireColumn.Hidden = True
Else
i.EntireColumn.Hidden = False
End If
Next i
Application.ScreenUpdating = True
End Sub

Sub UnhiddenDat()
Dim sh As Worksheet
Set sh = Sheets("data")
sh.Range("k1:BH1").EntireColumn.Hidden = False
End Sub
 

File đính kèm

  • PERSONAL.XLSB
    15.3 KB · Đọc: 2
Upvote 0

Hoàng Tuấn 868

Đăng ký hôm qua
Tham gia
9/11/19
Bài viết
2,590
Được thích
2,244
file đây, bạn xem giúp với. Mình mình muốn đưa 2 macro này vào nút bấm:

Sub HiddenDat()
Dim i As Range
Application.ScreenUpdating = False
For Each i In Range("k1:BH1")
If i.Value = 0 Then
i.EntireColumn.Hidden = True
Else
i.EntireColumn.Hidden = False
End If
Next i
Application.ScreenUpdating = True
End Sub

Sub UnhiddenDat()
Dim sh As Worksheet
Set sh = Sheets("data")
sh.Range("k1:BH1").EntireColumn.Hidden = False
End Sub
Bạn kiểm tra lại nhé.
 

File đính kèm

  • PERSONAL.XLSB
    23.9 KB · Đọc: 3
Upvote 0

PhamHuyHung1990

Thành viên mới
Tham gia
18/10/21
Bài viết
16
Được thích
0
Bạn kiểm tra lại nhé.
@Hoàng Tuấn 868 do mình dễn đạt không tốt nên chưa toát lên được ý muốn hỏi. Ý của mình là toàn bộ macro để ở file Personal.xlsb. File làm việc chỉ gán nút để gọi macro. Việc gọi từng macro đơn lẻ mình làm được rồi. Còn nút macro như bạn làm ở bài #6 thì mình làm không được.

mình xin gửi lại cả 2 files Personal.xlsb và file làm việc. Bạn thiết kế giúp mình nút bấm với.

p/s: macro để gọi 2 macro mình copy từ bài #6 của bạn.
 

File đính kèm

  • an cot theo dieu kien.xlsx
    14.4 KB · Đọc: 3
  • PERSONAL.XLSB
    17.9 KB · Đọc: 3
Upvote 0

Hoàng Tuấn 868

Đăng ký hôm qua
Tham gia
9/11/19
Bài viết
2,590
Được thích
2,244
Ý của mình là toàn bộ macro để ở file Personal.xlsb. File làm việc chỉ gán nút để gọi macro. Việc gọi từng macro đơn lẻ mình làm được rồi.
mình xin gửi lại cả 2 files Personal.xlsb và file làm việc. Bạn thiết kế giúp mình nút bấm với.
Minh chưa rõ ý bạn lắm.
1/ Câu này : "Ý của mình là toàn bộ macro để ở file Personal.xlsb" là bạn muốn ấn một nút sẽ chạy hết các macro hay thế nào.
2/ File Personal.xlsb của bạn trắng tinh thì mình không hiểu bạn định làm gì?
3/ Mình gửi trước file: "an cot theo dieu kien" đã gộp nút bấm cho bạn.
 

File đính kèm

  • an cot theo dieu kien.xlsb
    26.3 KB · Đọc: 4
Lần chỉnh sửa cuối:
Upvote 0

VetMini

Ăn cùng GPE
Tham gia
21/12/12
Bài viết
12,907
Được thích
16,852
Minh chưa rõ ý bạn lắm.
1/ Câu này : "Ý của mình là toàn bộ macro để ở file Personal.xlsb" là bạn muốn ấn một nút sẽ chạy hết các macro hay thế nào.
2/ File Personal.xlsb của bạn trắng tinh thì mình không hiểu bạn định làm gì?
3/ Mình gửi trước file: "an cot theo dieu kien" đã gộp nút bấm cho bạn.
Thớt muốn gán nút bấm vào hai cái Sub HiiddenDat và UnHiddenDat, mà hai macros này nằm trong PERSONAL.xlsb. Hai nút bấm thì nằm trong file đa ta đa tiếc gì đó.

Chú: HiddenDat là cụm danh từ. HideDat/UnhideDat mới là cụm động từ.
 
Upvote 0

PhamHuyHung1990

Thành viên mới
Tham gia
18/10/21
Bài viết
16
Được thích
0
Minh chưa rõ ý bạn lắm.
1/ Câu này : "Ý của mình là toàn bộ macro để ở file Personal.xlsb" là bạn muốn ấn một nút sẽ chạy hết các macro hay thế nào.
2/ File Personal.xlsb của bạn trắng tinh thì mình không hiểu bạn định làm gì?
3/ Mình gửi trước file: "an cot theo dieu kien" đã gộp nút bấm cho bạn.
file Personal.xlsb là file khởi động cùng excel, ở dạng ẩn, chỉ chứa macro, không chứa dữ liệu. Nó lưu ở C:\Users\user name\AppData\Local\Microsoft\Excel\XLStart
Nút bạn tạo ra đúng mong muốn của mình rồi. Nhưng macro bạn lại copy vào file "an cot theo dieu kien". Mình muốn trên file ""an cot theo dieu kien" chỉ có 1 nút để gọi hai cái Sub HiddenDat và UnHiddenDat. Còn macro thì lưu trên file Personal.xlsb. (sẽ đổi lại tên thành HidenDat và UnhidenDat như bác VetMini góp ý)
 
Upvote 0

VetMini

Ăn cùng GPE
Tham gia
21/12/12
Bài viết
12,907
Được thích
16,852
Muốn macros của PERSONAL hiện lên để chọn và gán vào nút thì phải unhide PERSONAL.xlsb

View > Window > bấm 'Unhide'
Trong cửa sổ Unhide, chọn PERSONAL.xlsb > Ok

Cách dễ hơn là lúc nó bảo gán macro thì gõ vào ô Macro name: PERSONAL.xlsb!SubGiGiDo
 
Upvote 0

PhamHuyHung1990

Thành viên mới
Tham gia
18/10/21
Bài viết
16
Được thích
0
Muốn macros của PERSONAL hiện lên để chọn và gán vào nút thì phải unhide PERSONAL.xlsb

View > Window > bấm 'Unhide'
Trong cửa sổ Unhide, chọn PERSONAL.xlsb > Ok

Cách dễ hơn là lúc nó bảo gán macro thì gõ vào ô Macro name: PERSONAL.xlsb!SubGiGiDo
Để gọi Sub HiddenDat và UnHiddenDat, bạn @Hoàng Tuấn 868 dùng nút có gắn macro Cmd1_Click() như sau:

Private Sub Cmd1_Click()
If Cmd1.Caption = "An cot" Then
Call HiddenDat
Cmd1.Caption = "Hien cot"
Else
Call UnhiddenDat
Cmd1.Caption = "An cot"
End If
End Sub

Nút gọi macro nằm trên file "an cot theo dieu kien".

Vấn đề là lưu Sub HiddenDat, Sub UnHiddenDat, Sub Cmd1_Click() trên file làm việc ("an cot theo dieu kien") thì chạy vô tư. Nhưng khi quăng 3 Sub trên sang PERSONAL.xlsb thì:
- Nút gọi gắn Sub Cmd1_Click(): không hoạt động.
- Nếu nút gọi chỉ gắn Sub HiddenDat hoặc Sub UnHiddenDat thì hoạt động bình thường. -> phải dùng tới 2 nút lận, không thuận tiện và đẹp mắt.
 
Upvote 0
Web KT
Top Bottom