Xin các bác hỗ trợ giúp, mình muốn code "ClearContents" có điều kiện ạ! (1 người xem)

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

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

Ldh1984

Thành viên chính thức
Tham gia
18/7/21
Bài viết
55
Được thích
7
Em có file Excel như sau:
có cột số thư tự (STT) và cột "Ngày"
Yêu cầu: - khi nhập tại cột "Ngày" đến số thứ tự 21 thì sẽ xóa hết cột "Ngày để nhập lại từ đầu ^^.
Mong các cao nhân giúp ạ, chân thành cảm ơn.
 

File đính kèm

Em có file Excel như sau:
có cột số thư tự (STT) và cột "Ngày"
Yêu cầu: - khi nhập tại cột "Ngày" đến số thứ tự 21 thì sẽ xóa hết cột "Ngày để nhập lại từ đầu ^^.
Mong các cao nhân giúp ạ, chân thành cảm ơn.
Như trong file là xóa hết cột thứ tự từ dòng 5 tới dòng 24
và nhập stt là 1 bắt đầu từ dòng 25 à
 
Upvote 0
Bài này của bạn không hợp lý để thực hiện. Khi điền đến dòng thứ tự số 21 thì xóa luôn rồi nên điền vào vô nghĩa.
Có thể khi nhập dữ liệu tới dòng có số thứ tự 21 thì dữ liệu trong cột chạy đi chỗ khác và làm một công việc gì đó, còn những em ở lại phải xoá đi để trở lại công việc từ đầu
Chỉ là có thể. Híc
Thân
 
Upvote 0
Có thể khi nhập dữ liệu tới dòng có số thứ tự 21 thì dữ liệu trong cột chạy đi chỗ khác và làm một công việc gì đó, còn những em ở lại phải xoá đi để trở lại công việc từ đầu
Chỉ là có thể. Híc
Thân
Anh à, theo ý chủ bài thì điền đến dòng đấy sẽ tự động xóa luôn, nếu Enter thì đã xóa mất rồi nên em nghĩ dữ liệu tại ô vừa nhập đó chưa kịp chạy đi đâu cả đã bị xóa rồi anh ạ. (Cũng chỉ là đoán mò vì thông tin của chủ bài chỉ có vậy anh nhỉ).
 
Upvote 0
Anh à, theo ý chủ bài thì điền đến dòng đấy sẽ tự động xóa luôn, nếu Enter thì đã xóa mất rồi nên em nghĩ dữ liệu tại ô vừa nhập đó chưa kịp chạy đi đâu cả đã bị xóa rồi anh ạ. (Cũng chỉ là đoán mò vì thông tin của chủ bài chỉ có vậy anh nhỉ).
Bi giờ tui với bạn, anh em mình....đoán mò nhé, khi nhập tới hàng cuối cùng ( dòng 21), Enter xong, code ra lệnh làm cái gì đó trước, sau đó mới ra lệnh xoá, nhảy lên dòng 1, nhập tiếp cái gì đó. Có thể bạn đó viết được code kia nhưng chưa viết được code xoá nên nhờ làm một code thôi. Híc, hên xui, đoán mò mà
Thân
 
Upvote 0
Bi giờ tui với bạn, anh em mình....đoán mò nhé, khi nhập tới hàng cuối cùng ( dòng 21), Enter xong, code ra lệnh làm cái gì đó trước, sau đó mới ra lệnh xoá, nhảy lên dòng 1, nhập tiếp cái gì đó. Có thể bạn đó viết được code kia nhưng chưa viết được code xoá nên nhờ làm một code thôi. Híc, hên xui, đoán mò mà
Thân
Em thì đoán hơi khác, nếu đã viết được code làm việc khác thì việc viết đoạn xóa còn nhanh hơn mà anh nhỉ. Nhưng anh em mình cũng vẫn đang là thầy bói đoán voi.
 
Upvote 0
Bi giờ tui với bạn, anh em mình....đoán mò nhé, khi nhập tới hàng cuối cùng ( dòng 21), Enter xong, code ra lệnh làm cái gì đó trước, sau đó mới ra lệnh xoá, nhảy lên dòng 1, nhập tiếp cái gì đó. Có thể bạn đó viết được code kia nhưng chưa viết được code xoá nên nhờ làm một code thôi. Híc, hên xui, đoán mò mà
Thân
2 bác ơi: mình có file Excel sau: nhờ 2 bác viết hộ code xóa tự động ạ.
yêu cầu:
- 1. số tứ tự không xóa.
- 2.chỉ xóa cột ngày khi nhập ngày tháng tại B24 và enter qua B25 là Clear B4:B24 là được ạ.
File này là một cái bảng kê thôi, do mình làm biếng xóa tay nên nhờ các cao nhân có code hay cho mình xin ạ.

