Giúp em vấn đề" dãn dòng, ẩn dòng, tự động Fit chiều cao dòng"

Liên hệ QC

dangky47h

Thành viên thường trực
Tham gia
4/9/17
Bài viết
341
Được thích
41
Giới tính
Nam
Khi điền các mã vào các ô, thì dòng tương ứng với ô đó sẽ có tác dụng:
1.mã D:n (D=Dãn dòng; Những dòng có mã này sẽ tự động giãn dòng, giá trị n là giá trị mặc định, khi không cần giãn dòng sẽ đưa chiều cao dòng về giá trị đó)
2. mã A (Dòng nào có mã A sẽ bị ẩn)
3. mã F:n (F=Fit; Tự động tính lại chiều cao của dòng khi đã gộp ô trong dòng, với n (Từ 0 đến Max HeightRow) là chiều cao của
Dòng khi không cần Fit sẽ đưa chiều cao dòng đó về giá trị n, nhập F mã không có đối số đi kèm thì sẽ = AutoFit)
4. mã M:n (Đối với những dòng có Merger sau khi AutoFit sẽ cộng thêm vào chiều cao dòng giá trị n)

E xin cám ơn Ạ!
 
Khi điền các mã vào các ô, thì dòng tương ứng với ô đó sẽ có tác dụng:
1.mã D:n (D=Dãn dòng; Những dòng có mã này sẽ tự động giãn dòng, giá trị n là giá trị mặc định, khi không cần giãn dòng sẽ đưa chiều cao dòng về giá trị đó)
2. mã A (Dòng nào có mã A sẽ bị ẩn)
3. mã F:n (F=Fit; Tự động tính lại chiều cao của dòng khi đã gộp ô trong dòng, với n (Từ 0 đến Max HeightRow) là chiều cao của
Dòng khi không cần Fit sẽ đưa chiều cao dòng đó về giá trị n, nhập F mã không có đối số đi kèm thì sẽ = AutoFit)
4. mã M:n (Đối với những dòng có Merger sau khi AutoFit sẽ cộng thêm vào chiều cao dòng giá trị n)

E xin cám ơn Ạ!
1/ Tiêu đề nên là hỗ trợ về "Tự động dãn dòng, ẩn dòng, Fit chiều cao dòng".
2/ Mấy cái vụ tự động thì phải VBA chứ (sao đăng ở đây).
3/ Nên đính kèm File nêu rõ cần chỗ nào chứ không thể chung chung, quơ 1 đống vô những chỗ không cần, chắc đơ máy.
 
D:n : cellCode.EntireRow.Height=getStringBySplit(cellCode,":")+0
A : cellCode.hidden=true
F:n : if getStringBySplit(cellCode,":")="" then cellCode.EntireRow.AutoFit else cellCode.EntireRow.Height=getStringBySplit(cellCode,":")+0 endif
M:n : cellCode.EntireRow.AutoFit: cellCode.EntireRow.Height=cellCode.EntireRow.Height+getStringBySplit(cellCode,":") '+n để làm chi nhỉ

Public Function getStringBySplit(ByVal xau As String, ByVal kytu_ngan_cach As String, ByVal vitri As Integer) As Variant
Dim v As String
getStringBySplit= ""
If InStr(1, xau, kytu_ngan_cach) = 0 Then
getStringBySplit = ""
Else
t1 = Split(xau, kytu_ngan_cach)
getStringBySplit = t1(vitri - 1)
End If
End Function
 
1/ Tiêu đề nên là hỗ trợ về "Tự động dãn dòng, ẩn dòng, Fit chiều cao dòng".
2/ Mấy cái vụ tự động thì phải VBA chứ (sao đăng ở đây).
3/ Nên đính kèm File nêu rõ cần chỗ nào chứ không thể chung chung, quơ 1 đống vô những chỗ không cần, chắc đơ máy.
Vâng, em mới vào nên cũng chưa rõ lắm, cám ơn anh
Bài đã được tự động gộp:

D:n : cellCode.EntireRow.Height=getStringBySplit(cellCode,":")+0
A : cellCode.hidden=true
F:n : if getStringBySplit(cellCode,":")="" then cellCode.EntireRow.AutoFit else cellCode.EntireRow.Height=getStringBySplit(cellCode,":")+0 endif
M:n : cellCode.EntireRow.AutoFit: cellCode.EntireRow.Height=cellCode.EntireRow.Height+getStringBySplit(cellCode,":") '+n để làm chi nhỉ

