Giúp em in văn bản với các điều kiện

  • Thread starter Thread starter hunglao
  • Ngày gửi Ngày gửi
Liên hệ QC

hunglao

Thành viên hoạt động
Tham gia
30/8/09
Bài viết
118
Được thích
17
Em đang muốn viết một cái MACRO hay cái ji tương tự thế có chức năng

- Nếu ô A1 có giá trị thì sẽ in một vùng từ A1 tới J14
- Nếu ô A2 có giá trị thì sẽ in một vùng từ A1 tới J24
- Nếu ô A3 có giá trị thì sẽ in một vùng từ A1 tới J34

Mong nhận được sự giúp đỡ của các anh chị, thank
 
Bạn thử đoạn code này nhé:

Mã:
Sub InBC()
Dim Rng As Range
If Range("A1:A3").Text = "" Then MsgBox "Khong lua chon": Exit Sub
Set Rng = IIf(Range("a3") <> "", Range("A1:J34"), IIf(Range("A2") <> "", Range("A1:J24"), Range("A1:J14")))
Rng.PrintOut Copies:=1, Collate:=True
End Sub
 
Cho tôi xin phép tham gia.
Tôi có 1 bảng lương, ngoài bảng lương cần in ra nhản lương cho từng người,trên nhản lương thể hiện đầu đủ thông tin.
Bạn Sealand có thể cho 1 ví dụ về vấn đề này không ?
( Tôi viết có vẻ chung chung, nếu bạn là dân kế toán thì hiểu ngay vấn đề )
Cám ơn bạn trước.
 
Bạn cứ làm cho 1 bảng chi tiết về NV, Đvị,lương và Phụ Cấp và 1 mẫu nhãn lên mình sẽ giúp bạn cách in chủ dộng và đẹp toàn bộ nhãn lương CNV (Nói thực mình ngại ngồi viết dữ liệu giả định lắm)
 
sieuthiNHANH2009090424636ztbin2zjzg66016.jpeg


Giả sử sheet của em có 2 bảng dư liệu nguồn( bảng em tô màu xanh ở phía dưới) và dữ liệu đích
dữ liệu nguồn em nhập bằng tay ( ở đây là ví dụ nên anh chị đừng hỏi sao e làm vậy),
em muốn
- Nếu ô E4 có giá trị bất kỳ thì sẽ in ( có preview) vùng từ B2-E10
- Nếu ô I4 có giá trị bất kỳ thì sẽ in ( có preview) vùng từ B2-I10
- Nếu 2 ô đêu không có gt thì hiện ra bảng kô lựa chọn
( Macro em để trên nút PRINT, em làm mà chưa dc)

LINK( em ko up lên 4rum dc) :http://infotuyetmai.com/help.rar
Sub InBC()
Dim Rng As Range
If Range("I4").Text = "" Then MsgBox "Khong lua chon": Exit Sub
Set Rng = IIf(Range("a3") <> "", Range("A1:J34"), IIf(Range("A2") <> "", Range("A1:J24"), Range("A1:J14")))
Rng.PrintPreview
'Range(Rng).PrintPreview
End Sub
 
Lần chỉnh sửa cuối:
File của bạn hunglao đây (Mình đổi file, bạn tải lại nhé)
 

File đính kèm

Lần chỉnh sửa cuối:
chào mọi người
lần đầu tiên tham gia diễn đàn, mình cũng thích nhgiên cứu các hàm trong excel để đưa
vào ứng dụng, vì mình mới được nhận vào làm việc o bộ phận kế toán tổng hợp.nhưng sao trong file các bạn đưa lên mình mở sao không hiển thị công thức.
giúp mình với, mình muốn xem và học hỏi, vậy làm cách nào???
mong cả phòng giúp nhé.
 
File của bạn hunglao đây (Mình đổi file, bạn tải lại nhé)
Anh ui! Nếu cả E4 và I4 <>0 thì phải in cả hết từ B2:I10 thì tác giả mới chịu!
Góp thêm 1 code củ chuối cho vui (mượn file anh sealand chút xíu nha):
[highlight=vb]
Sub InBC()
Dim Rng As Range
If Abs((2 * (Sheet15.[E4] <> 0) + (Sheet15.[I4] <> 0))) > 0 Then
Set Rng = Choose(Abs((2 * (Sheet15.[E4] <> 0) + (Sheet15.[I4] <> 0))), Sheet15.[B2:I10], Sheet15.[B2:E10], Sheet15.[B2:I10])
Rng.PrintPreview
Else: MsgBox "Khong the in duoc dau nha!", vbOKCancel, "Canh bao"
End If
End Sub
[/highlight]
 

File đính kèm

Lần chỉnh sửa cuối:
sieuthiNHANH2009090925137yza5nde1zd148466.jpeg


Cảm ơn các bác đã cố vấn cho em , nói thật là e mới học EXEL nên khả năng tùy biến chưa cao, tính nhờ các bác giúp rồi tự làm nhưng mà làm hoài không được nên chắc phải phiền các bác thêm

- Chính xác là bây giờ em muốn khi: I4,I14,I24,I34,I44,I54 có giá trị thì sẽ in ra các vùng tương ứng
I4( A1:G10),
I14 (A1:G20),
I24( A1:G30),
I34 (A1:G40),
I54 (A1:G50),
I64 (A1:G60)

