Kiểm tra dòng xem có dữ liệu không ? (1 người xem)

Liên hệ QC

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

Xin chào ACE trên diễn đàn . Tôi có 1 vấn đề muốn nhờ ACE giúp đỡ, xem file đính kèm . Xin chân thành cám ơn

Mình nghĩ: Với yêu cầu trong file của bạn thì chỉ cần dùng VLOOKUP là được chứ nhỉ, đâu cần phải lập trình VBA. Hay ý bạn khác mà mình chưa hiểu. Bạn thử công thức này cho ô C9 xem sao.

=VLOOKUP(B9,Sheet2!$A$5:$B$103,2,0)
 
Upvote 0
Nếu bạn muốn tìm hiểu Code thì bạn thử code đơn giản này cho sheet 1 nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [b9]) Is Nothing Then
        [c9] = Sheet2.Cells(Target.Value + 4, 2)
End If
End Sub
 
Upvote 0
Chào bạn nhung12005. Cám ơn công thức của bạn nhé, bạn giúp tôi 1 công thức nữa cũng ở file như vậy nhưng yêu cầu là: ở sheet1 gõ STT vào B9, điền dữ liệu vào C9, nó tự nhẩy vào C9 ở sheet2 đúng vào dòng có STT mà mình gõ ( nếu C9 ở sheet2 có dữ liệu rồi thì nó tự cộng vào).
 
Upvote 0
Nếu bạn muốn tìm hiểu Code thì bạn thử code đơn giản này cho sheet 1 nhé
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [b9]) Is Nothing Then
        [c9] = Sheet2.Cells(Target.Value + 4, 2)
End If
End Sub
Bạn làm ơn gán vào file cho tôi, tôi làm nó toàn bị lỗi, xin cám ơn
 
Upvote 0
Bạn làm ơn gán vào file cho tôi, tôi làm nó toàn bị lỗi, xin cám ơn
Mình đưa giúp CODE vào file đây, bạn kiểm tra giúp mình nhé!
Chào bạn nhung12005. Cám ơn công thức của bạn nhé, bạn giúp tôi 1 công thức nữa cũng ở file như vậy nhưng yêu cầu là: ở sheet1 gõ STT vào B9, điền dữ liệu vào C9, nó tự nhẩy vào C9 ở sheet2 đúng vào dòng có STT mà mình gõ ( nếu C9 ở sheet2 có dữ liệu rồi thì nó tự cộng vào).
Chạy thử code này :
PHP:
Sub Timso()
Dim Rng As Range, fAddress As String
Dim Clls As Range, Lcell As Range
If [B9].Value <> "" Then
Set Lcell = Sheet2.[A103]
Set Clls = Sheet1.[B9]
Set Rng = Sheet2.Range("A5:A" & Sheet2.[A65536].End(xlUp).Row).Find(Clls, after:=Lcell, LookIn:=xlValues, LookAt:=xlWhole)
fAddress = Rng.Address
If Not Rng Is Nothing Then
    Do
        Rng.Offset(, 1).Value = Rng.Offset(, 1).Value + Clls.Offset(, 1).Value
    Loop While fAddress <> Rng.Address
End If
End If
End Sub
Xem trong file đính kèm nhé (File yêu cầu 2 nhé ), tôi đã để nó trong sự kiện Worksheet_Change, bạn test xem có vấn đề gì không nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chào bạn nhung12005. Cám ơn công thức của bạn nhé, bạn giúp tôi 1 công thức nữa cũng ở file như vậy nhưng yêu cầu là: ở sheet1 gõ STT vào B9, điền dữ liệu vào C9, nó tự nhẩy vào C9 ở sheet2 đúng vào dòng có STT mà mình gõ ( nếu C9 ở sheet2 có dữ liệu rồi thì nó tự cộng vào).
Nếu dữ liệu đúng dòng, đúng cột, STT liên tục thì thử file 2 trong 1 này thử coi.
Nhập STT hiện giá trị. Nhập giá trị thì cộng thêm vào giá trị cũ.
 

File đính kèm

Upvote 0
Nếu dữ liệu đúng dòng, đúng cột, STT liên tục thì thử code 2 trong 1 này thử coi.
Nhập STT hiện giá trị. Nhập giá trị thì cộng thêm vào giá trị cũ.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$9" Then
            Target.Offset(, 1).Value = Sheet2.Cells(Target.Value + 4, 2).Value
ElseIf Target.Address = "$C$9" Then
            Sheet2.Cells(Target.Offset(, -1).Value + 4, 2).Value = Sheet2.Cells(Target.Offset(, -1).Value + 4, 2).Value + Target.Value
