Tạo nút xóa dữ liệu đã nhập (1 người xem)

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

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

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

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
 
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()
Sheet2.Range("b2:c11").ClearContents
End Sub
 
Upvote 0
cám ơn bạn đã chỉ nhưng có thể làm trên file mình gửi được không để mình nghiên cứu từ từ ? tại mình chưa hiểu lắm
 
Upvote 0
file của bạn đây. bạn tham khảo nhé
 
Upvote 0
hỏi thông tin về nút xóa dữ lieu

em muốn xin các anh chị nào biết về tạo nút xóa dữ liệu hướng dẫn chi tiết cho em xem được không ah, em làm mãi mà không thực hiện được
 
Upvote 0
file của bạn đây. bạn tham khảo nhé
Bạn có đưa file lên cũng đừng khuyến mãi virus chứ
File của bạn có con StartUp bự chảng
Các bạn khác chú ý nha. Với file này mà Enable Macro, bị dính virus ráng chịu
 
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()
Sheet2.Range("b2:c11").ClearContents
End Sub
Em cám ơn, Nhưng cho em hỏi thêm chút, nếu trong trường hợp em muốn xoá luôn cột đó đi thì phải viết code như thế nào
Em sửa lại code của anh nhưng không được vì no chỉ xoá data thôi
"Private Sub CommandButton1_Click()
Sheet2.Range("1:10").ClearContents
End Sub"
 
Upvote 0
Em cám ơn, Nhưng cho em hỏi thêm chút, nếu trong trường hợp em muốn xoá luôn cột đó đi thì phải viết code như thế nào
Em sửa lại code của anh nhưng không được vì no chỉ xoá data thôi
"Private Sub CommandButton1_Click()
Sheet2.Range("1:10").ClearContents
End Sub"
Private Sub CommandButton1_Click()
Sheet2.Range("1:10").Delete
End Sub
em làm được rồi em cám ơn
 
Upvote 0
[/QUOTE]
Bạn có đưa file lên cũng đừng khuyến mãi virus chứ
File của bạn có con StartUp bự chảng
Các bạn khác chú ý nha. Với file này mà Enable Macro, bị dính virus ráng chịu
Em Chào thầy!
thầy có thể viết giúp em đoạn code xóa đi những dòng mà giá trị tại cột D ô nào rỗng thì xóa dòng đó đi còn không thì để nguyên.
thầy giúp em nha!!
 
Upvote 0
Cách đơn giản nhất: AutoFilter cột D theo điều kiện Blanks rồi delete
Có thể record macro quá trình này để biết code ghi thế nào[/QUOTE]
Em không hiểu code viết như thế nào hết, em kem VBA lắm
thầy viết giúp em nha!!
 
Upvote 0
Em Chào thầy!
thầy có thể viết giúp em đoạn code xóa đi những dòng mà giá trị tại cột D ô nào rỗng thì xóa dòng đó đi còn không thì để nguyên.
thầy giúp em nha!!
Cách đơn giản nhất: AutoFilter cột D theo điều kiện Blanks rồi delete
Có thể record macro quá trình này để biết code ghi thế nào
 
Lần chỉnh sửa cuối:
Upvote 0
Em Chào thầy!
thầy có thể viết giúp em đoạn code xóa đi những dòng mà giá trị tại cột D ô nào rỗng thì xóa dòng đó đi còn không thì để nguyên.
thầy giúp em nha!!
Cách đơn giản nhất: AutoFilter cột D theo điều kiện Blanks rồi delete
Có thể record macro quá trình này để biết code ghi thế nào[/QUOTE]
Em làm ra như thế này rồi mà không biết phải là thế nào để code tự xóa những dòng rỗng đi
Thầy xem giúp em với
Sub Macro2()
ActiveWindow.SmallScroll Down:=-9
Selection.AutoFilter Field:=4, Criteria1:="="
ActiveWindow.SmallScroll Down:=-12
Rows("12:18").Select
Selection.Delete Shift:=xlUp
End Sub
 
Upvote 0
Em làm ra như thế này rồi mà không biết phải là thế nào để code tự xóa những dòng rỗng đi
Thầy xem giúp em với
Sub Macro2()
ActiveWindow.SmallScroll Down:=-9
Selection.AutoFilter Field:=4, Criteria1:="="
ActiveWindow.SmallScroll Down:=-12
Rows("12:18").Select
Selection.Delete Shift:=xlUp
End Sub
Nếu làm không được thì đưa file lên đây nhé
 
Upvote 0
em đã xem file anh gửi lên, anh có thể hướng dẫn em cách tạo ra nút xóa đó được không ah
 
Upvote 0
Em tải file lên rồi mong Thầy xem và viết lại code giúp em với.
Code xóa dòng chứa cell rổng tại cột D như sau:
PHP:
Private Sub CommandButton3_Click()
  On Error Resume Next
  With Range("D4:D1000")
    .AutoFilter 1, "="
    .Offset(1).SpecialCells(12).EntireRow.Delete
    .AutoFilter
  End With
End Sub
 

File đính kèm

Upvote 0
Code xóa dòng chứa cell rổng tại cột D như sau:
PHP:
Private Sub CommandButton3_Click()  On Error Resume Next  With Range("D4:D1000")    .AutoFilter 1, "="    .Offset(1).SpecialCells(12).EntireRow.Delete    .AutoFilter  End WithEnd Sub
Em cám ơn thầy!!!Thầy giúp em viết lại code Hidden, anHidden những dòng có giá trị rỗng tại cột D với, em đang tìm hiểu về code VBA nên còn chậm lắm Thầy ạ
 
Upvote 0
Em cám ơn thầy!!!Thầy giúp em viết lại code Hidden, anHidden những dòng có giá trị rỗng tại cột D với, em đang tìm hiểu về code VBA nên còn chậm lắm Thầy ạ
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
 
Upvote 0
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

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

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

Upvote 0

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

Back
Top Bottom