Tự động xóa dòng khi dữ liệu đủ điều kiện in/out

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

cuongnguyen87.bn

Thành viên mới
Tham gia
16/10/14
Bài viết
19
Được thích
1
xin chào các bác

Em đang có 1 vấn đề cần nhờ sự trợ giúp của các tiền bối, cụ thể là em đang tạo 1 file quản lý nhập xuất và hiện thị vị trí quản lý
em đang muốn là khi 1 mã có đầy đủ dữ liệu in/out trong "sheets data input" thì tự động xóa nhưng dòng đấy trong sheets này đi ạ
pass: cuong214 để mở file
Nhờ các tiền bối hỗ trợ em với ạ
em xin chân thành cảm ơn ạ
 

File đính kèm

  • Location_1.xlsm
    53.9 KB · Đọc: 10
Nếu có ví dụ cụ thể dẫn dắt thì tốt biết bao nhiêu!
 
Upvote 0
Upvote 0
Nếu số lượng của cái in và out nó khác nhau thì bạn tính đến trường hợp đ
cái input và output này theo mã pack khi nhập vào ạ, em làm hàm khi có input rồi sẽ không input được nữa và chỉ có output, vì vậy khi có output em đang muốn bên sheet data input kia nó xóa cả dòng in và out đi, để lần sau em lại in lại được
 
Upvote 0
cái input và output này theo mã pack khi nhập vào ạ, em làm hàm khi có input rồi sẽ không input được nữa và chỉ có output, vì vậy khi có output em đang muốn bên sheet data input kia nó xóa cả dòng in và out đi, để lần sau em lại in lại được
ý mình là chẳng hạn pack 1 input 300
nhưng output 100. thế thì cũng xóa cả 2 dòng đi à
 
Upvote 0
vâng xóa cả ấy ạ, vì khi out sẽ out cả ạ bác
bạn có thể tạo cột phụ đếm theo điều kiện cả out lẫn in của 1 mã. Nếu xuất hiện cả 2 thì đánh dấu lại. rồi duyệt qua những cái đánh dấu ấy. cái nào thỏa mãn thì xóa cả dòng đi
 
Upvote 0
Bài này thì làm vèo cái là xong, mỗi tội mình không phải là "Tiền bối" nên chỉ dám đứng nhìn.
các bác đi trước am hiểu đều là tiền bối mà, em thử tạo cột đếm điều kiện nhưng chưa biết cách làm sao xóa đi được, em k rành mảng này lắm, bác hỗ trợ em với nhé
 
Upvote 0
Cách xóa cần kiến thức VBA tối thiểu:
Bước chuẩn bị:
Lập danh sách duy nhất (DSDN)
Tạo vòng lặp duyệt qua toàn bộ DSDN này
Áp dụng phương thức FIND() để tìm ra các dòng thỏa điều kiện
Các dòng này được lưu vô 1 tham biến;
Cuối cùng là xóa
 
Upvote 0
Cách xóa cần kiến thức VBA tối thiểu:
Bước chuẩn bị:
Lập danh sách duy nhất (DSDN)
Tạo vòng lặp duyệt qua toàn bộ DSDN này
...
Làm được cái Msgbox này là trên mức VBA tối thiểu rồi
(đoạn sub này trong sheet 1, định tò mò click thử, mà sao rén quá, hahaha)

1723811741344.png
 
Upvote 0
Xài đỡ cái này nhé.
Nó sẽ duyệt từ dưới lên, tìm những cặp nào có cùng mã, cùng SL và có input và output tương ứng, delete ô đó. Sau khi tìm xong thì sẽ xóa cả dòng luôn 1 lần.

PHP:
Option Explicit
Sub xoaInputOutput()
Dim lr&, i&, j&
Dim pck As String, qty&
lr = Cells(Rows.Count, "B").End(xlUp).Row
For i = lr To 5 Step -1
    If Cells(i, "F") = "Output" Then
        pck = Cells(i, "B"): qty = Cells(i, "D")
        For j = i - 1 To 5 Step -1
            If Cells(j, "B") = pck And Cells(j, "D") = qty And Cells(j, "F") = "Input" Then
                Cells(j, "F").ClearContents
                Cells(i, "F").ClearContents
                Exit For
            End If
        Next
    End If
Next
Range("F5:F" & lr).SpecialCells(xlBlanks).EntireRow.Delete
End Sub
 

File đính kèm

  • Location_1.xlsm
    50.3 KB · Đọc: 5
Upvote 0
Xài đỡ cái này nhé.
Nó sẽ duyệt từ dưới lên, tìm những cặp nào có cùng mã, cùng SL và có input và output tương ứng, delete ô đó. Sau khi tìm xong thì sẽ xóa cả dòng luôn 1 lần.

PHP:
Option Explicit
Sub xoaInputOutput()
Dim lr&, i&, j&
Dim pck As String, qty&
lr = Cells(Rows.Count, "B").End(xlUp).Row
For i = lr To 5 Step -1
    If Cells(i, "F") = "Output" Then
        pck = Cells(i, "B"): qty = Cells(i, "D")
        For j = i - 1 To 5 Step -1
            If Cells(j, "B") = pck And Cells(j, "D") = qty And Cells(j, "F") = "Input" Then
                Cells(j, "F").ClearContents
                Cells(i, "F").ClearContents
                Exit For
            End If
        Next
    End If
Next
Range("F5:F" & lr).SpecialCells(xlBlanks).EntireRow.Delete
End Sub
em cảm ơn bác nhé, đúng ý em đang muốn làm rồi ạ
 
Upvote 0
Web KT

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

Back
Top Bottom