code đang viết:

Sub InG_N()

Dim form As Worksheet
Dim G_N As Worksheet

Set G_N = ThisWorkbook.Sheets("G_N")

''''''''''copy danh sach''''''''
Dim hang_cuoi As Long
hang_cuoi = G_N.Range("B2").Value + 4

G_N.Range("B" & hang_cuoi).Value = G_N.Range("B1").Value

''''''''iN DU LIEU'''''''
On Error GoTo baoloi:
G_N.Select
ActiveWindow.SelectedSheets.PrintOut From:=1, to:=1, Copies:=1, Collate:=True

baoloi:

''''''''XOA DU LIEU'''''''

End Sub
 

File đính kèm

Upvote 0
2 bác ơi: mình có file Excel sau: nhờ 2 bác viết hộ code xóa tự động ạ.
yêu cầu:
- 1. số tứ tự không xóa.
- 2.chỉ xóa cột ngày khi nhập ngày tháng tại B24 và enter qua B25 là Clear B4:B24 là được ạ.
File này là một cái bảng kê thôi, do mình làm biếng xóa tay nên nhờ các cao nhân có code hay cho mình xin ạ.

code đang viết:

Sub InG_N()

Dim form As Worksheet
Dim G_N As Worksheet

Set G_N = ThisWorkbook.Sheets("G_N")

''''''''''copy danh sach''''''''
Dim hang_cuoi As Long
hang_cuoi = G_N.Range("B2").Value + 4

G_N.Range("B" & hang_cuoi).Value = G_N.Range("B1").Value

''''''''iN DU LIEU'''''''
On Error GoTo baoloi:
G_N.Select
ActiveWindow.SelectedSheets.PrintOut From:=1, to:=1, Copies:=1, Collate:=True

baoloi:

''''''''XOA DU LIEU'''''''

End Sub
chép đoạn code sau vào trong VbE của Sh G_N và chạy thử
Trúng-Chật -Hên - Sui
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$24" Then Range("B4:B24").ClearContents
End Sub
 
Upvote 0
sao vậy? Khi nhập đến ô B25 enter thì ns sẽ xóa hết Từ B4:B24 mà.
nó chạy rồi, nhưng mình phải dùng phím xuống dòng thì nó mới xóa, còn mình đã tạo nút nhập phía trên mình ấn nút thì nó tự động nhập ngày hiện tại vào, khi nhập qua dòng số 24 nó không hiểu lệnh xóa tự động ban ơi.
Bài đã được tự động gộp:

mình có ý này, tại ô B2 trong file đã gửi mình có dùng công thức COUNTA(B3:B25)-1, điều kiện khi B2>21 thì xóa từ B4:B24 và không thực hiện lệnh in nữa.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
nó chạy rồi, nhưng mình phải dùng phím xuống dòng thì nó mới xóa, còn mình đã tạo nút nhập phía trên mình ấn nút thì nó tự động nhập ngày hiện tại vào, khi nhập qua dòng số 24 nó không hiểu lệnh xóa tự động ban ơi.
Bài đã được tự động gộp:

mình có ý này, tại ô B2 trong file đã gửi mình có dùng công thức COUNTA(B3:B25)-1, điều kiện khi B2>21 thì xóa từ B4:B24 và không thực hiện lệnh in nữa.
Khổ cái là bạn không đưa ra ý muốn và file đính kèm cụ thể.
Như file bạn Up lện thì bạn thay code cũ bằng code này (vẫn là code của bạn có sửa tý chút)
Mã:
Sub InG_N()

Dim form As Worksheet
Dim G_N As Worksheet

Set G_N = ThisWorkbook.Sheets("G_N")

