So sánh và xóa dữ liệu trong textbox (1 người xem)

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

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

thomtv

Thành viên hoạt động
Tham gia
10/5/10
Bài viết
120
Được thích
23
Các bạn vui lòng giúp mình đoạn code như yêu cầu sau nhe.
Trong Form có 5 textbox chứa dữ liệu ngày trên cell của sheet.
Yêu cầu:
- nếu textbox nào có ngày nhỏ nhất thì dữ liệu trong textbox đó bị xóa (mục đích để mình ghi nhận lại các ngày gần nhất).
- Trường hợp nếu ngày bằng nhau thì xóa cả 2.
VD: như file đính kèm (ở textbox1 "lần 1" có ngày nhỏ hơn các ngày textbox khác).
Xin cảm ơn.
 

File đính kèm

Các bạn vui lòng giúp mình đoạn code như yêu cầu sau nhe.
Trong Form có 5 textbox chứa dữ liệu ngày trên cell của sheet.
Yêu cầu:
- nếu textbox nào có ngày nhỏ nhất thì dữ liệu trong textbox đó bị xóa (mục đích để mình ghi nhận lại các ngày gần nhất).
- Trường hợp nếu ngày bằng nhau thì xóa cả 2.
VD: như file đính kèm (ở textbox1 "lần 1" có ngày nhỏ hơn các ngày textbox khác).
Xin cảm ơn.
Ý bạn như thế này phải không?
 

File đính kèm

Upvote 0
Ý bạn như thế này phải không?

xin cảm ơn bạn rất nhiều nó đúng ý mình rồi,
Nhưng cho mình hỏi thêm tí trường hợp các textbox mình đặt tên và đưa vào Frame thì phải sửa đọan code lại như thế nào.
Mình muốn khi có 5 textbox hiện cả 5 ngày thì mới xóa 1 textbox có ngày nhỏ nhất, còn trường hợp nếu textbox chi hiện có 3 thì không xóa ngày nhỏ nhất

Private Sub UserForm_Initialize()
Dim i&, Min As Date, r&
Min = Sheet1.Cells(2, 1).Value
r = 1
For i = 1 To 5
Me.Controls("TextBox" & i).Text = Sheet1.Cells(2, i).Value
If Min > Sheet1.Cells(2, i).Value Then
Min = Sheet1.Cells(2, i).Value
r = i
End If
Next
Me.Controls("TextBox" & r) = ""
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
sau khi tìm hiểu đoạn code và mình cũng làm được đưa vào frame, và đoạn code chỉ so sánh ngày trên sheet.
Mình cũng tìm nhiều trên diễn đàn nhưng chưa áp dụng được gì nên một lần nữa nhờ mọi người giúp đỡ ạh.
Ý mình là khi add dữ liệu lên textbox và so sánh trực tiếp từng textbox, nếu textbox nào có ngày nhỏ nhất thì xóa.
5 textbox chứa dữ liệu đầy đủ thì mới xóa 1 textbox có ngày nhỏ nhất, còn nếu chỉ có 3 hoặc 4 texbox thì không xóa texbox có ngày nhỏ nhất.
Rất mong nhận được sự giúp đỡ của mọi người, xin cảm ơn.
 

File đính kèm

Upvote 0
chuyện xóa textbox nhỏ nhất thì chắc bàn trên kia rồi nên chắc k vd gì đugns k bạn?

về việc nếu có 3 hoặc 4 textbox thì bạn chỉ cần thêm 1 lệnh IF đồng thời 4 cell phải không trống nếu không thì thoát sub. vậy là đúng như ý bạn đúng k?

(mà sao tôi thấy bạn cứ úp úp mở mở cái cv của bạn nhỉ? hay thực sự chỉ cần xóa mỗi 1 trong 5 ô thật?)
 
Upvote 0
xin cảm ơn bạn rất nhiều nó đúng ý mình rồi,
Nhưng cho mình hỏi thêm tí trường hợp các textbox mình đặt tên và đưa vào Frame thì phải sửa đọan code lại như thế nào.

Private Sub UserForm_Initialize()
Dim i&, Min As Date, r&
Min = Sheet1.Cells(2, 1).Value
r = 1
For i = 1 To 5
Me.Controls("TextBox" & i).Text = Sheet1.Cells(2, i).Value
If Min > Sheet1.Cells(2, i).Value Then
Min = Sheet1.Cells(2, i).Value
r = i
End If
Next
Me.Controls("TextBox" & r) = ""

End Sub

cả đoạn bôi đỏ phải bỏ đi vì cách bạn đặt tên không thống nhất.
thay vào đó thì bạn phải sửa thành
Me.ngaymoi = Cells(2, 1)
Me.ngayLTA = Cells(2, 2)
Me.NgayLTB = Cells(2, 3)
Me.NgayLTC = Cells(2, 4)
Me.NgayLT5 = Cells(2, 5)

Thêm nữa là việc tìm min của các số kia sẽ phức tạp hơn(?) hoặc bạn phải tìm 1 cách khác để tìm min trong đó
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom