ngoquoclinh_00
Thành viên mới
- Tham gia
- 18/4/10
- Bài viết
- 25
- Được thích
- 1
Mình có tạo listbox gồm danh mục các hạng mục nghiệm thu, mỗi khi click chuột thì các dữ liệu của dòng có trong listbox sẽ được hiện ngược lại cho textbox cho tiện theo dõi và cập nhật (nếu có). Mọi thứ đều ổn cho đến khi mình nhấn update (sửa dữ liệu textbox) thì chỉ có cột đầu tiên là được update, mình đã rà soát kỹ nhưng vẫn không hiểu được là tại sao dữ liệu ở cột thứ nhất được update nhưng các cột còn lại thì không. Nhờ mọi người xem giúp chỉ giáo cho mình. Chân thành cảm ơn!
Private Sub CB_SUAHANGMUC_Click()
Dim er As Long
er = dshangmuc.ListIndex
Sheets("Ma BB").Range("F" & 28 + er).Value = TB_GLOBAL.Text
Debug.Print TB_GLOBAL
Sheets("Ma BB").Range("G" & 28 + er).Value = TB_LOCAL.Text
Debug.Print TB_LOCAL
Sheets("Ma BB").Range("H" & 28 + er).Value = TB_CUONGDO.Text
Debug.Print TB_CUONGDO
Sheets("Ma BB").Range("I" & 28 + er).Value = TB_CAUKIEN.Text
Debug.Print TB_CAUKIEN
If CK_COTTHEP = True Then
Sheets("Ma BB").Range("J" & 28 + er).Value = "YES"
End If
UserForm_Initialize
End Sub
Private Sub dshangmuc_Click()
With Me
.TB_GLOBAL.Value = .dshangmuc.List(.dshangmuc.ListIndex, 0)
.TB_LOCAL.Value = .dshangmuc.List(.dshangmuc.ListIndex, 1)
.TB_CAUKIEN.Value = .dshangmuc.List(.dshangmuc.ListIndex, 2)
.TB_CUONGDO.Value = .dshangmuc.List(.dshangmuc.ListIndex, 3)
If .dshangmuc.List(.dshangmuc.ListIndex, 4) = "YES" Then
.CK_COTTHEP = True
Else: .CK_COTTHEP = False
End If
End With
End Sub
Private Sub CB_themhangmuc_Click()
Dim er As Long
er = Sheets("Ma BB").Range("F" & Rows.Count).End(xlUp).Row + 1
Sheets("Ma BB").Range("F" & er).Value = TB_GLOBAL
Sheets("Ma BB").Range("G" & er).Value = TB_LOCAL
Sheets("Ma BB").Range("H" & er).Value = TB_CUONGDO
Sheets("Ma BB").Range("I" & er).Value = TB_CAUKIEN
If CK_COTTHEP = True Then
Sheets("Ma BB").Range("J" & er).Value = "YES"
End If
UserForm_Initialize
End Sub
Private Sub UserForm_Initialize()
Dim arr, kq, kq1 As Variant
Dim i, j, v, n, no, lr, er As Long
Dim dic As Object
Dim key As Variant
Dim dm As Range
Sheets("Ma BB").Range("M27:XFD1000").Clear ' Xoa du lieu truoc khi bung ra
no = Application.WorksheetFunction.CountA(Sheets("Ma BB").Range("F28:F5000"))
If no = 0 Then
Exit Sub
End If
Set dic = CreateObject("Scripting.dictionary") ' Tao dictionary
ReDim arr(1 To no)
arr = Sheets("Ma BB").Range("F28:G" & 27 + no).Value
n = 0
For i = 1 To UBound(arr, 1)
If Not dic.exists(arr(i, 1)) Then
dic.Add arr(i, 1), arr(i, 1) ' add key & item
End If
Next i
f = 0
On Error Resume Next
For Each key In dic.keys
ReDim kq1(1 To UBound(arr, 1) * UBound(arr, 2))
v = 1
For i = 1 To UBound(arr)
If arr(i, 1) = key Then
v = v + 1
kq1(1) = arr(i, 1)
kq1(v) = arr(i, 2)
End If
Next i
f = f + 1
Sheets("Ma BB").Cells(27, 12 + f).Resize(v, 1) = WorksheetFunction.Transpose(kq1) ' sap xep thong ke lai du lieu
Next key
er = Sheets("Ma BB").Range("F" & Rows.Count).End(xlUp).Row + 1
Set dm = Sheets("Ma BB").Range("F28:J" & er)
dshangmuc.RowSource = dm.Address
dshangmuc.RowSource = dm.Address(External:=True) ' khai bao list box
End Sub
Private Sub CB_SUAHANGMUC_Click()
Dim er As Long
er = dshangmuc.ListIndex
Sheets("Ma BB").Range("F" & 28 + er).Value = TB_GLOBAL.Text
Debug.Print TB_GLOBAL
Sheets("Ma BB").Range("G" & 28 + er).Value = TB_LOCAL.Text
Debug.Print TB_LOCAL
Sheets("Ma BB").Range("H" & 28 + er).Value = TB_CUONGDO.Text
Debug.Print TB_CUONGDO
Sheets("Ma BB").Range("I" & 28 + er).Value = TB_CAUKIEN.Text
Debug.Print TB_CAUKIEN
If CK_COTTHEP = True Then
Sheets("Ma BB").Range("J" & 28 + er).Value = "YES"
End If
UserForm_Initialize
End Sub
Private Sub dshangmuc_Click()
With Me
.TB_GLOBAL.Value = .dshangmuc.List(.dshangmuc.ListIndex, 0)
.TB_LOCAL.Value = .dshangmuc.List(.dshangmuc.ListIndex, 1)
.TB_CAUKIEN.Value = .dshangmuc.List(.dshangmuc.ListIndex, 2)
.TB_CUONGDO.Value = .dshangmuc.List(.dshangmuc.ListIndex, 3)
If .dshangmuc.List(.dshangmuc.ListIndex, 4) = "YES" Then
.CK_COTTHEP = True
Else: .CK_COTTHEP = False
End If
End With
End Sub
Private Sub CB_themhangmuc_Click()
Dim er As Long
er = Sheets("Ma BB").Range("F" & Rows.Count).End(xlUp).Row + 1
Sheets("Ma BB").Range("F" & er).Value = TB_GLOBAL
Sheets("Ma BB").Range("G" & er).Value = TB_LOCAL
Sheets("Ma BB").Range("H" & er).Value = TB_CUONGDO
Sheets("Ma BB").Range("I" & er).Value = TB_CAUKIEN
If CK_COTTHEP = True Then
Sheets("Ma BB").Range("J" & er).Value = "YES"
End If
UserForm_Initialize
End Sub
Private Sub UserForm_Initialize()
Dim arr, kq, kq1 As Variant
Dim i, j, v, n, no, lr, er As Long
Dim dic As Object
Dim key As Variant
Dim dm As Range
Sheets("Ma BB").Range("M27:XFD1000").Clear ' Xoa du lieu truoc khi bung ra
no = Application.WorksheetFunction.CountA(Sheets("Ma BB").Range("F28:F5000"))
If no = 0 Then
Exit Sub
End If
Set dic = CreateObject("Scripting.dictionary") ' Tao dictionary
ReDim arr(1 To no)
arr = Sheets("Ma BB").Range("F28:G" & 27 + no).Value
n = 0
For i = 1 To UBound(arr, 1)
If Not dic.exists(arr(i, 1)) Then
dic.Add arr(i, 1), arr(i, 1) ' add key & item
End If
Next i
f = 0
On Error Resume Next
For Each key In dic.keys
ReDim kq1(1 To UBound(arr, 1) * UBound(arr, 2))
v = 1
For i = 1 To UBound(arr)
If arr(i, 1) = key Then
v = v + 1
kq1(1) = arr(i, 1)
kq1(v) = arr(i, 2)
End If
Next i
f = f + 1
Sheets("Ma BB").Cells(27, 12 + f).Resize(v, 1) = WorksheetFunction.Transpose(kq1) ' sap xep thong ke lai du lieu
Next key
er = Sheets("Ma BB").Range("F" & Rows.Count).End(xlUp).Row + 1
Set dm = Sheets("Ma BB").Range("F28:J" & er)
dshangmuc.RowSource = dm.Address
dshangmuc.RowSource = dm.Address(External:=True) ' khai bao list box
End Sub