''''''''''copy danh sach''''''''
Dim hang_cuoi As Long
hang_cuoi = G_N.Range("B2").Value + 4

If hang_cuoi < 25 Then

G_N.Range("B" & hang_cuoi).Value = G_N.Range("B1").Value

''''''''iN DU LIEU'''''''
On Error GoTo baoloi:
    G_N.Select
    ActiveWindow.SelectedSheets.PrintOut From:=1, to:=1, Copies:=1, Collate:=True
    Else
    G_N.Range("B4:B25").ClearContents
End If
baoloi:

''''''''XOA DU LIEU'''''''

End Sub
Chúc Khỏe, vui thành công và an toàn trong đại dịch
 
Upvote 0
Khổ cái là bạn không đưa ra ý muốn và file đính kèm cụ thể.
Như file bạn Up lện thì bạn thay code cũ bằng code này (vẫn là code của bạn có sửa tý chút)
Mã:
Sub InG_N()

Dim form As Worksheet
Dim G_N As Worksheet

Set G_N = ThisWorkbook.Sheets("G_N")

''''''''''copy danh sach''''''''
Dim hang_cuoi As Long
hang_cuoi = G_N.Range("B2").Value + 4

If hang_cuoi < 25 Then

G_N.Range("B" & hang_cuoi).Value = G_N.Range("B1").Value

''''''''iN DU LIEU'''''''
On Error GoTo baoloi:
    G_N.Select
    ActiveWindow.SelectedSheets.PrintOut From:=1, to:=1, Copies:=1, Collate:=True
    Else
    G_N.Range("B4:B25").ClearContents
End If
baoloi:

''''''''XOA DU LIEU'''''''

End Sub
Chúc Khỏe, vui thành công và an toàn trong đại dịch
Chân thành cảm ơn bác nhiều, để mình chạy và báo cáo kết quả nhanh ^^
Bài đã được tự động gộp:

Khổ cái là bạn không đưa ra ý muốn và file đính kèm cụ thể.
Như file bạn Up lện thì bạn thay code cũ bằng code này (vẫn là code của bạn có sửa tý chút)
Mã:
Sub InG_N()

Dim form As Worksheet
Dim G_N As Worksheet

Set G_N = ThisWorkbook.Sheets("G_N")

''''''''''copy danh sach''''''''
Dim hang_cuoi As Long
hang_cuoi = G_N.Range("B2").Value + 4

If hang_cuoi < 25 Then

G_N.Range("B" & hang_cuoi).Value = G_N.Range("B1").Value

''''''''iN DU LIEU'''''''
On Error GoTo baoloi:
    G_N.Select
    ActiveWindow.SelectedSheets.PrintOut From:=1, to:=1, Copies:=1, Collate:=True
    Else
    G_N.Range("B4:B25").ClearContents
End If
baoloi:

''''''''XOA DU LIEU'''''''

End Sub
Chúc Khỏe, vui thành công và an toàn trong đại dịch
Đã chạy thành công và đúng ý rồi bác ơi, hết dịch có dịp mời bác nhậu nhé ^^ chân thành cảm ơn rất nhiều và rất nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$25" Then Range("B4:B24").ClearContents
If Me.Range("B4").Value = "" Then
Me.Range("B25").ClearContents
'Me.Range("B4").Select
End If
End Sub
sửa thêm chút là được mà nhỉ :D
 
Upvote 0
Chân thành cảm ơn bác nhiều, để mình chạy và báo cáo kết quả nhanh ^^
Bài đã được tự động gộp:


Đã chạy thành công và đúng ý rồi bác ơi, hết dịch có dịp mời bác nhậu nhé ^^ chân thành cảm ơn rất nhiều và rất nhiều.
Cảm ơn bạn nhé! Nghe thấy có nhậu là mình "mừng" rồi. Mình bị tai biến nhẹ nên không có nhiều hứng thú với rượi, bia.
Mà bạn ở đâu mà mời mình nhậu đấy?- Mình ở Nghệ An cơ mà.
 
Upvote 0
Cảm ơn bạn nhé! Nghe thấy có nhậu là mình "mừng" rồi. Mình bị tai biến nhẹ nên không có nhiều hứng thú với rượi, bia.
Mà bạn ở đâu mà mời mình nhậu đấy?- Mình ở Nghệ An cơ mà.
xa vại, mình ở Quy Nhơn, khi nào hết dịch bác ghé chơi giao lưu nhé. Không bia rượu thì cafe trà nước cũng đc mà ^^
 
Upvote 0
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$25" Then Range("B4:B24").ClearContents
If Me.Range("B4").Value = "" Then
Me.Range("B25").ClearContents
'Me.Range("B4").Select
End If
End Sub
sửa thêm chút là được mà nhỉ :D
Quá đã tối nay mừng ghê ^^ mình có được 2 bác hướng dẫn rất nhiệt tình, cảm ơn bạn rất nhiều về code trên nhé, rất ổn định.
 
Upvote 0

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

Back
Top Bottom