End If
Application.EnableEvents = True
End Sub
-----------------------------
Sao bị "Tổ trác" vậy Trời, Sửa bài viết thành bài viết mới!
Híc!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin chân thành cám ơn các bạn nhé, cái nào dùng cũng hay cả
 
Upvote 0
Nếu chỉ cần như yêu cầu bạn ghi trong file thì thử code này xem có được không ?
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Address = "$B$9" Then
        [c9].ClearContents
        [c9] = Sheets("sheet2").[a:a].Find(Target, , , 2)(1, 2)
    End If
End Sub
 
Upvote 0
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$9" Then
            Target.Offset(, 1).Value = Sheet2.Cells(Target.Value + 4, 2).Value
ElseIf Target.Address = "$C$9" Then
            Sheet2.Cells(Target.Offset(, -1).Value + 4, 2).Value = Sheet2.Cells(Target.Offset(, -1).Value + 4, 2).Value + Target.Value
End If
Application.EnableEvents = True
End Sub
-----------------------------
Bạn ơi, phát sinh vấn đề: trong cột STT có cả "text" thì sửa code thế nào vậy? (VD: "dauso96","dauso97","dauso98"....v.v).
 
Upvote 0
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$9" Then
            Target.Offset(, 1).Value = Sheet2.Cells(Target.Value + 4, 2).Value
ElseIf Target.Address = "$C$9" Then
            Sheet2.Cells(Target.Offset(, -1).Value + 4, 2).Value = Sheet2.Cells(Target.Offset(, -1).Value + 4, 2).Value + Target.Value
End If
Application.EnableEvents = True
End Sub
-----------------------------
Bạn ơi, phát sinh vấn đề: trong cột STT có cả "text" thì sửa code thế nào vậy? (VD: "dauso96","dauso97","dauso98"....v.v).
Sao không "phát sinh" từ đầu nhỉ?
Thay code cũ bằng cái này thử xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim Rng(), I As Long
    Rng = Sheet2.Range(Sheet2.[A5], Sheet2.[A65000].End(xlUp)).Resize(, 2).Value
If Target.Address = "$B$9" Then
    For I = 1 To UBound(Rng, 1)
        If Rng(I, 1) = Target.Value Then Target.Offset(, 1).Value = Rng(I, 2)
    Next I
ElseIf Target.Address = "$C$9" Then
    For I = 1 To UBound(Rng, 1)
        If Rng(I, 1) = Target.Offset(, -1).Value Then
            Sheet2.Cells(I + 4, 2).Value = Sheet2.Cells(I + 4, 2).Value + Target.Value
        End If
    Next I
End If
Application.EnableEvents = True
Msgbox "Nho an nut Cam on"
End Sub
 
Upvote 0
Thật là khổ vì cái này:
Msgbox "Nho an nut Cam on"
loay hoay mãi, chạy được rồi, cám ơn bạn nhiều nhé
 
Upvote 0
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim Rng(), I As Long
    Rng = Sheet2.Range(Sheet2.[A5], Sheet2.[A65000].End(xlUp)).Resize(, 2).Value
If Target.Address = "$B$9" Then
    For I = 1 To UBound(Rng, 1)
        If Rng(I, 1) = Target.Value Then Target.Offset(, 1).Value = Rng(I, 2)
    Next I
ElseIf Target.Address = "$C$9" Then
    For I = 1 To UBound(Rng, 1)
        If Rng(I, 1) = Target.Offset(, -1).Value Then
            Sheet2.Cells(I + 4, 2).Value = Sheet2.Cells(I + 4, 2).Value + Target.Value
        End If
    Next I
End If
Application.EnableEvents = True
Msgbox "Nho an nut Cam on"
End Sub
Bạn ơi, lần này lại......, muốn $B$9 và $C$9 chuyển sang sheet3. (Tức là : có khoảng hơn chục sheet muốn 2 cell"$B$9","$C$9" được chuyển qua sheet khác cho tiện việc thao tác)
 
