Em xin được sự giúp đỡ :Ẩn dòng và tự động đánh lại số thứ tự (STT) sau khi ẩn dòng

Liên hệ QC

dangky47h

Thành viên thường trực
Tham gia
4/9/17
Bài viết
329
Được thích
41
Giới tính
Nam
Xét trong vùng dữ liệu từ cột D đến cột Y:
Nếu tất cả các dòng trong vùng dữ liệu từ cột D đến cột Y đều trống (các ô từ cột D đến cột Y đều không chữa dữ liệu) thì dòng chứa các ô đó sẽ bị ẩn và khi đó ở cột A số thứ tự (STT) tự động được đánh lại cho những dòng không bị ẩn.
Em nhờ sự giúp đỡ của các Thầy, cac Anh, Chị.
Em xin cám ơn!
File cua toi.jpg
 

File đính kèm

  • nhat ky truc ban.xlsx
    37.2 KB · Đọc: 13
Các tên trang tính nên có khuôn fép thì tiện trong khi xài VBA; Như:

9_Nha de xe
9_San
13Be tong
. . . .
Các con số 9 hay 13 là những cột tương ứng cần lây dữ liệu của trang (tính)
E sửa lại file theo quy luật Thầy cho ý kiến, Em nhờ Thầy giúp em ạ!sua anh.jpg
 

File đính kèm

  • File sua lai.xlsx
    123.1 KB · Đọc: 5
Upvote 0
File bài #14
 

File đính kèm

  • MayThiCong.xlsm
    148.6 KB · Đọc: 23
Upvote 0
Thầy ơi rất đúng ý em, em làm phiền Thầy chút xíu nữa để hoàn thiện ạ! Cột cần ẩn và hiện là những cột thuộc sheet (Nha de xe, San be tong, Ranh nuoc, Nha hieu bo, Cot co) Các cột cần ẩn, cần hiện (em tô màu xanh) trong sheet nêu trên là cột “E, F, K, L, N, O, P” và các cột từ “U đến Y
Em cám ơn Thầy, Thầy làm ơn giúp em nhé!hoan thien.jpg
 

File đính kèm

  • May thi cong nho Thay.xlsm
    141.3 KB · Đọc: 15
Upvote 0
Em nghĩ không dùng Dic có vẻ gọn hơn. Không biết là em có thiếu sót gì không. Viết vui thôi chứ không test kỹ

Mã:
Sub Do_Tim_May_Thi_Cong()
Dim sh As Worksheet, MayThiCong(), sArr(), i As Long, ii As Long, Res()
With Sheets("May Thi Cong")
   MayThiCong = .Range("A2", .[A65536].End(3)).Resize(, 3).Value
End With
For Each sh In ThisWorkbook.Worksheets
   If Replace(LCase(sh.Name), " ", "") <> "maythicong" Then
      sArr = sh.Range("A2", sh.[A65536].End(3)).Resize(, 9).Value
      ReDim Res(1 To UBound(sArr), 1 To 1)
      For i = 1 To UBound(sArr)
         If sArr(i, 9) <> Empty Then
            For ii = 1 To UBound(MayThiCong)
               If sArr(i, 9) Like "*" & MayThiCong(ii, 2) & "*" Then
                  Res(i, 1) = MayThiCong(ii, 3)
               End If
            Next
         End If
      Next
      sh.[T2].Resize(UBound(Res), UBound(Res, 2)) = Res
   End If
Next
End Sub
 
Upvote 0
Em nghĩ không dùng Dic có vẻ gọn hơn. Không biết là em có thiếu sót gì không. Viết vui thôi chứ không test kỹ

Mã:
Sub Do_Tim_May_Thi_Cong()
Dim sh As Worksheet, MayThiCong(), sArr(), i As Long, ii As Long, Res()
With Sheets("May Thi Cong")
   MayThiCong = .Range("A2", .[A65536].End(3)).Resize(, 3).Value
End With
For Each sh In ThisWorkbook.Worksheets
   If Replace(LCase(sh.Name), " ", "") <> "maythicong" Then
      sArr = sh.Range("A2", sh.[A65536].End(3)).Resize(, 9).Value
      ReDim Res(1 To UBound(sArr), 1 To 1)
      For i = 1 To UBound(sArr)
         If sArr(i, 9) <> Empty Then
            For ii = 1 To UBound(MayThiCong)
               If sArr(i, 9) Like "*" & MayThiCong(ii, 2) & "*" Then
                  Res(i, 1) = MayThiCong(ii, 3)
               End If
            Next
         End If
      Next
      sh.[T2].Resize(UBound(Res), UBound(Res, 2)) = Res
   End If
Next
End Sub
Thầy giúp em vấn đề ẩn cột em nêu ở bài #24 ạ!
 
