ẩn hiện cột và dòng có điều kiện

Liên hệ QC

ngocson_ktct

Thành viên mới
Tham gia
6/6/07
Bài viết
8
Được thích
0
em có một bảng tính mà muốn ẩn hiện cột và dòng có điều kiện
cụ thể là :có một S=4 mode ( cái này do mình nhập vào) và 4 bảng tính tương đương với 4 mode (tất cả bốn bảng tính đều giống nhau)
bây giờ em muốn nhập 3mode thì tự động sẽ ẩn đi một bảng tính, tương tự 2 mode
mong các anh chỉ giáo dùm em
 
Cái này là ẩn Sheet chứ ẩn dòng gì? Bạn có thể đưa file và hướng dẫn cụ thể được không? Nghe nó mơ hồ quá. Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
không phải là ẩn sheet.
em gui file lên.
mong các anh giúp em . thánk
 

File đính kèm

Upvote 0
không phải là ẩn sheet.
em gui file lên.
mong các anh giúp em . thánk
Bạn nói rằng:
day la dieu kien
vi du o day co 4 mode thi em co 4 bang tinh
nhung vi du em nhap 3 mdoe thi em muon an di ban tinh cua mode4
2mode thi em muon an di hai bang tinh cua mode1 va mode2
Đọc ko hiểu!
Bạn nói là 1 lần nữa:
-Nhập 1 Mode thì ẩn cái nào, hiện cái nào?
-Nhập 2 Mode thì ẩn cái nào, hiện cái nào?
-Nhập 3 Mode thì ẩn cái nào, hiện cái nào?
-Nhập 4 Mode thì ẩn cái nào, hiện cái nào?
-Xóa đi, không nhập gì thì ẩn hết hay hiện hết?
 
Upvote 0
Ẩn/hiện table

không phải là ẩn sheet.
em gui file lên.
mong các anh giúp em . thánk


Bạn thử code sau:

Mã:
Const maxMode = 4
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iMode As Byte, pMode As Byte
    If (Target.Address = [B1].Address) And (Me.[B1] <> Empty) Then
        pMode = Target
        Application.ScreenUpdating = False
        For iMode = 1 To pMode
            Range("Mode" & iMode).Rows.EntireRow.Hidden = False
        Next
        For iMode = pMode + 1 To maxMode
            Range("Mode" & iMode).Rows.EntireRow.Hidden = True
        Next
        Application.ScreenUpdating = True
    End If
End Sub

Trong đó, tôi giả sử bạn có 4 mode, nếu có nhiều hơn thì thay giá trị thích hợp vào hằng maxMode.
Trong file, tôi dùng validation cho ô B1 để bạn có thể chọn Mode đúng (ở đó tôi giả định bạn có 4 mode, nếu nhiều hơn thì nhập thêm giá trị cho nó)
Bạn xem thêm trong file đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
cảm ơn anh hoangvuluan. đúng cái em cần.
nhưng anh cho em hỏi thêm nếu em không dùng ô B1 thì em có thể đỏi ô khác được không?
có anh hưởng gì không?
và ví dụ em muốn nhiều mode hơn thì em chỉ sửa số 4 thành số khác ở dòng const maxMODE phải không??
thank.

anh có thể chỉ em tạo cái giống ô B1. là có chỉ vô ô B1 có mũi tên chỉ xuống và mình chỉ chọn
thank.

xin chỉ giáo thêm. Sao đổi trong code trong VBA B1 thanh D17 thi no lai bao lỗi.
mong mấy huynh xem giùm
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
cho em hỏi thêm là nếu số tầng em thay đổi ( muốn thêm hay bớt số tầng đi) thì nó có thể ẩn luôn được không
thank
 