Public Function getStringBySplit(ByVal xau As String, ByVal kytu_ngan_cach As String, ByVal vitri As Integer) As Variant
Dim v As String
getStringBySplit= ""
If InStr(1, xau, kytu_ngan_cach) = 0 Then
getStringBySplit = ""
Else
t1 = Split(xau, kytu_ngan_cach)
getStringBySplit = t1(vitri - 1)
End If
End Function
Em Cám ơn thầy!
 
D:n : cellCode.EntireRow.Height=getStringBySplit(cellCode,":")+0
A : cellCode.hidden=true
F:n : if getStringBySplit(cellCode,":")="" then cellCode.EntireRow.AutoFit else cellCode.EntireRow.Height=getStringBySplit(cellCode,":")+0 endif
M:n : cellCode.EntireRow.AutoFit: cellCode.EntireRow.Height=cellCode.EntireRow.Height+getStringBySplit(cellCode,":") '+n để làm chi nhỉ

Public Function getStringBySplit(ByVal xau As String, ByVal kytu_ngan_cach As String, ByVal vitri As Integer) As Variant
Dim v As String
getStringBySplit= ""
If InStr(1, xau, kytu_ngan_cach) = 0 Then
getStringBySplit = ""
Else
t1 = Split(xau, kytu_ngan_cach)
getStringBySplit = t1(vitri - 1)
End If
End Function
Em chạy code nhưng báo lỗi thầy ạ!cd.jpg
 
Em chạy code nhưng báo lỗi thầy ạ!View attachment 198705
Bạn chạy code vậy là toi mất rồi, khổ cho người viết code. Bởi vậy kinh nghiệm hỏi bài là nên có file mẫu sát với thực tế, người giúp nhìn vào dễ viết code khi bạn được trợ giúp sẽ dễ hiểu hơn. Giống như bác @be09 hay nói, có bao giờ bạn đi khám bệnh mà chụp cái hình của bạn và nhờ bạn của bạn đưa cho bác sĩ khám và chữa bệnh bao giờ chưa?
 
Bạn chạy code vậy là toi mất rồi, khổ cho người viết code. Bởi vậy kinh nghiệm hỏi bài là nên có file mẫu sát với thực tế, người giúp nhìn vào dễ viết code khi bạn được trợ giúp sẽ dễ hiểu hơn. Giống như bác @be09 hay nói, có bao giờ bạn đi khám bệnh mà chụp cái hình của bạn và nhờ bạn của bạn đưa cho bác sĩ khám và chữa bệnh bao giờ chưa?
Vâng, e tải file lên mong các thầy góp ý giúp em ạ!
 

File đính kèm

Vâng, e tải file lên mong các thầy góp ý giúp em ạ!
Trong file của bạn chổ nào thể hiện mã D:n, mã F:n... đâu. Chú ý trên diễn đàn này anh em thành viên làm rất nhiều ngành nghề nên phải phải giải thích chi tiết (Nhớ giải thích cho người khác biết chứ không phải giải thích cho bản thân hiểu). Bạn quăn cái file lên chẳng giải thích nào, khi nào thay đổi, khi nào dãn dòng.... Tôi thuộc dạng luôn luôn lắng nghe nhưng lâu lâu mới hiểu, vì vậy nhìn file bạn gửi tôi chỉ có cười và cười thôi.
 
Vâng, e tải file lên mong các thầy góp ý giúp em ạ!
Mà sao lại phải quy định mã vậy bạn. Bạn tạo cột phụ đánh dấu các dòng cần Fix, ẩn hoặc hiện. Khi nào có dữ liệu thì nó tự động hiện và thực hiện công việc Fix dòng thôi
 
