Cần giúp đỡ viết code VBA ẩn dòng trống ko có dữ liệu và co dòng vừa trong trang >> (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

sửa lại cho giống bài #34 100% thì mới chạy được . lưu ý bài #34 mới được chỉnh sửa lại cho phù hợp (sửa lúc 4h30)
sheet nào đó có tên là 11 thì trong Sheet1 phải ghi lại tên của nó là '11

lỗi điền tên sheet được rùi bạn à (cho ' vào trước 11 để nó thành text)
còn bài #34 code cũ của nó chạy ngon rùi mà, mình vừa update code mới lúc 16h30 thì lỗi ko chạy được
 
Lần chỉnh sửa cuối:
Phiền bạn 1 chút nữa: ở code trước muốn chạy all sheet trong file phải sửa như nào nhỉ:
giúp mình nốt cái này đi

Sub hidedongpro()
Dim lr As Long, lp As Integer, headRowHei As Double, pageHei As Double, rowCount As Integer, tRowHei As Double
Dim ws As Worksheet
Set ws = ActiveSheet
Application.ScreenUpdating = True
With ws
.Range([b13], [b198]).EntireRow.Hidden = False
lr = Application.Match(1000, .Range("b13:b198"))
.Rows("13:300").RowHeight = 14
If TypeName(lr) = "Error" Then Exit Sub
If Val(.Range("D"
 
Lần chỉnh sửa cuối:
lỗi điền tên sheet được rùi bạn à (cho ' vào trước 11 để nó thành text)
còn bài #34 code cũ của nó chạy ngon rùi mà, mình vừa update code mới lúc 16h30 thì lỗi ko chạy được

không chạy được thì đem file đó lên đây . tôi không phải tôn ngộ không mà đi chữa bệnh từ xa
code bạn trích dẫn chỉ chạy được khi bảng in kết thúc tại dòng 116 . tôi không có hứng thú đi sửa cách cũ khi đã có cách khác tốt hơn
 
không chạy được thì đem file đó lên đây . tôi không phải tôn ngộ không mà đi chữa bệnh từ xa
code bạn trích dẫn chỉ chạy được khi bảng in kết thúc tại dòng 116 . tôi không có hứng thú đi sửa cách cũ khi đã có cách khác tốt hơn
hay đấy! mình thik công nghệ cao
Module1 nhé
 
Lần chỉnh sửa cuối:
tôi bê nguyên bài #34 bỏ vào đây và không thấy có vấn đề gì ?
 

File đính kèm

cho mình xem vô tí nha
Sub chonvunginAZ()
ActiveSheet.PageSetup.PrintArea = ("A1:z" & [A65536].End(xlUp).Row) 'vung in
End Sub

cái này cũng chọn dc vùng in nè chọn từ cột a đến z điểm cuối cùng của vùng in là dòng cuối cùng chứa dữ liệu của cột a

còn ẩn dòng dữ liệu trống #8 trong WKT
http://webketoan.com/threads/52817-an-hien-dong-trong-bang-vba-trong-excel/
bác xem hình này. fage 1 nó bị chua làm 2 trang. bác có thể làm cho nó tự sướng là tự chỉnh luôn không? kiểu như mình dùng chuột kéo sang phải để cho vừa trang luôn ấy. làm vậy thì văn bản và chữ sẽ bị nhỏ lại
 

File đính kèm

  • chart.jpg
    chart.jpg
    103.9 KB · Đọc: 27
không biết bạn còn trẻ hay đã già mà người khác nói câu trước câu sau là bạn quên luôn
vậy tôi nhắc lại lần nữa
ùa! xin lỗi..
Mình có 1 file khác muốn chỉnh cho code chạy theo file đó chiều cột khác 1 chút bạn chỉ cho mình thay đổi như thông số nào trong code với, bạn bôi mầu ở vị trí thay đổi nhé
--------------------------
Sub fixdongsheetlist()
Dim headRowHei As Double, pageHei As Double, tRowHei As Double, shNames As Range
Dim ws As Worksheet, r As Long, lrPrint As Long, arr As Variant, lrCT As Long, frCT As Long, signRow As Long
Application.ScreenUpdating = False
Set shNames = Worksheets("Danh Sach Fix").Range("B1:B"
 
Lần chỉnh sửa cuối:
ùa! xin lỗi..
Mình có 1 file khác muốn chỉnh cho code chạy theo file đó chiều cột khác 1 chút bạn chỉ cho mình thay đổi như thông số nào trong code với, bạn bôi mầu ở vị trí thay đổi nhé
--------------------------
Sub fixdongsheetlist()
Dim headRowHei As Double, pageHei As Double, tRowHei As Double, shNames As Range
Dim ws As Worksheet, r As Long, lrPrint As Long, arr As Variant, lrCT As Long, frCT As Long, signRow As Long
Application.ScreenUpdating = False
Set shNames = Worksheets("Danh Sach Fix").Range("B1:B" & Worksheets("Danh Sach Fix").Range("B50000").End(xlUp).Row)
For Each ws In Worksheets
If TypeName(Application.Match(ws.Name, shNames, 0)) <> "Error" Then
With ws
ws.Activate
lrPrint = .[B50000].End(xlUp).Row
.Range("A1:A" & lrPrint).EntireRow.Hidden = False
arr = .Range("B1:D" & lrPrint).Value
For r = UBound(arr) To 1 Step -1
If WorksheetFunction.Trim(arr(r, 1)) <> "" And Not IsNumeric(arr(r, 1)) Then signRow = r
If Val(arr(r, 1)) <> 0 Or Val(arr(r, 3)) <> 0 Then
lrCT = r
Exit For
End If
Next
.PageSetup.PrintArea = "B1:G" & (lrPrint + 200)
ActiveWindow.View = xlPageBreakPreview
frCT = .Rows(.PageSetup.PrintTitleRows).Row + .Rows(.PageSetup.PrintTitleRows).Rows.Count
.Rows(frCT & ":" & lrPrint).RowHeight = 14
If lrCT < signRow - 1 Then
.Rows((lrCT + 1) & ":" & (signRow - 1)).Hidden = True
End If
For r = 1 To .HPageBreaks.Count Step 1
If lrCT - 4 < .HPageBreaks(r).Location.Row And lrPrint >= .HPageBreaks(r).Location.Row Then
headRowHei = .Rows(.PageSetup.PrintTitleRows).Height
pageHei = 11.7 * 72 - .PageSetup.TopMargin - .PageSetup.BottomMargin + r + 2
tRowHei = (r * pageHei - r * headRowHei - .Range("A1:A" & _
(.Rows(.PageSetup.PrintTitleRows).Row - 1)).Height) / (lrCT - frCT - 4)
.Rows(frCT & ":" & lrCT).RowHeight = tRowHei
Exit For
End If
Next
.PageSetup.PrintArea = "B1:G" & lrPrint
ActiveWindow.View = xlNormalView
End With
End If
Next
Application.ScreenUpdating = True
End Sub
tham khảo cách của mình nha b
dán code này vào
sheet 3- chỉ áp dụng cho sheet 3- muốn sheet khác thì dán nó vào- chỉ cần nhấn đến sheet 3 thì nó tự fix ko cần nhấn fix nữa
'__________________________________________________
Public Check As Boolean
Option Explicit
Private Sub Worksheet_Activate()
Call hidedongpro
ActiveSheet.PageSetup.PrintArea = ("B1:J" & [b65536].End(xlUp).Row)'<= chọn vùng in từ B1 đến dòng cuối cùng có dữ liệu ở cột B, theo file của b thì nó lấy tới chữ ký ấy, số cột là từ B tới J
End Sub
 
Lần chỉnh sửa cuối:
tham khảo cách của mình nha b
dán code này vào
sheet 3- chỉ áp dụng cho sheet 3- muốn sheet khác thì dán nó vào- chỉ cần nhấn đến sheet 3 thì nó tự fix ko cần nhấn fixx nữa
Public Check As Boolean
Option Explicit
Private Sub Worksheet_Activate()
Call hidedongpro
ActiveSheet.PageSetup.PrintArea = ("B1:J"
 
Lần chỉnh sửa cuối:
tham khảo cách của mình nha b
dán code này vào
sheet 3- chỉ áp dụng cho sheet 3- muốn sheet khác thì dán nó vào- chỉ cần nhấn đến sheet 3 thì nó tự fix ko cần nhấn fixx nữa
Public Check As Boolean
Option Explicit
Private Sub Worksheet_Activate()
Call hidedongpro
ActiveSheet.PageSetup.PrintArea = ("B1:J" & [b65536].End(xlUp).Row)'<= chọn vùng in từ B1 đến dòng cuối cùng có dữ liệu ở cột B, theo file của b thì nó lấy tới chữ ký ấy, số cột là từ B tới J
End Sub

cám ơn bạn . cách của bạn rất hay và ngắn gọn thế mà mình không nghĩ ra . mong bạn bớt chút thời gian giúp chủ topic tháo gỡ tí vướng mắc còn lại nhé . mình xin tạm biệt ở đây vậy
 
Cảm ơn bạn Doveandrose nhiều lắm!
 
Lần chỉnh sửa cuối:
Bạn langtuchungtinh360! giúp mình bài #49 được không, mình thay các thông số vào toàn bị lỗi không chạy được
 
Lần chỉnh sửa cuối:
cám ơn bạn . cách của bạn rất hay và ngắn gọn thế mà mình không nghĩ ra . mong bạn bớt chút thời gian giúp chủ topic tháo gỡ tí vướng mắc còn lại nhé . mình xin tạm biệt ở đây vậy
BÁC CHƯA ĐI ĐC ĐÂU. BÁC PHẢI QUA ĐÂY GIÚP EM NỮA CHỨ
http://www.giaiphapexcel.com/forum/...ro-4-để-lấy-dữ-liệu-từ-1-file-đang-đóng/page3
TRANG NÀY NGOÀI LỀ NHA. EM NHỜ BÁC DOVEANDROSE
 
BÁC CHƯA ĐI ĐC ĐÂU. BÁC PHẢI QUA ĐÂY GIÚP EM NỮA CHỨ
http://www.giaiphapexcel.com/forum/...ro-4-để-lấy-dữ-liệu-từ-1-file-đang-đóng/page3
TRANG NÀY NGOÀI LỀ NHA. EM NHỜ BÁC DOVEANDROSE
Mình làm phiền nhiều quá, cậu ấy bỏ đi rùi.. hixx bài #49 ko ai giải quyết hộ rùi, code sài sang file mới nhiều cột hơn thì chẳng biết chỉnh ở đâu, vào chỉnh thì bị lỗi linh tinh.. hixxx
 
Lần chỉnh sửa cuối:
BÁC CHƯA ĐI ĐC ĐÂU. BÁC PHẢI QUA ĐÂY GIÚP EM NỮA CHỨ
http://www.giaiphapexcel.com/forum/...ro-4-để-lấy-dữ-liệu-từ-1-file-đang-đóng/page3
TRANG NÀY NGOÀI LỀ NHA. EM NHỜ BÁC DOVEANDROSE

trình độ của tôi còn thấp kém . vấn đề của bạn quá sức đối với tôi => không làm nỗi . bạn cần liên lạc với người trong #31 của topic mà bạn trích dẫn đó . người đó rất chuyên nghiệp sẽ giúp bạn giải quyết nhanh thôi .
 
Mình làm phiền nhiều quá, cậu ấy bỏ đi rùi.. hixx bài #49 ko ai giải quyết hộ rùi, code sài sang file mới nhiều cột hơn thì chẳng biết chỉnh ở đâu, vào chỉnh thì bị lỗi linh tinh.. hixxx
#49 t có trả lời rồi đó b. ko giải quyết đc gì à.
b tham khảo thêm code ẩn dữ liệu này nữa nhé
__________________________
Option Explicit
Sub HiddRows()'<=ẩn
Range([a1].End(xlDown).Offset(1), [b2].End(xlDown).Offset(, -1)).Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub


Sub UnhiddenRows()'<=bỏ ẩn
Sheet1.UsedRange.EntireRow.Hidden = False
End Sub
__________________________________
t xin giải thích thêm trong tầm hỉu biết của t thôi nha
ở code thứ nhất, chữ a1 đó có nghĩa là
ví dụ cho dễ hiểu he
bạn nhập từ ô A1 đến A5 xong từ A7 đến A10 nhập cái gì cũng đc
ở ô B1 đến B10 bạn nhập xàm xàm hết luôn
xong chạy code đi là hiểu. tức là nó sẽ xét xem ở cột A có ô nào trống không rồi nó ẩn đi.
nhấn f8 chạy từ từ nha, rồi tùy chính hai chữ a1 b2 đó theo file của bạn.
cái chữ b2 thì mình nghĩ là nó so sánh với cột B.
code mình tìm đc bên wedketoan
với mình hok biết gì về VBA cả nên giải thích có sai bạn thông cảm
 
trình độ của tôi còn thấp kém . vấn đề của bạn quá sức đối với tôi => không làm nỗi . bạn cần liên lạc với người trong #31 của topic mà bạn trích dẫn đó . người đó rất chuyên nghiệp sẽ giúp bạn giải quyết nhanh thôi .

hình như topic đó tôi trả lời, sao lại kéo tôi dzô đây bạn?
ở topic đó tôi bỏ của chạy lấy người rồi mà............hehehehe
===========
@ lãng tử chung tình
nói về macro 4 thì chắc là sư phụ NDU là số dzách
về ADO thì có lẻ bác HaiLuaMenTay
còn các bậc thẩy "mai danh ẩn tích" thì tui hỏng có biết
tôi cũng có mon men học ADO, nhưng hình nhưng ai rành Acess hay SQL thì dể tiếp cận hơn, dzọc một thời gian tôi đành bỏ cuộc
macro4 thì có vẻ hơi cổ, thấy ít người chơi
bạn mới tập tành code, tôi nghĩ đừng dzọc cao quá vậy, cứ mở file lấy số liệu rồi đóng lại là chắc ăn.
còn muốn nhờ mọi người làm giúp, rồi cứ vậy mà xài,thì bạn nên mở một topic, nêu rỏ ràng yêu cầu, file đầy đủ thì chắc mấy vị đó sẻ nhảy vào giúp bạn thôi
thân
 
Web KT

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

Back
Top Bottom