Hỏi cách kẻ bảng tự động trong Excel có điều kiện

Liên hệ QC

pvtka

Thành viên mới
Tham gia
5/11/09
Bài viết
1
Được thích
0
Xin kính chào các bác!
Em học Excel hơi kém nên muốn nhờ các bác chỉ giúp một tý
Các bác làm ơn cho em hỏi làm thế nào để Excel tạo bảng có đường kẻ theo điều kiện được không? và khi thay đổi điều kiện thì các hàng đó có tự động kẻ theo không?
Điều kiện ở đây là khi mình nhập vào một ô số học sinh thì Excel sẽ tự động kẻ bảng với số dòng đúng bằng giá trị số học sinh ta nhập vào ở trên.
Cụ thể là: Mình có một bảng gồm các cột như sau:
A4 là cột thứ tự
B4 là cột Họ Và Tên
C4 là cột Lớp
D4 là cột ghi chú
Ví dụ: Ở ô C2 ta nhập số học sinh là 10
Thì Excel sẽ tự động kẻ bảng có 10 dòng kể từ ô A5 đến ô D14
Và khi thay số Học sinh là 5 thì Excel cũng tự động xóa bảng cũ và kẻ bảng mới với 5 dòng tương ứng.
Em có kèm tập tin minh họa. Xin các bác giúp đỡ em.
Em xin chân thành cảm ơn!
 
Lần chỉnh sửa cuối:
Chép code này vào Sheet cần thực hiện kẻ dòng

PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("C2") > 0 Then
        m = Sheet1.Rows("5:100").Delete
        n = Range("C2") + 4
        With Sheet1.Range("A5:D" & n)
            .Borders(xlEdgeBottom).LineStyle = xlContinuous
            .Borders(xlEdgeLeft).LineStyle = xlContinuous
            .Borders(xlEdgeRight).LineStyle = xlContinuous
            .Borders(xlEdgeTop).LineStyle = xlContinuous
            .Borders(xlInsideHorizontal).LineStyle = xlContinuous
            .Borders(xlInsideVertical).LineStyle = xlContinuous
        End With
    End If
End Sub


Thay Sheet1 bằng cái mà bạn muốn
Xem file kèm theo
Thân
 

File đính kèm

  • Book1.xls
    28.5 KB · Đọc: 541
Thanh Phương

mình nghĩ bạn nên đổi sự kiện Selectionchange =>change kết hợp điều kiện target.address= range("c2").address =>tránh trường hợp excel sẽ phải thực hiện bài toán mỗi khi có thay đổi lựa chọn.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("c2").Address Then
If Range("C2") > 0 Then
m = Sheet1.Rows("5:100").Delete
n = Range("C2") + 4
With Sheet1.Range("A5:D" & n)
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Borders(xlInsideVertical).LineStyle = xlContinuous
End With
End If
End If
End Sub
 
Sao không ai làm bài này bằng Conditional Formating thế nhỉ? ---> Quá dể để thực hiện (sao phải code)
 
Sử dụng: Format/Conditional Formating/
Như vd.
 

File đính kèm

  • vd.rar
    2 KB · Đọc: 349
Cách cột: tức là có dữ liệu ở cột c thì điều kiện định dạng dòng kẻ vẫn được thự hiện.
 

File đính kèm

  • vd.rar
    2.1 KB · Đọc: 94
Tôi cũng làm theo bac bate và các bác khác nhưng sa không được, các bác xem hộ tôi xem bị lỗi ở đâu?
 

File đính kèm

  • Book11.xls
    27.5 KB · Đọc: 41
nếu muốn các cột J,L,M giữ nguyên mầu thì làm thế nào các bác nhỉ?còn muốn giữ nguyên công thức các ô phía trên thì lam fthees nào? mong các bác giúp nhe.
 
Lần chỉnh sửa cuối:
Bạn nhập công thức này vào Conditional Formatting :
=(ROW()-6)<=$C$6
Còn giữ nguyên màu 3 cột kia có điều kiện gì không (Ví dụ như phải có dữ liệu hay lớn hơn 1 số nào đó.....)?Có thì nêu điều kiện ra và dùng Conditional Formatting tiếp, Nếu không có thì tô màu bình thường thôi! He he!
 
Lần chỉnh sửa cuối:
Tôi cũng làm theo bac bate và các bác khác nhưng sa không được, các bác xem hộ tôi xem bị lỗi ở đâu?
1. Công thức bạn nhập vào sai
Conditional Formatting.gif

=$C$6 chứ không phải là $C$33
2. Bạn chưa chọn Format để định dạng
nếu muốn các cột J,L,M giữ nguyên mầu thì làm thế nào các bác nhỉ?còn muốn giữ nguyên công thức các ô phía trên thì lam fthees nào? mong các bác giúp nhe.
Bạn chọn Cell bình thường khác sau đó Chọn biểu tượng Fornat Painer để quét các ô không cần bôi màu Hoặc bạn quét các ô không cần bôi màu ấy vào Conditional Formatting để xóa
 
Lần chỉnh sửa cuối:
1. Công thức bạn nhập vào sai
View attachment 67582

=$C$2 chứ không phải là $C$33
2. Bạn chưa chọn Format để định dạng

Bạn chọn Cell bình thường khác sau đó Chọn biểu tượng Fornat Painer để quét các ô không cần bôi màu Hoặc bạn quét các ô không cần bôi màu ấy vào Format Conditional để xóa
Em thấy trong file bạn ấy định thay đổi số ô định dạng là trong ô C6 mà, không phải ô C3 như hình bác Bate đã làm anh ạ!
 
Web KT
Back
Top Bottom