Hỏi về sửa dữ liệu đã ghi qua luôn trong form nhập liêu?

Liên hệ QC

maytinhvp01

Thành viên thường trực
Tham gia
27/7/13
Bài viết
390
Được thích
179
Mình đã tìm trên diễn đàn nhưng không thấy có topic cụ thể nào nên mạo muội lại mở topic này mong anh em giúp cho. cụ thể làm luôn cho mình vào file đính kèm.Trong đó mình ghi rất cụ thể
Mong nhận được trả lời sớm!!!
 

File đính kèm

Bạn sử dụng thử Dictionary xem, lấy Key là STT, Item tương ứng bằng STT luôn. Khi nhấp "Sửa dữ liệu" thì chương trình tìm đến dòng (thông qua thuộc tính Item của Dictionary) trên Sheet và sửa trực tiếp luôn vậy.

Trước đó, bạn sử dụng sự kiện ListBox1_Click() trên userform, để khi click vào dòng nào đó trên userform thì các thông số trên hàm đó truyền tới textbox tương ứng. Thông qua câu lệnh:
UserForm1.stt.Caption = UserForm1.listbox1.column(0)
...

/-*+/ theo ý mình thì phần đặt tên cho Textbox bạn để mặc định Textbox1, Textbox2, .... Khi đó việc điền dữ liệu chỉ cần dòng lệnh For .. to.. là gọn (vì form của bạn cũng không nhiều đối tượng textbox lắm)
 
Upvote 0
Bạn sử dụng thử Dictionary xem, lấy Key là STT, Item tương ứng bằng STT luôn. Khi nhấp "Sửa dữ liệu" thì chương trình tìm đến dòng (thông qua thuộc tính Item của Dictionary) trên Sheet và sửa trực tiếp luôn vậy.

Trước đó, bạn sử dụng sự kiện ListBox1_Click() trên userform, để khi click vào dòng nào đó trên userform thì các thông số trên hàm đó truyền tới textbox tương ứng. Thông qua câu lệnh:
UserForm1.stt.Caption = UserForm1.listbox1.column(0)
...

/-*+/ theo ý mình thì phần đặt tên cho Textbox bạn để mặc định Textbox1, Textbox2, .... Khi đó việc điền dữ liệu chỉ cần dòng lệnh For .. to.. là gọn (vì form của bạn cũng không nhiều đối tượng textbox lắm)

Mình chưa sử dụng, cũng như chưa vọc dược cai code nào về dictionarymặc dù cũng đã đọc qua trên diễn đàn về nó.Vậy mình biết là sẽ không làm được theo ý bạn nói. cảm ơn bạn nhé!
 
Upvote 0
Bài này không ai giup mình sao? thôi lại đợi vây?
 
Upvote 0
Bài này không ai giup mình sao? thôi lại đợi vây?

Thêm code này vào UserForm xem:
Mã:
Private Sub CommandButton1_Click()
  Dim i As Long, arr(1 To 4)
  i = ListBox1.ListIndex
  arr(1) = stt.Text: arr(2) = ten.Text
  arr(3) = ma.Text: arr(4) = kh.Text
  If i > -1 Then
    Sheet1.Range("vung").Offset(i).Resize(1).Value = arr
  End If
End Sub

Private Sub ListBox1_Click()
  Dim i As Long
  With Me.ListBox1
    i = .ListIndex
    stt.Text = .List(i, 0)
    ten.Text = .List(i, 1)
    ma.Text = .List(i, 2)
    kh.Text = .List(i, 3)
  End With
End Sub
Code viết đơn giản cho bạn dễ đọc, dễ sửa
 
Upvote 0
Thêm code này vào UserForm xem:
Mã:
Private Sub CommandButton1_Click()
  Dim i As Long, arr(1 To 4)
  i = ListBox1.ListIndex
  arr(1) = stt.Text: arr(2) = ten.Text
  arr(3) = ma.Text: arr(4) = kh.Text
  If i > -1 Then
    Sheet1.Range("vung").Offset(i).Resize(1).Value = arr
  End If
End Sub

Private Sub ListBox1_Click()
  Dim i As Long
  With Me.ListBox1
    i = .ListIndex
    stt.Text = .List(i, 0)
    ten.Text = .List(i, 1)
    ma.Text = .List(i, 2)
    kh.Text = .List(i, 3)
  End With
End Sub
Code viết đơn giản cho bạn dễ đọc, dễ sửa

Cảm ơn anh nhiều! đúng là em đang cần và cũng là đang muốn học nữa ạ.
 
Upvote 0
Cảm ơn anh nhiều! đúng là em đang cần và cũng là đang muốn học nữa ạ.
Bạn cho mình hỏi là mình có sửa ffile của bạn để dùng.Mọi thứ đều ổn chi riêng phần listbox là chư được.File của bạn là từ A6:D23 giờ mình muốn sửa thành từ A6:H23 thì làm thế nào, m sửa ,mãi mà k được, phàn nhập thì m sủa được rồi
 
Upvote 0
Bạn cho mình hỏi là mình có sửa ffile của bạn để dùng.Mọi thứ đều ổn chi riêng phần listbox là chư được.File của bạn là từ A6:D23 giờ mình muốn sửa thành từ A6:H23 thì làm thế nào, m sửa ,mãi mà k được, phàn nhập thì m sủa được rồi