Upvote 0
Em nghĩ không dùng Dic có vẻ gọn hơn. Không biết là em có thiếu sót gì không. Viết vui thôi chứ không test kỹ

Mã:
Sub Do_Tim_May_Thi_Cong()
Dim sh As Worksheet, MayThiCong(), sArr(), i As Long, ii As Long, Res()
With Sheets("May Thi Cong")
   MayThiCong = .Range("A2", .[A65536].End(3)).Resize(, 3).Value
End With
For Each sh In ThisWorkbook.Worksheets
   If Replace(LCase(sh.Name), " ", "") <> "maythicong" Then
      sArr = sh.Range("A2", sh.[A65536].End(3)).Resize(, 9).Value
      ReDim Res(1 To UBound(sArr), 1 To 1)
      For i = 1 To UBound(sArr)
         If sArr(i, 9) <> Empty Then
            For ii = 1 To UBound(MayThiCong)
               If sArr(i, 9) Like "*" & MayThiCong(ii, 2) & "*" Then
                  Res(i, 1) = MayThiCong(ii, 3)
               End If
            Next
         End If
      Next
      sh.[T2].Resize(UBound(Res), UBound(Res, 2)) = Res
   End If
Next
End Sub
Lúc đầu tôi cũng không dùng Dic, nhưng có loại Máy đầm cóc, Máy đầm ... cần liệt kê không trùng.
Bài đã được tự động gộp:

Thầy ơi rất đúng ý em, em làm phiền Thầy chút xíu nữa để hoàn thiện ạ! Cột cần ẩn và hiện là những cột thuộc sheet (Nha de xe, San be tong, Ranh nuoc, Nha hieu bo, Cot co) Các cột cần ẩn, cần hiện (em tô màu xanh) trong sheet nêu trên là cột “E, F, K, L, N, O, P” và các cột từ “U đến Y
Em cám ơn Thầy, Thầy làm ơn giúp em nhé!
Tôi "bo" thêm ẩn hiện cột là làm theo yêu cầu bài #13:
"Thầy ơi! Em nhờ Thầy giúp em thêm chút xíu nữa cho hoàn thiện, Thầy giúp em ẩn những cột với điều kiện " tất cả các cột từ dòng thứ 2 trở xuống mà không có dữ liệu đều bị ẩn đi, xét trong vùng làm việc từ cột A đến cột Y."
Giờ thì bạn thay đổi yêu cầu?
Tôi hổng biết.
VN thua Hàn Quốc 1-3. Ngủ thôi!
 
Lần chỉnh sửa cuối:
Upvote 0
Lúc đầu tôi cũng không dùng Dic, nhưng có loại Máy đầm cóc, Máy đầm ... cần liệt kê không trùng.
Bài đã được tự động gộp:


Tôi "bo" thêm ẩn hiện cột là làm theo yêu cầu bài #13:
"Thầy ơi! Em nhờ Thầy giúp em thêm chút xíu nữa cho hoàn thiện, Thầy giúp em ẩn những cột với điều kiện " tất cả các cột từ dòng thứ 2 trở xuống mà không có dữ liệu đều bị ẩn đi, xét trong vùng làm việc từ cột A đến cột Y."
Giờ thì bạn thay đổi yêu cầu?
Tôi hổng biết.
VN thua Hàn Quốc 1-3. Ngủ thôi!
Hi, Thầy cố giúp em nhé! lần sau Việt Nam sẽ thắng Thầy ơi!
 
Upvote 0
Thầy giúp em vấn đề ẩn cột em nêu ở bài #24 ạ!
Bạn nên tập viết code theo yêu cầu của riêng mình
Mình viết mẫu cho bạn 2 code ẩn hiện cột trong sheet hiện hành. Bạn có thể tự phát triển theo ý riêng
Ai cũng có việc phải làm để kiếm cơm nên không thể giúp mình mãi đâu
Mã:
Sub An()
Union([E1], [F1], [K1:L1]).EntireColumn.Hidden = True
End Sub
Sub Hien()
Union([E1], [F1], [K1], [L1]).EntireColumn.Hidden = False
End Sub
 
Upvote 0
Bạn nên tập viết code theo yêu cầu của riêng mình
Mình viết mẫu cho bạn 2 code ẩn hiện cột trong sheet hiện hành. Bạn có thể tự phát triển theo ý riêng
Ai cũng có việc phải làm để kiếm cơm nên không thể giúp mình mãi đâu
Mã:
Sub An()
Union([E1], [F1], [K1:L1]).EntireColumn.Hidden = True
End Sub
Sub Hien()
Union([E1], [F1], [K1], [L1]).EntireColumn.Hidden = False
End Sub
Dạ em cám ơn Thầy ạ!
 
Upvote 0
Web KT
Back
Top Bottom