Trong file của bạn chổ nào thể hiện mã D:n, mã F:n... đâu. Chú ý trên diễn đàn này anh em thành viên làm rất nhiều ngành nghề nên phải phải giải thích chi tiết (Nhớ giải thích cho người khác biết chứ không phải giải thích cho bản thân hiểu). Bạn quăn cái file lên chẳng giải thích nào, khi nào thay đổi, khi nào dãn dòng.... Tôi thuộc dạng luôn luôn lắng nghe nhưng lâu lâu mới hiểu, vì vậy nhìn file bạn gửi tôi chỉ có cười và cười thôi.
Dạ! các mã đó em để ở cột A hi.jpg
Bài đã được tự động gộp:

Mà sao lại phải quy định mã vậy bạn. Bạn tạo cột phụ đánh dấu các dòng cần Fix, ẩn hoặc hiện. Khi nào có dữ liệu thì nó tự động hiện và thực hiện công việc Fix dòng thôi
Ui vậy thì tốt quá, có cái e chưa biết ý tưởng đó hi, Có thể giúp e qua file này được k ạ!
 

File đính kèm

Dạ
Dạ! e chưa hiểu rõ ạ, A (Chị) có thể thêm luôn giúp em được không ạ!
Theo mình hiểu thì cái Sheet("Thong tin") là cái Sheet khai báo ban đầu và các biên bản hoặc chứng từ liên quan sẽ lấy từ Sheet này. Vậy nhứng cái kia mới cần ẩn, hiện hoặc là điều chỉnh chiều cao dòng chứ đâu có làm trên Sheet khai báo
 
Em chạy code nhưng báo lỗi thầy ạ!View attachment 198705

Type A1:A34 vao cell i1

Sub FormatCond()
Dim condClls As Range
Dim cellCode As Range
Set condClls = Range([i1])

Range([i1]).EntireRow.Hidden=false
Range([i1]).EntireRow.AutoFit

'MsgBox condClls.Address
For Each cellCode In condClls
'MsgBox cellCode.Address
If InStr(1, cellCode.Value, "D") <> 0 Then
cellCode.EntireRow.RowHeight = getStringBySplit(cellCode, ":", 2) + 0

ElseIf InStr(1, cellCode, "A") <> 0 Then
cellCode.EntireRow.Hidden = True
ElseIf InStr(1, cellCode, "F") <> 0 Then
If getStringBySplit(cellCode, ":", 2) = "" Then
cellCode.EntireRow.AutoFit
Else
cellCode.EntireRow.RowHeight = getStringBySplit(cellCode, ":", 2) + 0
End If
ElseIf InStr(1, cellCode, "M") <> 0 Then
cellCode.EntireRow.AutoFit: cellCode.EntireRow.RowHeight = cellCode.EntireRow.RowHeight + getStringBySplit(cellCode, ":", 2) '+n d? làm chi nh?

End If

Next cellCode
End Sub


Public Function getStringBySplit(ByVal xau As String, ByVal kytu_ngan_cach As String, ByVal vitri As Integer) As Variant
Dim v As String
getStringBySplit = ""
If InStr(1, xau, kytu_ngan_cach) = 0 Then
getStringBySplit = ""
Else
t1 = Split(xau, kytu_ngan_cach)
getStringBySplit = t1(vitri - 1)
End If
End Function
 
Theo mình hiểu thì cái Sheet("Thong tin") là cái Sheet khai báo ban đầu và các biên bản hoặc chứng từ liên quan sẽ lấy từ Sheet này. Vậy nhứng cái kia mới cần ẩn, hiện hoặc là điều chỉnh chiều cao dòng chứ đâu có làm trên Sheet khai báo
Không ạ! các sheet đều như nhau, đây chỉ là em ví dụ ạ! để khi làm biên bản nghiệm thu em sẽ điền các mã đó vào các cột để nội dung chữ được link sang sẽ được khớp với dòng, và dòng nào không có nội dung sẽ bị ẩn đi đó ạ!
Bài đã được tự động gộp:

Type A1:A34 vao cell i1

Sub FormatCond()
Dim condClls As Range
Dim cellCode As Range
Set condClls = Range([i1])

Range([i1]).EntireRow.Hidden=false
Range([i1]).EntireRow.AutoFit

'MsgBox condClls.Address
For Each cellCode In condClls
'MsgBox cellCode.Address
If InStr(1, cellCode.Value, "D") <> 0 Then
cellCode.EntireRow.RowHeight = getStringBySplit(cellCode, ":", 2) + 0