Bạn vào sửa Name range lại theo như vùng bạn nêu, sau đó vào Form thêm 4 dòng code của đoạn code

Private Sub ListBox1_Change()

Và sửa A:D thành A:H cùa tất cả các dòng code.

Lưu ý:
Code cho nút nhập bạn cũng phải thêm 4 dòng code tương ứng.
 
Upvote 0
Mình sửa rồi mà vẫn k được,m gửi file lên bạn xem dùm với nhé
 

File đính kèm

Upvote 0
Mình sửa rồi mà vẫn k được,m gửi file lên bạn xem dùm với nhé

Tôi làm luôn giùm cho bạn.

Lưu ý:
- Tiêu đề bạn không được để chung 1 dòng.
- Để nhập liệu vào bảng tính, Click vào list Box để lấy dữ liệu thích hợp đưa vào Form, sửa nội dung cần sửa và nhấn nút Nhập liệu.
- Để sửa dữ liệu, Click vào list Box để lấy dữ liệu cẩn sửa vào Form, sửa nội dung cần sửa và nhấn nút sửa dữ liệu.
- Không click vào vùng trống bên dưới list Box, vì không có dữ liệu Load vào Form sẽ bị lỗi, nhấn nút End để thoát khỏi lỗi.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin lỗi:

- Do File trên tôi làm trên màn hình 19', quên kiểm tra nên khi mở form trên màn hình 17' nó sẽ bị khuất 1 phần không nhìn thấy được.

- Hôm nay tôi tải lại File đã sửa lại theo màn hình 17', mong các bạn thông cãm (sơ xuất trên).
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Hiện ngày trên form

Xin lỗi:

- Do File trên tôi làm trên màn hình 19', quên kiểm tra nên khi mở form trên màn hình 17' nó sẽ bị khuất 1 phần không nhìn thấy được.

- Hôm nay tôi tải lại File đã sửa lại theo màn hình 17', mong các bạn thông cãm (sơ xuất trên).
Các thầy giúp đoạn code để phần ngày đúc tren form tự hiện ngày k phải nhập được k, e viết code mà nó báo lỗi hoài
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mọi người cho e hỏi sao khi e thêm code để hiện ngày trên form nó lại bào lỗi chỗ chữ Format vậy ah.cụ thể e thêm nhu sau
Tại: Private Sub UserForm_Initialize()
Mã:
Me.txtNgayDuc = Format(Now, "dd/mm/yyyy")
Tại: Private Sub cmdNhapLieu_Click()
Mã:
  Me.txtNgayDuc = Format(Me.txtNgayDuc, "dd/mm/yyyy")
 
Upvote 0
Tôi làm luôn giùm cho bạn.

Lưu ý:
- Tiêu đề bạn không được để chung 1 dòng.
- Để nhập liệu vào bảng tính, Click vào list Box để lấy dữ liệu thích hợp đưa vào Form, sửa nội dung cần sửa và nhấn nút Nhập liệu.
- Để sửa dữ liệu, Click vào list Box để lấy dữ liệu cẩn sửa vào Form, sửa nội dung cần sửa và nhấn nút sửa dữ liệu.
- Không click vào vùng trống bên dưới list Box, vì không có dữ liệu Load vào Form sẽ bị lỗi, nhấn nút End để thoát khỏi lỗi.

Nếu có hàng trăm dòng trên ListBox thì việc tìm đúng dòng mình muốn sữa dữ liệu thì rất lâu, nên mình muốn thêm textBox để tìm đúng dòng mình muốn sữa DỮ LIỆU bằng cách tìm dòng theo điều kiện """cột mã số SP""" thì code phải viết như thể nào để khi mình gõ """mã số SP""" trên textBox1 thì trên listBox nó chỉ hiện những dòng có mã số SP đó thôi, khi đó việc sữa dữ liệu sẽ nhanh hơn nếu có nhiều dòng dữ liệu, mong mọi người giúp đỡ
 
Upvote 0
bạn ơi, cho mình hỏi mình muốn đổi tên VD Mayduc thành tên khác sao không được hả bạn
 
Upvote 0
Thêm code này vào UserForm xem:
Mã:
Private Sub CommandButton1_Click()
  Dim i As Long, arr(1 To 4)
  i = ListBox1.ListIndex
  arr(1) = stt.Text: arr(2) = ten.Text
  arr(3) = ma.Text: arr(4) = kh.Text
  If i > -1 Then
    Sheet1.Range("vung").Offset(i).Resize(1).Value = arr
  End If
End Sub

Private Sub ListBox1_Click()
  Dim i As Long
  With Me.ListBox1
    i = .ListIndex
    stt.Text = .List(i, 0)
    ten.Text = .List(i, 1)
    ma.Text = .List(i, 2)
    kh.Text = .List(i, 3)
  End With
End Sub
Code viết đơn giản cho bạn dễ đọc, dễ sửa
anh ơi, em tạo 1 file data để lưu dữ liệu. em muốn thay đổi dữ liệu trên file form thì phải viết hàm ntn để mình tìm được dòng cần thay đổi trên file data ạ?
 
Upvote 0
Web KT

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

Back
Top Bottom