- Nếu không có dữ liệu nào ở một trong các ô I4,I14,I24,I34,I44,I54 thì sẽ hiện ra thông báo " Không có data"
*** À sheet Getblank của em lấy dữ liệu từ Sheet Data report, nếu muốn xuất dữ liệu qua các bác vào Sheet Data report cột AT gõ vào b1,b2...b6 (tưong ứng với 6 bảng ở sheet Getblank
EM thấy code của bác Cadafi khá OK mà chưa hiệu chỉnh theo ý mún dc
mong các a/c giúp e với
Sub InBC()
Dim Rng As Range
If Abs((2 * (Sheet15.[E4] <> 0) + (Sheet15.[I4] <> 0))) > 0 Then
Set Rng = Choose(Abs((2 * (Sheet15.[E4] <> 0) + (Sheet15.[I4] <> 0))), Sheet15.[B2:I10], Sheet15.[B2:E10], Sheet15.[B2:I10])
Rng.PrintPreview
Else: MsgBox "Khong the in duoc dau nha!", vbOKCancel, "Canh bao"
End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
a/c giúp em với.........
 
cái này mình cũng đang cần , up lên cho moi người giúp bro nè
 
Mình có cảm giác là ý bạn thế này, mình cứ gửi có gì điều chỉnh sau
Code để in như sau
Mã:
Sub InBC()
Dim ktr As Boolean
Dim Rng As Range
For i = 0 To 5
If Trim(Cells(i * 10 + 4, 9)) <> "" Then
ktr = True
Set Rng = Range(Cells(i * 10 + 2, 1), Cells(i * 10 + 10, 9))
Rng.PrintPreview
End If
Next
If Not ktr Then MsgBox "Khong co Du lieu!", vbOKCancel, "Canh bao"
End Sub
 

File đính kèm

Mình có cảm giác là ý bạn thế này, mình cứ gửi có gì điều chỉnh sau
Code để in như sau
Mã:
Sub InBC()
Dim ktr As Boolean
Dim Rng As Range
For i = 0 To 5
If Trim(Cells(i * 10 + 4, 9)) <> "" Then
ktr = True
Set Rng = Range(Cells(i * 10 + 2, 1), Cells(i * 10 + 10, 9))
Rng.PrintPreview
End If
Next
If Not ktr Then MsgBox "Khong co Du lieu!", vbOKCancel, "Canh bao"
End Sub
anh xem lại giùm em với, ấn nút in nó cứ hiện ra cửa sổ in hoài, ấn mấy lần mới thoạt dc mà cũng in không đúng vùng cần in
- Em mở file của a ra thì thấy là nó chỉ in đúng cái bảng đầu tiên,( với lại khi 1 bảng có giá trị thì nó in xuất hiện bảng in 1 lần,với lại khi 2 bảng có giá trị thì nó in xuất hiện bảng in 2 lần...)
thank a
 
Lần chỉnh sửa cuối:
Vì mình không rõ câu hỏi lắm nên mới hiểu là nếu ô tiêu chuẩn của vùng nào không trống thì in. Giờ thì hiểu rồi bạn kiểm tra xem nhé

Mã:
Sub InBC()
Dim Rng As Range
For i = 5 To 0 Step -1
If Trim(Cells(i * 10 + 4, 9)) <> "" Then
Set Rng = Range(Cells(2, 1), Cells(i * 10 + 10, 9))
Rng.PrintPreview
Set Rng = Nothing
Exit Sub
End If
Next
MsgBox "Khong co Du lieu!", vbOKCancel, "Canh bao"
End Sub
 

File đính kèm

OKie, thank a nhé, trên cả tuyệt vời
 
Bạn cứ làm cho 1 bảng chi tiết về NV, Đvị,lương và Phụ Cấp và 1 mẫu nhãn lên mình sẽ giúp bạn cách in chủ dộng và đẹp toàn bộ nhãn lương CNV (Nói thực mình ngại ngồi viết dữ liệu giả định lắm)

------------

Rất mong bạn xem và giúp, viết code in Tờ khai đăng ký Thuế thu nhập cá nhân, mong muốn được ghi rõ trong file đính kèm, nếu có gì không được rõ bạn vui lòng cho hay.
Cám ơn bạn trước.
 

File đính kèm

Bạn phải cho vài dòng danh sách thì mới kiểm tra thay đổi như thế nào chứ. Danh sách tốt nhât để riêng 1 sheet cho đỡ rối. Xã Phường-Quận huyên-Tỉnh thành phố phải riêng cột như kê khai
 
Lần chỉnh sửa cuối:
Bạn phải cho vài dòng danh sách thì mới kiểm tra thay đổi như thế nào chứ. Danh sách tốt nhât để riêng 1 sheet cho đỡ rối.
.
----------
Tôi không dám đưa lên nhiều sợ bạn rối.
Có ngay đây bạn ơi.
Đính kèm file
----
Thông tin đó không được chuẩn bạn ơi, địa chỉ là được lấy từ CMND, ghi cụ thể là không thể làm được. Nếu không khó thì bạn tách thêm dùm cột tỉnh => chính là bên phải của chuổi :
VD: Thiệu Dương, Thiệu Hóa, Thanh Hóa => đây là thông tin cột tỉnh
Nói thêm bạn thông cảm: công nhân từ mọi miền, thậm chí trên CMND chỉ ghi năm sinh chứ không có ngày tháng !!!!!!
Mong tin bạn
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem sơ bộ nhé, có gì phản hồi lại.
Chỉnh sửa đạt yêu cầu rồi viết code để in hàng loạt từ số nào đến số nào.
Mình gửi lại file ví dụ
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem sơ bộ nhé, có gì phản hồi lại.
Chỉnh sửa đạt yêu cầu rồi viết code để in hàng loạt từ số nào đến số nào.
Mình gửi lại file ví dụ
------
Bạn làm đẹp lắm ( hỏi lại sau )
Thêm :
Phần Tỉnh, TP : Cell E28 => ngắt chuổi từ cell E26, lấy bên phải đến dấu " , " ( có đòi hỏi quá không ? Cười ).
Ý bạn là chọn từng số thẻ để in phải không, nếu đúng như thế là quá tốt rồi.

Mong tin.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom