Em xin được sự giúp đỡ: tự động chèn thêm dòng và điền mã số ở ô vừa được chèn

chothadiem

Thành viên hoạt động
Tham gia ngày
29 Tháng mười 2018
Bài viết
114
Được thích
26
Điểm
170
Tuổi
32
Em nhờ Các anh chị và Thầy cô giúp em bài toán sau ạ:
1.Khi mà cột E có Nội dung bắt đầu bằng "Cát đắp" ở vị trí đầu dòng thì tự chèn thêm 1 dòng vào ngay bên dưới và đánh mã "LMDC" vào cột C của dòng trống vừa được chèn (như dòng 5 và dòng 6 trong file đính kèm).
2.Khi mà cột E có Nội dung bắt đầu bằng "Bê tông" ở vị trí đầu dòng thì tự chèn thêm 1 dòng vào ngay bên dưới và đánh mã "LMBT" vào cột C của dòng trống vừa được chèn (như dòng 12 và dòng 13 trong file đính kèm).
3.Khi mà cột E có Nội dung bắt đầu bằng "Vữa xây" hoặc "Vữa trát" ở vị trí đầu dòng thì tự chèn thêm 1 dòng vào ngay bên dưới và đánh mã "LMV" vào cột C của dòng trống vừa được chèn (như dòng 15 và dòng 16 trong file đính kèm).
(Pass: Nếu không chèn được tự động thì giúp em cách đánh mã "LMDC",..... vào cột C như em đã nêu, còn chèn dòng em sẽ chèn thủ công ạ! :p)

Em xin cảm ơn!
12.png
 

File đính kèm

Lần chỉnh sửa cuối:

vba_gpe

Thành viên thường trực
Tham gia ngày
15 Tháng mười hai 2010
Bài viết
276
Được thích
43
Điểm
385
Nơi ở
Bốn bể là nhà
Em nhờ Các anh chị và Thầy cô giúp em bài toán sau ạ:
1.Khi mà cột E có Nội dung bắt đầu bằng "Cát đắp" ở vị trí đầu dòng thì tự chèn thêm 1 dòng vào ngay bên dưới và đánh mã "LMDC" vào cột C của dòng trống vừa được chèn (như dòng 5 và dòng 6 trong file đính kèm).
2.Khi mà cột E có Nội dung bắt đầu bằng "Bê tông" ở vị trí đầu dòng thì tự chèn thêm 1 dòng vào ngay bên dưới và đánh mã "LMBT" vào cột C của dòng trống vừa được chèn (như dòng 12 và dòng 13 trong file đính kèm).
3.Khi mà cột E có Nội dung bắt đầu bằng "Vữa xây" hoặc "Vữa trát" ở vị trí đầu dòng thì tự chèn thêm 1 dòng vào ngay bên dưới và đánh mã "LMV" vào cột C của dòng trống vừa được chèn (như dòng 15 và dòng 16 trong file đính kèm).
(Pass: Nếu không chèn được tự động thì giúp em cách đánh mã "LMDC",..... vào cột C như em đã nêu, còn chèn dòng em sẽ chèn thủ công ạ! :p)

Em xin cảm ơn!
View attachment 208811
Bạn thử thêm code này vào thử xem:
PHP:
Sub Vd()
    Dim shdata As Worksheet
    Dim shInfor As Worksheet
    Set shInfor = Sheets("infor")
    Set shdata = Sheets("Data")
    Dim i As Long
    With shdata
        For i = .Range("E" & .Rows.Count).End(xlUp).Row To 1 Step -1
            If .Range("E" & i) <> "" Then
                Dim j As Long
                For j = 2 To shInfor.Range("A600").End(xlUp).Row
                    If Left(.Range("E" & i).Value, Len(shInfor.Range("A" & j).Value)) = shInfor.Range("A" & j).Value Then
                        shdata.Range("A" & i + 1 & ":A" & i + shInfor.Range("B" & j).Value).EntireRow.Insert
                        shdata.Range("C" & i + 1).Value = shInfor.Range("C" & j).Value
                        Exit For
                    End If
                Next
            End If
        Next
    End With
End Sub
 

File đính kèm

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
2,333
Được thích
2,137
Điểm
360
Bạn thử thêm code này vào thử xem:
PHP:
Sub Vd()
    Dim shdata As Worksheet
    Dim shInfor As Worksheet
    Set shInfor = Sheets("infor")
    Set shdata = Sheets("Data")
    Dim i As Long
    With shdata
        For i = .Range("E" & .Rows.Count).End(xlUp).Row To 1 Step -1
            If .Range("E" & i) <> "" Then
                Dim j As Long
                For j = 2 To shInfor.Range("A600").End(xlUp).Row
                    If Left(.Range("E" & i).Value, Len(shInfor.Range("A" & j).Value)) = shInfor.Range("A" & j).Value Then
                        shdata.Range("A" & i + 1 & ":A" & i + shInfor.Range("B" & j).Value).EntireRow.Insert
                        shdata.Range("C" & i + 1).Value = shInfor.Range("C" & j).Value
                        Exit For
                    End If
                Next
            End If
        Next
    End With
End Sub
Cái này không ổn bạn ơi click dup là xong à.
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,100
Được thích
942
Điểm
560
Cái này không ổn bạn ơi click dup là xong à.
Đành tạm thêm điều kiện cho code trên
PHP:
If .Range("E" & i) <> "" And .Range("C" & i + 1) = "" Then

 

chothadiem

Thành viên hoạt động
Tham gia ngày
29 Tháng mười 2018
Bài viết
114
Được thích
26
Điểm
170
Tuổi
32
Lần chỉnh sửa cuối:

chothadiem

Thành viên hoạt động
Tham gia ngày
29 Tháng mười 2018
Bài viết
114
Được thích
26
Điểm
170
Tuổi
32
Đành tạm thêm điều kiện cho code trên
PHP:
If .Range("E" & i) <> "" And .Range("C" & i + 1) = "" Then
Bài đã được tự động gộp:

Bạn thử thêm code này vào thử xem:
PHP:
Sub Vd()
    Dim shdata As Worksheet
    Dim shInfor As Worksheet
    Set shInfor = Sheets("infor")
    Set shdata = Sheets("Data")
    Dim i As Long
    With shdata
        For i = .Range("E" & .Rows.Count).End(xlUp).Row To 1 Step -1
            If .Range("E" & i) <> "" Then
                Dim j As Long
                For j = 2 To shInfor.Range("A600").End(xlUp).Row
                    If Left(.Range("E" & i).Value, Len(shInfor.Range("A" & j).Value)) = shInfor.Range("A" & j).Value Then
                        shdata.Range("A" & i + 1 & ":A" & i + shInfor.Range("B" & j).Value).EntireRow.Insert
                        shdata.Range("C" & i + 1).Value = shInfor.Range("C" & j).Value
                        Exit For
                    End If
                Next
            End If
        Next
    End With
End Sub
Em cám ơn ạ!
 
Lần chỉnh sửa cuối:
Top Bottom