ngoyeubebu
Thành viên chính thức


- Tham gia
- 7/6/13
- Bài viết
- 89
- Được thích
- 5
Không phải Pro có giúp được bạn không?Mình vào sheet HoaDon rồi nhấn nút Loa Sua Hoa Don nó hiên lên các danh sách gồm số hóa đơn , ngày , mã khách hàng , và tên khách hàng để lựa chọn . nhưng khi chọn hóa đơn cần sửa thì nó lại load hết các hóa đơn khác nữa . Các Pro giúp mình với
Thanks
Set Cl = .Find(Me.ListBox1.Value, LookIn:=xlValues)
Set Cl = .Find(Me.ListBox1.Value, LookIn:=xlValues[B][COLOR=#ff0000],[/COLOR][/B] [B][COLOR=#ff0000]Lookat:=xlWhole[/COLOR][/B])
Mình trả lời 2 thắc mắc của bạnThanks ban rất nhiều hihi.
Mình đã sửa đoạn code như bạn và nó ko lỗi nữa
Bạn có thể giải thích cho mình hiểu thêm 1 chút không hihi tại mình không hiểu rõ tại sao thêm lại thêmLookat:=xlWhole
Mình còn 1 vấn đề nữa cần bạn giúp nữa . hihi
Trong cái bảng Nhập hàng trên sheet HoaDon ý, list trong Form thì ghi là Ủng Nữ Nâu nhưng khi mình kích vào thì trên hóa đơn nó lại hiện là Ủng Nữ Đen . Mình không hiểu tại sao nữa .
thanks ban nhiều nhiều
Set Cl = Sheet1.Columns("B").Find(what:=Me.LBData.Value)
Thí nghiệm:Mình trả lời 2 thắc mắc của bạn
1/ Lookat:=xlWhole: Khi bạn tiến hành tìm kiếm không có đoạn này Excel sẽ tìm kiếm theo kiểu tương đối. Tức là tìm những ô có chứa ký tự tìm kiếm (VD: tìm số 1 thì các ô trả về có thể là 1, 10, 121, 00081, 562123 => Có chứa
Sub Test()
Dim rng As Range
Set rng = Range("A1:A10")
[COLOR=#ff0000]rng.Find("11").Select[/COLOR]
End Sub
Sub Test()
Dim rng As Range
Set rng = Range("A1:A10")
r[COLOR=#ff0000]ng.Find("11", , xlValues, xlWhole).Select[/COLOR]
End Sub
Sub Test()
Dim rng As Range
Set rng = Range("A1:A10")
[COLOR=#ff0000]rng.Find("11").Select[/COLOR]
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i
i = 11
Do
If Cells(i, 4) = "" And Cells(i, 5) = "" And Cells(i, 6) = "" And Cells(i, 7) = "" Then
Cells(i, 4).Select
frmData.Show
Exit Do
End If
i = i + 1
Loop
End Sub
Sub PrintData()
Dim j As Integer, Sl As Long
For j = 0 To 3
ActiveCell.Offset(, j) = Me.LBData.Column(j)
Next
Do
Sl = Application.InputBox("Nhap So luong cua ma " & Me.LBData, "NHAP DL", , , , , , 1)
If Sl > 0 Then
ActiveCell.Offset(, 4) = Sl
Exit Do
End If
Loop
ActiveCell.Offset(1).Select
End Sub
[B]Private Sub CmdLuuHD_Click()[/B]
Dim Cl As Range, i, j
'Kiem tra truoc khi nhap
If Ktra() Then
'Xoa nhung chung tu trung so
i = Sheet4.Cells(Sheet4.Rows.Count, 1).End(3).Row
Do
If i < 2 Then Exit Do
If Sheet4.Cells(i, 1).Value = Sheet2.[D6].Value Then
Sheet4.Cells(i, 1).Resize(, 12).Delete Shift:=xlUp
End If
i = i - 1
Loop
'Nhap du lieu vao luu
Set Cl = Sheet4.Cells(Sheet4.Rows.Count, 1).End(3).Offset(1)
For i = 11 To 29
If Sheet2.Cells(i, 4) <> "" And Sheet2.Cells(i, 8) <> 0 Then
Cl.Value = Sheet2.[D6].Value
Cl.Offset(, 1).Value = Sheet2.[H6].Value
Cl.Offset(, 2).Value = Sheet2.[H8].Value
Cl.Offset(, 3).Value = Sheet2.[E8].Value
For j = 4 To 9
Cl.Offset(, j).Value = Sheet2.Cells(i, j).Value
Next
Cl.Offset(, 10).Value = Sheet2.[I30].Value
Cl.Offset(, 11).Value = Sheet2.[I31].Value
Cl.Offset(, 12).Value = Sheet2.[I32].Value
Cl.Offset(, 13).Value = Sheet2.[I33].Value
Set Cl = Cl.Offset(1)
End If
Next
CmdNhapMoi_Click
End If
[B]End Sub [/B]
Private Sub CmdLuuHD_Click()
Dim Cl As Range, I As Long, J As Byte '<=|'
'Kiem Tra Truóc Khi Nhap:'
If Ktra() Then
'Xoa Nhung Chúng Tù Trùng Só:'
I = Sheet4.Cells(Sheet4.Rows.Count, 1).End(3).Row
Do
If I < 2 Then Exit Do
If Sheet4.Cells(I, 1).Value = Sheet2.[D6].Value Then
Sheet4.Cells(I, 1).Resize(, 12).Delete Shift:=xlUp
End If
I = I - 1
Loop
'Nhap Du Lieu Vào "Luu":'
Set Cl = Sheet4.Cells(Sheet4.Rows.Count, 1).End(3).Offset(1)
For I = 11 To 29
If Sheet2.Cells(I, 4) <> "" And Sheet2.Cells(I, 8) <> 0 Then
Cl.Value = Sheet2.[D6].Value
Cl.Offset(, 1).Value = Sheet2.[H6].Value
Cl.Offset(, 2).Value = Sheet2.[H8].Value
Cl.Offset(, 3).Value = Sheet2.[E8].Value
For J = 4 To 9
Cl.Offset(, J).Value = Sheet2.Cells(I, J).Value
Next '<=| Nen Là Next J'
Cl.Offset(, 10).Value = Sheet2.[I30].Value
Cl.Offset(, 11).Value = Sheet2.[I31].Value
Cl.Offset(, 12).Value = Sheet2.[I32].Value
Cl.Offset(, 13).Value = Sheet2.[I33].Value
Set Cl = Cl.Offset(1)
End If
Next '<=| Nen Là Next i'
CmdNhapMoi_Click
End If
End Sub
Thanks bạn rất nhiều. hihi
Nhưng còn một vấn để nữa là khi mình muốn thay đổi số lượng trên sheet hóa đơn thì tổng giá trị hóa đơn sẽ thay đổi nhưng khi mình thay đổi giá các mặt hàng thì tổng hóa đơn lại không thay đổi.
Có cách nào khắc phục điều này ko bạn.
thanks
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [H11:H29]) Is Nothing Then
Target.Offset(, 1).Value = Target.Offset(, -1).Value * Target.Value
[I30].Value = Evaluate("=sum(I11:I29)")
[I33].Value = [I30].Value - [I31].Value - [I32].Value
End If
If Not Intersect(Target, [G11:G29]) Is Nothing Then
Target.Offset(, 2).Value = Target.Offset(, 1).Value * Target.Value
[I30].Value = Evaluate("=sum(I11:I29)")
[I33].Value = [I30].Value - [I31].Value - [I32].Value
End If
If Not Intersect(Target, [I31:I32]) Is Nothing Then
[I30].Value = Evaluate("=sum(I11:I29)")
[I33].Value = [I30].Value - [I31].Value - [I32].Value
End If
End Sub
Thanks bạn rất nhiều. hihi
Nhưng còn một vấn để nữa là khi mình muốn thay đổi số lượng trên sheet hóa đơn thì tổng giá trị hóa đơn sẽ thay đổi nhưng khi mình thay đổi giá các mặt hàng thì tổng hóa đơn lại không thay đổi.
Có cách nào khắc phục điều này ko bạn.
thanks
Bạn thêm 1 cái If nữa trong Code Private Sub Worksheet_Change(ByVal Target As Range) như sau:
Mã:Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, [H11:H29]) Is Nothing Then Target.Offset(, 1).Value = Target.Offset(, -1).Value * Target.Value [I30].Value = Evaluate("=sum(I11:I29)") [I33].Value = [I30].Value - [I31].Value - [I32].Value End If If Not Intersect(Target, [G11:G29]) Is Nothing Then Target.Offset(, 2).Value = Target.Offset(, 1).Value * Target.Value [I30].Value = Evaluate("=sum(I11:I29)") [I33].Value = [I30].Value - [I31].Value - [I32].Value End If If Not Intersect(Target, [I31:I32]) Is Nothing Then [I30].Value = Evaluate("=sum(I11:I29)") [I33].Value = [I30].Value - [I31].Value - [I32].Value End If End Sub
Topic này càng lúc càng đi xa so với chủ đề ban đầu, chả liên quan gì đến Find Method cả
Đề nghị chủ topic xem lại, nếu hỏi vấn đề không liên quan thì vui lòng mở topic khác mà hỏi
(Tôi định tách bài ra mà cũng không biết là đang hỏi về vấn đề gì nữa)
Thanks ban đã góp ý.
Nếu bạn đã cảm ơn, chứng tỏ đã hiểu được VẤN ĐỀ.
Vậy bạn có 2 lựa chọn:
1> Gợi ý cho tôi 1 cái tiêu đề nào đó, tôi sẽ dời những bài không liên quan sang 1 topic khác phù hợp
2> Tự bạn mở 1 topic khác để hỏi
Đương nhiên vẫn có lựa chọn thứ 3: Tôi sẽ xóa toàn bộ các bài không liên quan ra khỏi topic này
Chờ câu trả lời của bạn
---------------
1 topic mà hỏi lung tung đủ loại chủ đề thì GPE sẽ nhanh chóng trở thành đống rác. Mai này muốn tìm kiếm 1 chủ đề nào đó cũng không phải chuyện dễ. Vậy nên tôi muốn dọn dẹp sạch ngay từ đâu. Hy vọng các bạn hợp tác cho