Tạo nút xóa dữ liệu đã nhập

Liên hệ QC

titanic

Thành viên hoạt động
Tham gia
25/5/10
Bài viết
161
Được thích
11
chào các anh/chị }}}}}
em muốn tạo một cái nút khi mình nhấp chọn vào nó sẽ tự động xóa các dữ liệu ở các ô mình muốn xóa (xem file đính kèm ) , cảm ơn trước nhe
 

File đính kèm

  • nút xóa dưu liệu.xls
    17 KB · Đọc: 390
Code như vầy sẽ là ẩn dòng có giá trị rổng tại cột D:
PHP:
Private Sub CommandButton3_Click()
  On Error Resume Next
  Range("D4:D1000").AutoFilter 1, "<>"
End Sub
Còn để hiện ra thì hủy chế độ AutoFilter đi bằng đoạn code sau:
PHP:
Private Sub CommandButton3_Click()
  On Error Resume Next
  ActiveSheet.AutoFilterMode = False
End Sub
Em cám ơn thầy nha, nó đã giúp em nhiều trong công việc lắm
 
Upvote 0
Bạn chắc cũng biết 1 ít về VBA nhỉ. Vậy code của bạn đây
Mã:
Private Sub CommandButton1_Click()
[SIZE=3][COLOR=#ff0000]Sheet2[/COLOR][/SIZE].Range("b2:c11").ClearContents
End Sub
Bạn ơi cho mình hỏi dựa vào đâu mà mình ghi Sheet2? HÌnh như đó ko phải tên sheet. Sr mình mới tìm hiểu nên k rõ lắm!-+*/
 
Upvote 0
Các bạn cho mình hỏi với: mình có from nhập liệu có ListBox ở dưới như hình đính kèm giờ mình muốn viết code cho buttom xoá để nó xoá dòng dữ liệu trong listbox đó đồng thời xoá luôn dữ liệu có trong sheet đã nhập vào từ from đó thì làm sao ạ?
 

File đính kèm

  • Untitled.png
    Untitled.png
    24.6 KB · Đọc: 24
Upvote 0
Các bạn cho mình hỏi với: mình có from nhập liệu có ListBox ở dưới như hình đính kèm giờ mình muốn viết code cho buttom xoá để nó (2) xoá dòng dữ liệu trong listbox đó đồng thời (1) xoá luôn dữ liệu có trong sheet đã nhập vào từ from đó thì làm sao ạ?

(1) Nhìn vô CSDL của bạn thì muốn xóa dòng dữ liệu (DL) chắc chỉ có cách tìm ngày (nhập kho) của mã hàng đó; sau đó tìm mã hàng đó mà xóa thôi
(a) Tìm ngày nhập ta có thể áp dụng phương thức FIND() (với vài chú ý . . . khi sử dụng với DL là ngày-tháng-năm)
(b) Trong các dòng DL tìm thấy ta tìm dòng nào có mã hàng đó thì xóa đi

(2) Cái này sẽ khó 1 khi không thấy file Form mô tê răng chừ(!)
 
Upvote 0
(1) Nhìn vô CSDL của bạn thì muốn xóa dòng dữ liệu (DL) chắc chỉ có cách tìm ngày (nhập kho) của mã hàng đó; sau đó tìm mã hàng đó mà xóa thôi
(a) Tìm ngày nhập ta có thể áp dụng phương thức FIND() (với vài chú ý . . . khi sử dụng với DL là ngày-tháng-năm)
(b) Trong các dòng DL tìm thấy ta tìm dòng nào có mã hàng đó thì xóa đi

(2) Cái này sẽ khó 1 khi không thấy file Form mô tê răng chừ(!)
File đây ạ. Bạn xem giúp mình với. Mình mới làm quen với VBA
 

File đính kèm

  • kd01_tuhocvba0809.xlsm
    47.9 KB · Đọc: 9
Upvote 0
Macro để xóa dòng trên trang tính sẽ là vầy:
PHP:
Private Sub CommandButton4_Click()
 Dim Rws As Long, J As Long, DgXoa As Long, Num
 Dim Rng As Range, sRng As Range:                               Dim MyAdd As String, THang As String
 
 Rws = [B7].CurrentRegion.Rows.Count
 Set Rng = [A6].Resize(Rws)
 Set sRng = Rng.Find(Me!txtngay.Value, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
    MyAdd = sRng.Address
    Do
        THang = sRng.Offset(, 2).Value
        If THang = Me!cbten.text Then
            DgXoa = sRng.Row
            Num = MsgBox("Xóa Ḍng Có Ngày " & sRng.Value & Chr(10) & "Tên Hàng: " & THang, 4, "GPE.COM")
            If Num = 6 Then
                Rows(DgXoa & ":" & DgXoa).Delete:               Exit Do
            End If
        End If
        Set sRng = Rng.FindNext(sRng)
    Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
 Else
    MsgBox "Nothing"
 End If
End Sub
 
Upvote 0
Macro để xóa dòng trên trang tính sẽ là vầy:
PHP:
Private Sub CommandButton4_Click()
Dim Rws As Long, J As Long, DgXoa As Long, Num
Dim Rng As Range, sRng As Range:                               Dim MyAdd As String, THang As String

Rws = [B7].CurrentRegion.Rows.Count
Set Rng = [A6].Resize(Rws)
Set sRng = Rng.Find(Me!txtngay.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
    MyAdd = sRng.Address
    Do
        THang = sRng.Offset(, 2).Value
        If THang = Me!cbten.text Then
            DgXoa = sRng.Row
            Num = MsgBox("Xóa Ḍng Có Ngày " & sRng.Value & Chr(10) & "Tên Hàng: " & THang, 4, "GPE.COM")
            If Num = 6 Then
                Rows(DgXoa & ":" & DgXoa).Delete:               Exit Do
            End If
        End If
        Set sRng = Rng.FindNext(sRng)
    Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
Else
    MsgBox "Nothing"
End If
End Sub
còn buttom cập nhật mình chưa biết viết thế nào, bạn giúp mình với. Xin cảm ơn bạn nhiều
 
Upvote 0
Bạn cho ghi macro rồi bạn phủ khối ở vùng vàng đó rồi bấm xóa, tắt ghi macro, rồi vào VBA sửa lại chút xíu cho gọn, sau đó gán macro đó vào nút lệnh thôi!

Sau khi ghi macro thì nó sẽ như vầy:

PHP:
Sub Macro1()
'
' Macro1 Macro
'
'
    Range("B2:C11").Select
    Selection.ClearContents
End Sub

Chỉnh lại chút xíu nó sẽ như vầy:

PHP:
Sub Macro1()
  Sheets("du lieu nhap").Range("B2:C11").ClearContents
End Sub
e xin lỗi vì chen ngang nhưng anh chị cho e hỏi chút là e tạo xong nút xóa và bây giờ muốn tạo nút undo thì hàm công thức như nào ạ. e có 1 công thức nhưng không biết chèn dữ liệu ạ. E cảm ơn !

Sub Back()
MyVar = [SourceDL]
[TargetDL] = MyVar
End Sub
 
Upvote 0
e xin lỗi vì chen ngang nhưng anh chị cho e hỏi chút là e tạo xong nút xóa và bây giờ muốn tạo nút undo thì hàm công thức như nào ạ. e có 1 công thức nhưng không biết chèn dữ liệu ạ. E cảm ơn !

Sub Back()
MyVar = [SourceDL]
[TargetDL] = MyVar
End Sub
Undo trong VBA (Application.Undo) chỉ phục vụ trong trường hợp bạn thao tác thủ công mà không sử dụng VBA thì nó sẽ được thực hiện, còn không nó báo lỗi. Còn thủ tục Sub Back của bạn mục đích để làm gì, bạn có thể nói rõ hơn không?
 
Upvote 0
Undo trong VBA (Application.Undo) chỉ phục vụ trong trường hợp bạn thao tác thủ công mà không sử dụng VBA thì nó sẽ được thực hiện, còn không nó báo lỗi. Còn thủ tục Sub Back của bạn mục đích để làm gì, bạn có thể nói rõ hơn không?
Vâng ạ, e gửi a file luôn cho dễ hình dung ạ. Xin cảm ơn .
 

File đính kèm

  • 123.xlsm
    46 KB · Đọc: 5
Upvote 0
Vâng ạ, e gửi a file luôn cho dễ hình dung ạ. Xin cảm ơn .
Tôi xem file xong, xem code, tôi chẳng hiểu gì cả nói chi đến hình dung thế nào. Bạn giải thích cụ thể xem.
Code này tôi cũng không biết để làm gì luôn!
Sub back()
Myvar = [Sheets("Roulet").Range("a50:a1500")]
[targetDL] = Myvar
End Sub
 
Upvote 0
Tôi xem file xong, xem code, tôi chẳng hiểu gì cả nói chi đến hình dung thế nào. Bạn giải thích cụ thể xem.
Code này tôi cũng không biết để làm gì luôn!
Sub back()
Myvar = [Sheets("Roulet").Range("a50:a1500")]
[targetDL] = Myvar
End Sub
có nghĩa là e cần tạo nút Back " lùi lại" ạ. trước nút back nó được gắn hàm nhưng e không hiểu được cách lấy dữ liệu. hàm cũ nó là
Sub back()
Myvar = [sourceDL]
[targetDL] = Myvar
End Sub
Xin cảm ơn !
 
Upvote 0
có nghĩa là e cần tạo nút Back " lùi lại" ạ. trước nút back nó được gắn hàm nhưng e không hiểu được cách lấy dữ liệu. hàm cũ nó là
Sub back()
Myvar = [sourceDL]
[targetDL] = Myvar
End Sub
Xin cảm ơn !
Bạn nói cho rõ nghĩa hơn đi, bạn muốn lùi lại như thế nào? Vùng dữ liệu của sheet nào? Khối ô nào? Myvar để làm gì? targetDL sẽ ở đâu? v.v... Và sau đó nữa là gì? Kết quả mong muốn như thế nào?
 
Upvote 0
Bạn nói cho rõ nghĩa hơn đi, bạn muốn lùi lại như thế nào? Vùng dữ liệu của sheet nào? Khối ô nào? Myvar để làm gì? targetDL sẽ ở đâu? v.v... Và sau đó nữa là gì? Kết quả mong muốn như thế nào?
Dạ e muốn lùi lại từng ô một của SheetA cột A2:A1500 sau mỗi lần click nút mũi tên < ạ. Myvar và target là dữ liệu của cột A trong SheetA ạ. Xin cảm ơn !
 
Upvote 0
Dạ e muốn lùi lại từng ô một của SheetA cột A2:A1500 sau mỗi lần click nút mũi tên < ạ. Myvar và target là dữ liệu của cột A trong SheetA ạ. Xin cảm ơn !
Có phải bạn muốn nói Nếu ô đang chọn là A3, khi bấm vào thì nó sẽ chọn ô A2 phải không?
Có các trường hợp xảy ra:
- Nếu đang ở ô A2 thì nó đứng lại và thông báo giới hạn hay phải chọn ô A1500?
- Nếu đang chọn là khối ô VD như A4:A10 thì bấm vào nó sẽ chọn thế nào? Chọn ô A3 hay sao?
- Nếu ô đang chọn, không thuộc nhóm ô A2:A1500 thì nó sẽ như thế nào?
 
Upvote 0
Có phải bạn muốn nói Nếu ô đang chọn là A3, khi bấm vào thì nó sẽ chọn ô A2 phải không?
Có các trường hợp xảy ra:
- Nếu đang ở ô A2 thì nó đứng lại và thông báo giới hạn hay phải chọn ô A1500?
- Nếu đang chọn là khối ô VD như A4:A10 thì bấm vào nó sẽ chọn thế nào? Chọn ô A3 hay sao?
- Nếu ô đang chọn, không thuộc nhóm ô A2:A1500 thì nó sẽ như thế nào?
Tiêu đề trong file dễ hiểu a ạ, a bấm nút 1 2 đến ô nào thì bấm nút mũi tên < nó sẽ lùi lại một bước, giống như mình bấm back trong file excel ạ.
 
Upvote 0
Tiêu đề trong file dễ hiểu a ạ, a bấm nút 1 2 đến ô nào thì bấm nút mũi tên < nó sẽ lùi lại một bước, giống như mình bấm back trong file excel ạ.
Đây nhé, không biết có đúng với ý bạn không.

Mã:
Sub back()
    Dim e As Long
    e = Sheets("A").Range("A1501").End(xlUp).Row
    If e > 1 Then
        Sheets("A").Range("A" & e).ClearContents
    End If
End Sub
 

File đính kèm

  • 123.xlsm
    41.3 KB · Đọc: 3
Upvote 0
Web KT

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

Back
Top Bottom