Upvote 0
Bạn ơi, lần này lại......, muốn $B$9 và $C$9 chuyển sang sheet3. (Tức là : có khoảng hơn chục sheet muốn 2 cell"$B$9","$C$9" được chuyển qua sheet khác cho tiện việc thao tác)
Theo tôi nghĩ:
1/ GPE là nơi học hỏi để nâng cao kiến thức, do đó trong quá trình "học" bản thân mình cũng phải "hành", người khác giúp bạn hướng giải quyết (có thể bằng hàm hoặc VBA), tự bạn phải tìm tòi, nghiên cứu để hiểu được cách làm đó, để "chế biến" lại cho phù hợp với công việc của mình chứ.
2/ Dù rất nhiệt tình nhưng tôi nghĩ các TV GPE cũng sẽ "bị oải" với kiểu hỏi của bạn, hình như bạn muốn có 1 phần mềm hoàn hảo mà tất cả đều là của người khác còn bạn thì chỉ "hỏi" thôi.
3/ Cuối cùng, những câu hỏi gây khó khăn cho bạn có thể sẽ có các bạn khác hỗ trợ, còn những câu tương tự nhau thì bạn nên tự "thực hành" nhé, như thế mới là học tập.
Tôi không có ý gì khác ngoài góp ý chân tình với bạn.
Mong bạn mau tiến bộ cùng với Giải Pháp Excel của chúng ta.
Thân mến.
 
Upvote 0
Theo tôi nghĩ:
1/ GPE là nơi học hỏi để nâng cao kiến thức, do đó trong quá trình "học" bản thân mình cũng phải "hành", người khác giúp bạn hướng giải quyết (có thể bằng hàm hoặc VBA), tự bạn phải tìm tòi, nghiên cứu để hiểu được cách làm đó, để "chế biến" lại cho phù hợp với công việc của mình chứ.
2/ Dù rất nhiệt tình nhưng tôi nghĩ các TV GPE cũng sẽ "bị oải" với kiểu hỏi của bạn, hình như bạn muốn có 1 phần mềm hoàn hảo mà tất cả đều là của người khác còn bạn thì chỉ "hỏi" thôi.
3/ Cuối cùng, những câu hỏi gây khó khăn cho bạn có thể sẽ có các bạn khác hỗ trợ, còn những câu tương tự nhau thì bạn nên tự "thực hành" nhé, như thế mới là học tập.
Tôi không có ý gì khác ngoài góp ý chân tình với bạn.
Mong bạn mau tiến bộ cùng với Giải Pháp Excel của chúng ta.
Thân mến.
Rất xin lỗi vì đã hỏi quá nhiều, cám ơn lời góp ý của bạn, thực ra thì tôi đang "học" và "hỏi", bởi vì là tự học cho nên có nhiều vấn đề khó khăn không tự giải quyết được, cũng đọc nhiều sách, xem trên mạng cũng nhiều vẫn rất mơ hồ(vì không có người hưỡng dẫn) nên tự nghĩ ra các câu hỏi để tự nghiên cứu, cũng nghiền ngẫm mấy tháng trời cũng chưa đâu vào đâu cả, rất mong ACE trên diến đàn những người đi trước chỉ giáo cho những người đi sau(giống như thầy giáo dạy những phương pháp, cách làm cho học sinh)để cùng nhau phát triển và tiến bộ.
 
Upvote 0
Rất xin lỗi vì đã hỏi quá nhiều, cám ơn lời góp ý của bạn, thực ra thì tôi đang "học" và "hỏi", bởi vì là tự học cho nên có nhiều vấn đề khó khăn không tự giải quyết được, cũng đọc nhiều sách, xem trên mạng cũng nhiều vẫn rất mơ hồ(vì không có người hưỡng dẫn) nên tự nghĩ ra các câu hỏi để tự nghiên cứu, cũng nghiền ngẫm mấy tháng trời cũng chưa đâu vào đâu cả, rất mong ACE trên diến đàn những người đi trước chỉ giáo cho những người đi sau(giống như thầy giáo dạy những phương pháp, cách làm cho học sinh)để cùng nhau phát triển và tiến bộ.
Coi chừng bạn hiểu lầm ý tôi à nghe.
Tôi không nói đến "hỏi nhiều" mà là những câu hỏi "tương tự". Đã có code cho sheet1, bạn lại nhờ làm code đó cho sheet3,...và cho cả 10 sheet giống như vậy.
Đáng lý bạn phải nghiên cứu và sẽ áp dụng cho bao nhiêu sheet mà bạn muốn chứ, trừ khi bạn đã làm được, rồi muốn gom các code này thành 1, đó là câu hỏi mới, nếu có file đính kèm và yêu cầu mới.
 
Upvote 0

File đính kèm

Upvote 0
Ý cua tôi là như vậy đấy gom tất cả thành 1 ( tôi làm mãi mà không được) bạn xem file đính kèm nhé, chạy được rồi nhưng muốn nó gọn nhẹ hơn
Hông ngủ được, làm giúp Ba Tê một phát
Đọc để hiểu bài này mệt quá. May ra thì làm trúng, còn trật thì "kiu" Ba Tê sửa, hihi.
Thân
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom