nếu vậy thì code chỉ vầy thôi là cho bạn ấy sự lựa chọn trang dọc hay ngang rồi thầy. có gì đâu mà không áp dụng được.
hôm nay tạm khỏe lại rồi. bạn rùa con xem ok chưa he
Mã:
Private Sub cmd_in6_Click()
Dim Arr, rng As Range, r As Long, c As Long
Dim a As Byte
r = Worksheets("Bao cao").Range("A65536").End(xlUp).Row 'chon dong cuoi cung cua cot A
With Worksheets("Bao cao").Range("A5:G" & r) 'lam viec voi vung "A5:G" & r
.ClearContents 'xoa du lieu cu
'xoa vien thi chi 1 dong nhu vay duoc roi
.Borders.LineStyle = xlNone 'xoa ke vien
End With
Worksheets("Bao cao").Range("D2").Value = cb_thang6.Value 'dien gia tri cua cb_thanng 6 xuong o D2 Sheet BaoCao
Arr = ListBox7.List 'gan mang bang gia tri cua listbox7
ReDim Preserve Arr(LBound(Arr) To UBound(Arr), LBound(Arr, 2) To ListBox7.ColumnCount - 1) 'khai bao lai mang giu nguyen gia tri cu
For r = LBound(Arr) To UBound(Arr) ' vong lap tu dau den cuoi bang
For c = LBound(Arr, 2) + 3 To UBound(Arr, 2) 'vong lap tu cot dau den cot cuoi cua bang
Arr(r, c) = CDbl(Arr(r, c)) 'chuyen gia tri cua mang sang kieu double
Next c
Next r
With Worksheets("Bao cao").Range("A5").Resize(UBound(Arr) - LBound(Arr) + 1, UBound(Arr, 2) - LBound(Arr, 2) + 1) ' lam viec voi vung moi
.Value = Arr ' dien gia tri xuong
'ke bang thi chi 1 dong nhu vay duoc roi
.Borders.LineStyle = xlContinuous 'ke bang
End With
'Worksheets("Bao cao").Range("A2").Resize(UBound(Arr) - LBound(Arr) + 4, UBound(Arr, 2) - LBound(Arr, 2) + 1).Columns.AutoFit'chinh lai chieu cao dong
' in bao cao
With Worksheets("Bao cao").PageSetup 'dinh dang trang tinh
a = MsgBox("Chon trang ngang hay doc" & ChrW(10) & "YES: Trang doc" & "NO: Trang ngang", vbYesNo, "Thông báo") 'lua chon trang ngang hoac doc
If a = vbYes Then
.Orientation = xlPortrait ' doc
ElseIf a = vbNo Then
.Orientation = xlLandscape ' ngang
End If
'gan tieu de ngang va doc
.PrintTitleRows = "$1:$4"
.PrintTitleColumns = "$A:$G"
End With
Worksheets("Bao cao").Range("A1:G" & ListBox7.ListCount + 4).PrintOut 'xuat lenh in tai vung A1:G xxxx
End Sub
Xin các AC giúp em chổ Sub Select_abc(), khi chọn "CanCel" thì thoát Sub Select_abc () đồng thời cũng thoát luôn sub cmd_in6_Click(), em thử thế này mà không được:
Mã:
Private Sub Select_abc()
Dim a As String
a = MsgBox("Chon trang ngang hay doc", vbYesNoCancel, "Thong bao")
If a = vbYes Then
ActiveSheet.PageSetup.Orientation = xlPortrait ' doc
'ActiveWindow.SelectedSheets.PrintOut
ActiveWindow.SelectedSheets.PrintPreview
ElseIf a = vbNo Then
ActiveSheet.PageSetup.Orientation = xlLandscape ' ngang
'ActiveWindow.SelectedSheets.PrintOut
ActiveWindow.SelectedSheets.PrintPreview
Exit_cmd_in6_Click: <-------them cho nay
Exit Sub
End If
End Sub
Sub Select_abc()
Dim a As String
a = MsgBox("Chon trang ngang hay doc", vbYesNoCancel, "Thong bao")
If a <> vbYes And a <> vbNo Then
Exit Sub
ElseIf a = vbYes Then
ActiveSheet.PageSetup.Orientation = xlPortrait ' doc
'ActiveWindow.SelectedSheets.PrintOut
ActiveWindow.SelectedSheets.PrintPreview
ElseIf a = vbNo Then
ActiveSheet.PageSetup.Orientation = xlLandscape ' ngang
'ActiveWindow.SelectedSheets.PrintOut
ActiveWindow.SelectedSheets.PrintPreview
Exit Sub
End If
End Sub
Nếu đưa điều kiện đầu tiên để xử lý khi chọn Cancel thì được không,
Sub Select_abc()
Dim a As String
a = MsgBox("Chon trang ngang hay doc", vbYesNoCancel, "Thong bao")
If a <> vbYes And a <> vbNo Then
Exit Sub
ElseIf a = vbYes Then
ActiveSheet.PageSetup.Orientation = xlPortrait ' doc
'ActiveWindow.SelectedSheets.PrintOut
ActiveWindow.SelectedSheets.PrintPreview
ElseIf a = vbNo Then
ActiveSheet.PageSetup.Orientation = xlLandscape ' ngang
'ActiveWindow.SelectedSheets.PrintOut
ActiveWindow.SelectedSheets.PrintPreview
Exit Sub
End If
End Sub
Nếu đưa điều kiện đầu tiên để xử lý khi chọn Cancel thì được không,
đâu cần viết dài dòng thế bạn
chỉ cần vầy được rồi
Mã:
if a = 6 then' YES
elseif a = 7 then' NO
else'truong hop con lai CANCEL = 2
end if
nếu bạn ấy muốn thêm cancel nữa thì code sẽ vầy. không đọc bài nên thiếu yêu cầu
Mã:
Private Sub cmd_in6_Click()
Dim Arr, rng As Range, r As Long, c As Long
Dim a As Byte
r = Worksheets("Bao cao").Range("A65536").End(xlUp).Row 'chon dong cuoi cung cua cot A
With Worksheets("Bao cao").Range("A5:G" & r) 'lam viec voi vung "A5:G" & r
.ClearContents 'xoa du lieu cu
'xoa vien thi chi 1 dong nhu vay duoc roi
.Borders.LineStyle = xlNone 'xoa ke vien
End With
Worksheets("Bao cao").Range("D2").Value = cb_thang6.Value 'dien gia tri cua cb_thanng 6 xuong o D2 Sheet BaoCao
Arr = ListBox7.List 'gan mang bang gia tri cua listbox7
ReDim Preserve Arr(LBound(Arr) To UBound(Arr), LBound(Arr, 2) To ListBox7.ColumnCount - 1) 'khai bao lai mang giu nguyen gia tri cu
For r = LBound(Arr) To UBound(Arr) ' vong lap tu dau den cuoi bang
For c = LBound(Arr, 2) + 3 To UBound(Arr, 2) 'vong lap tu cot dau den cot cuoi cua bang
Arr(r, c) = CDbl(Arr(r, c)) 'chuyen gia tri cua mang sang kieu double
Next c
Next r
With Worksheets("Bao cao").Range("A5").Resize(UBound(Arr) - LBound(Arr) + 1, UBound(Arr, 2) - LBound(Arr, 2) + 1) ' lam viec voi vung moi
.Value = Arr ' dien gia tri xuong
'ke bang thi chi 1 dong nhu vay duoc roi
.Borders.LineStyle = xlContinuous 'ke bang
End With
'Worksheets("Bao cao").Range("A2").Resize(UBound(Arr) - LBound(Arr) + 4, UBound(Arr, 2) - LBound(Arr, 2) + 1).Columns.AutoFit'chinh lai chieu cao dong
' in bao cao
With Worksheets("Bao cao").PageSetup 'dinh dang trang tinh
a = MsgBox("Chon trang ngang hay doc" & ChrW(10) & "YES: Trang doc" & "NO: Trang ngang" & ChrW(10) & "CANCEL: Bo Qua", 3, "Thông báo") 'lua chon trang ngang, doc hoac bo qua
If a = 6 Then
.Orientation = xlPortrait ' doc
ElseIf a = 7 Then
.Orientation = xlLandscape ' ngang
Else
Exit Sub
End If
'gan tieu de ngang va doc
.PrintTitleRows = "$1:$4"
.PrintTitleColumns = "$A:$G"
End With
Worksheets("Bao cao").Range("A1:G" & ListBox7.ListCount + 4).PrintOut 'xuat lenh in tai vung A1:G xxxx
End Sub
Em có them vào code:
' in bao cao
With Worksheets("Bao cao").PageSetup
.Orientation = xlLandscape
.PrintTitleRows = "$1:$4"
.PrintTitleColumns = "$A:$G"
End With
Worksheets("Bao cao").Range("A1:G" & ListBox7.ListCount + 4).PrintOut
nhưng bị lỗi "438" "Object doesn't support this property or method"
Mong các AC giúp đỡ.
Anh langtuchungtinh360 có thể giải thích cho em chổ số 3 trong code :
Mã:
For r = LBound(Arr) To UBound(Arr) ' vong lap tu dau den cuoi bang
For c = LBound(Arr, 2) + 3 To UBound(Arr, 2) 'vong lap tu cot dau den cot cuoi cua bang
Arr(r, c) = CDbl(Arr(r, c)) 'chuyen gia tri cua mang sang kieu double
Next c
Next r
theo em nghỉ là có phải từ cột số 4 của bang định dạng là kiểu số
Anh langtuchungtinh360 có thể giải thích cho em chổ số 3 trong code :
Mã:
For r = LBound(Arr) To UBound(Arr) ' vong lap tu dau den cuoi bang
For c = LBound(Arr, 2) + 3 To UBound(Arr, 2) 'vong lap tu cot dau den cot cuoi cua bang
Arr(r, c) = CDbl(Arr(r, c)) 'chuyen gia tri cua mang sang kieu double
Next c
Next r
theo em nghỉ là có phải từ cột số 4 của bang định dạng là kiểu số
vâng, chỉ là em đoán mò thôi mà. hên thì trúng không thì thôi :v. với lại em chỉ xem cú pháp chứ chưa để ý những cái khác.
em cũng mới vừa nhận được file nên mới biết. chứ em có để ý là code làm cho công việc gì đâu mà biết nó như thế nào để xử lý.
cũng chưa đúng ý em, anh langtuchungtinh360 ơi !
Code của anh là in chỉ 1 trang duy nhất (lúc đó chữ và số nó sẽ nhỏ lại).
Ý của em là in đầy đủ dữ lieu từ cột STT đến cột ghi chú.
Ví dụ như chọn "Thun 2.5Cm Đen TS14" có STT tới 43 thì in trang ngang , ra là 3 trang.
Mong anh xem giúp.
cũng chưa đúng ý em, anh langtuchungtinh360 ơi !
Code của anh là in chỉ 1 trang duy nhất (lúc đó chữ và số nó sẽ nhỏ lại).
Ý của em là in đầy đủ dữ lieu từ cột STT đến cột ghi chú.
Ví dụ như chọn "Thun 2.5Cm Đen TS14" có STT tới 43 thì in trang ngang , ra là 3 trang.
Mong anh xem giúp.
bạn có chép code mới thay thế code cũ chưa.
code mới đó tôi chạy ra vầy nè
còn bạn chạy không được thì tôi thua. vừa đủ số cột bạn yêu cầu nhé.
còn lý do tại sao chữ nhỏ lại thì giải thích bạn thế này
bạn làm 1 file sau khi xuất y như vậy
BƯỚC 1. chỉnh sang chế độ như này
bạn làm như thế mà thấy khác của tôi đúng không (của tôi 6 trang, của bạn 9 trang)
BƯỚC 2: vào pageSetup
tôi đã bỏ chỗ này đi
tôi không biết bạn cài đặt thêm cái đó làm gì trong khi không cần thiết.
làm như vậy xong đóng đi
rồi làm như vầy nữa
BƯỚC 3:
rồi bạn xem kết quả đi
nó sẽ như vậy
đó là kết quả làm thủ công.
tất cả đều ghi macro lại được
và tôi đã làm sẵn trong code gửi cho bạn rồi
bạn chỉ cần làm bước 2 bỏ cột tiêu đề đi.
là thỏa lòng mong ước của bạn nhé
đây đều là kiến thức cơ bản trong excel của. trên diễn đàn cũng có hướng dẫn
bạn vui lòng tìm hiểu trước nhé.
xin lỗi nếu nói như thế làm bạn buồn. tôi làm dân xây dựng nên không có khiếu ăn nói, lời thật mất lòng, mà thật quá thì mất luôn bạn.
còn bạn muốn nhấn F8 để xem từng bước thì làm như vầy
làm y vầy rồi bạn làm các bước bạn muốn rồi nhấn IN
sẽ hiện ra vầy
rồi nhấn F8 xem mà tận hưởng đi
code cũ ở #32
phục bạn luôn
bạn là thành viên thứ 2 mà tôi nghĩ khoái VBA mà không biết VBA mà tôi biết trên diễn đàn này ấy
thắc mắc gì thì lấy điện thoại ra quét QRCODE liên lạc vs tôi sẽ hướng dẫn những gì tôi biết cho, còn người kia tôi không khoái nên chả giúp.
thế nhé, giờ về ngủ đây.
- Một Là dạo này anh ấy có tý tình yêu. Vui tính, thoải mái , yêu đời
- Hai là anh ấy thích Rùa Do vậy ốm cũng gắng giúp bạn ...
Còn người kia không gặp 2 trường hợp trên.
@langtuchungtinh360
(Ngoài lề), cách để bỏ cái trang Start mặc định ở Foxit Reader:
Menu File, Preferences, Gerneral, Application Startup: Bỏ check mục "Show Start page" (tiện thể bỏ check "Show Advertisement"), Click OK.
Chào Anh langtuchungtinh360!
Em ngồi quậy cả buổi thì mới được, bằng cách làm thủ công như Anh hướng dẫn rồi mới cài code.
Em cứ tưởng code nó làm hết.