Upvote 0
To: ngocson_ktct
Tôi đã reUpLoad file, có kèm hướng dẫn thực hiện bên trong (ở bài #5), bạn load về và xem để thực hiện.
 
Upvote 0
em làm như anh chỉ, thêm một mode nữa nhưng báo lỗi sau
"Range("Mode" & iMode).Rows.EntireRow.Hidden = True"
cho em hỏi lun nếu em cũng dùng cái code trên mà thực hiện o bảng tính khác thì chỉ cần sử chữ B1 trong code thôi phải không?
thank.
 

File đính kèm

Upvote 0
em làm như anh chỉ, thêm một mode nữa nhưng báo lỗi sau
"Range("Mode" & iMode).Rows.EntireRow.Hidden = True"
cho em hỏi lun nếu em cũng dùng cái code trên mà thực hiện o bảng tính khác thì chỉ cần sử chữ B1 trong code thôi phải không?
thank.

3- Đặt thêm tên cho bảng mới bổ sung

Trong phần hướng dẫn tôi có ghi điều này, tại bạn đọc không kỹ. Chỉ cần chọn vùng chứa bảng và đặt tên cho nó là Mode6.

Nếu dùng code cho bảng tính khác thì bạn làm đúng như quy trình mà tôi đã nêu. Tạo validation, chon các bảng và đặt tên, sửa code để nó chỉ đúng đến ô chứa validation (đổi B1 thành ô phù hợp), sửa giá trị maxMode.
 
Upvote 0
"Ví dụ: Chọn vùng A5:I22, nhập tên Mode1 trong hộp Name"
em không hiểu nhập tên làm sao??
anh chỉ cụ thể giúp em
thank
 
Upvote 0
Chạy code của hoangvuluan mới hiểu ý tác giã... hi.. hi...
Vậy dùng code này, khỏi đặt name
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    Cells.EntireRow.Hidden = False
    With Range("A5:I23")
      Range(.Offset(Target * (.Rows.Count)), [I65536]).EntireRow.Hidden = True
    End With
  End If
End Sub
 

File đính kèm

Upvote 0
Em làm theo cách này nhưng ko được, chắc tại e dốt mấy cái code này ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Các bác giúp e file này với nhé, e muốn tạo 1 cái nút mà nó có 2 lựa chọn để hiển thị nội dung bảng tính vì e tích hợp 2 bảng trong 1:
Lựa chọn 1: ẩn toàn bộ hàng và cột màu vàng (Cột E, F, G và hàng 29) các ô khác giữ nguyên
Lựa chọn 2: Ẩn các hàng màu xanh (từ hàng 24 đến hết hàng 29) các ô khác giữ nguyên.
Cảm ơn các bác nhiều nhiều.
 

File đính kèm

Upvote 0
Các cao thủ ở đâu giúp e với!
 
Upvote 0
Không phải cao thủ. Giúp được hông ???
Nếu mình nghĩ đúng thì bao giờ cái bảng của bạn chỉ thể hiện một trong 2 - Xanh hoặc Vàng - thì phải. Thử thế này xem
Thân
Bạn nghĩ bạn ko phải là cao thủ ư? Quá cao thủ rồi đấy/-*+/ Cảm ơn bạn nhiều lắm. Đúng như ý mình.
Bạn cho mình hỏi thêm chút nhé: Mình muốn chuyển vị trí cái nút bấm sang vị trí khác được không? Ví dụ sang ô M1
Bạn hướng dẫn mình làm với nhé.
Thanks.
 
Upvote 0
Bạn nghĩ bạn ko phải là cao thủ ư? Quá cao thủ rồi đấy/-*+/ Cảm ơn bạn nhiều lắm. Đúng như ý mình.
Bạn cho mình hỏi thêm chút nhé: Mình muốn chuyển vị trí cái nút bấm sang vị trí khác được không? Ví dụ sang ô M1
Bạn hướng dẫn mình làm với nhé.
Thanks.
- Chọn thanh lệnh "Control ToolBox" ==> chọn cái hình giống cây thước vuông "Design Mode" ==>bấm vào nó 1 phát ==> thò anh tý vào cái nút ==> bấm giữ trái ==> đem tới chỗ mình muốn
Thân
 
Upvote 0
Bạn ơi mình hỏi chút.

Do cái dòng
PHP:
Rows("29:29").EntireRow.Hidden = True và Rows("24:28").EntireRow.Hidden = True
nên khi mình chèn thêm các dòng thì sẽ bị sai bởi vì bảng tính của mình có thể phải chèn thêm hay xóa bớt hàng. Bạn giúp mình sao cho khi mình thêm bớt hàng sẽ ko bị vậy bạn nhé.
Thanks
 
Upvote 0
Bạn ơi mình hỏi chút.

Do cái dòng
PHP:
Rows("29:29").EntireRow.Hidden = True và Rows("24:28").EntireRow.Hidden = True
nên khi mình chèn thêm các dòng thì sẽ bị sai bởi vì bảng tính của mình có thể phải chèn thêm hay xóa bớt hàng. Bạn giúp mình sao cho khi mình thêm bớt hàng sẽ ko bị vậy bạn nhé.
Thanks
Rows("24:28").EntireRow.Hidden = True
sửa thành
[b100].End(xlUp).Offset(-5).Resize(5).EntireRow.Hidden = True
Rows("29:29").EntireRow.Hidden = True
sửa thành
[b100].End(xlUp).EntireRow.Hidden = True
Thân
 
Upvote 0
Web KT

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

Back
Top Bottom