ElseIf InStr(1, cellCode, "A") <> 0 Then
cellCode.EntireRow.Hidden = True
ElseIf InStr(1, cellCode, "F") <> 0 Then
If getStringBySplit(cellCode, ":", 2) = "" Then
cellCode.EntireRow.AutoFit
Else
cellCode.EntireRow.RowHeight = getStringBySplit(cellCode, ":", 2) + 0
End If
ElseIf InStr(1, cellCode, "M") <> 0 Then
cellCode.EntireRow.AutoFit: cellCode.EntireRow.RowHeight = cellCode.EntireRow.RowHeight + getStringBySplit(cellCode, ":", 2) '+n d? làm chi nh?

End If

Next cellCode
End Sub


Public Function getStringBySplit(ByVal xau As String, ByVal kytu_ngan_cach As String, ByVal vitri As Integer) As Variant
Dim v As String
getStringBySplit = ""
If InStr(1, xau, kytu_ngan_cach) = 0 Then
getStringBySplit = ""
Else
t1 = Split(xau, kytu_ngan_cach)
getStringBySplit = t1(vitri - 1)
End If
End Function
E có coppy mã code Thầy hướng dẫn và chạy thì báo như sau ạ!
E có đính kèm file đã gắn code ở dưới, Thầy xem giúp e.
rt.jpg
 

File đính kèm

Lần chỉnh sửa cuối:
Vâng, e tải file lên mong các thầy góp ý giúp em ạ!
Sau một hồi quần thảo các thành viên tháo mồ hôi hột, bạn đưa cái File với sheet Form (cái này dùng để nhập liệu), còn sheet theo dõi và cái biên bản nghiệm thu đâu không đưa luôn?

Góp ý cho bạn thế này:
1/ Cần làm cái gì thì nêu cụ thể cái cần để các thành viên trợ giúp cho bạn hướng đi hoặc đưa ra giải pháp hợp lý nhất.
2/ Chứ đừng bắt người khác đi theo cái suy nghĩ của mình vừa tốn công, vừa tốn sức của mọi người như qua 16 bài viết thì tôi thấy nội dung cần (như tiêu đề) là trật đường ray rồi.
3/ Nếu làm biên bản nghiệm thu sao không đưa cái mẫu lên (cái này mới cần co giản dòng).
4/ Nội dung như bài của Link này (mới cần co giản dòng nè).
https://www.giaiphapexcel.com/diendan/threads/chèn-nội-dung-vào-cuối-trang-theo-điều-kiện.135840/
 
Lần chỉnh sửa cuối:
Sau một hồi quần thảo các thành viên tháo mồ hôi hột, bạn đưa cái File với sheet Form (cái này dùng để nhập liệu), còn sheet theo dõi và cái biên bản nghiệm thu đâu không đưa luôn?

Góp ý cho bạn thế này:
1/ Cần làm cái gì thì nêu cụ thể cái cần để các thành viên trợ giúp cho bạn hướng đi hoặc đưa ra giải pháp hợp lý nhất.
2/ Chứ đừng bắt người khác đi theo cái suy nghĩ của mình vừa tốn công, vừa tốn sức của mọi người như qua 16 bài viết thì tôi thấy nội dung cần (như tiêu đề) là trật đường ray rồi.
3/ Nếu làm biên bản nghiệm thu sao không đưa cái mẫu lên (cái này mới cần co giản dòng).
4/ Nội dung như bài của Link này (mới cần co giản dòng nè).
https://www.giaiphapexcel.com/diendan/threads/chèn-nội-dung-vào-cuối-trang-theo-điều-kiện.135840/
Vâng, Em cám ơn thầy!
 
Không ạ! các sheet đều như nhau, đây chỉ là em ví dụ ạ! để khi làm biên bản nghiệm thu em sẽ điền các mã đó vào các cột để nội dung chữ được link sang sẽ được khớp với dòng, và dòng nào không có nội dung sẽ bị ẩn đi đó ạ!
Bài đã được tự động gộp:


E có coppy mã code Thầy hướng dẫn và chạy thì báo như sau ạ!
E có đính kèm file đã gắn code ở dưới, Thầy xem giúp e.
View attachment 198720
Hay là như vầy á
 

File đính kèm

Web KT

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

Back
Top Bottom