Tạo giao diện để phập liệu

Liên hệ QC
Cám ơn bác nhiều lặm Chúc bác có ngày nghỉ cuối tuần vui vẽ
 
- Dạo này virut lây lan qua không hiểu lý do vì sao, các bạn nên cản thận với các file tải về.
- Bạn chịu khó nhập liệu lại nha mình đã làm lại file sạch link tải như củ.

- Chúc các bạn ngày cuối tuần vui vẻ.


ĐMT
 
Tôi e rằng nếu ko có virus thì sẽ... ko vui!... Ít ra nhờ nó mà trình độ của mình tăng lên đáng kể đấy chứ... hi... hi...
ANH TUẤN
 
- Tới mùa lũ người ta thường có chủ trương sống chung với lũ, đó là các vùng bị ngập lục.
- Còn đối với người sử dụng máy vi tính thì lúc nào củng có virut đi kèm vì vậy bà con chuẩn bị tinh thần sống chung với virut đi là vừa.
 
Nguyên văn bởi Nguyễn Hương Thơm
nếu trong trường hợp mình mở rộng thêm các cột khác VD từ cột VD muốn mở thêm từ cột I đến cột K thì làm thế nào ? sửa chỗ nào trong code?
Muốn mở thêm cột, bạn phải tạo thêm textbox trên form:
-Mở cửa sổ code (Alt+F11). Mở form ở trạng thái chỉnh sửa. Hiển thị hộp Toolbox (View/toolbox). Kéo chuột lên đối tượng ab từ toolbox vào form.
-Sau khi tạo, vào properties của từng textbox đặt lại tên (txtb8,txtb9...), chỉnh tabindex có cùng số với textbox.Nếu box nào nhập nhiều dòng thì chỉnh MultiLine=true.
Sau đó vào cửa sổ code, thêm vào như sau:
-If txtb1 = "" Or txtb2 = "" Or txtb3 = "" Or txtb4 = "" Or txtb5 = "" Or txtb6 = "" Or txtb7 = "" Or txtb8 = "" Or txtb9 = "" Then
-ws.Cells(iRow, 6).Value = Me.txtb5.Value
ws.Cells(iRow, 7).Value = Me.txtb6.Value
ws.Cells(iRow, 8).Value = Me.txtb7.Value
ws.Cells(iRow, 9).Value = Me.txtb8.Value
ws.Cells(iRow, 10).Value = Me.txtb9.Value

-txtb5 = ""
txtb6 = ""
txtb7 = ""

txtb8 = ""
txtb9 = ""
Chúc bạn thành công.
 
voda đã viết:
Mình xin phép chỉnh sơ file của dmtdmtbb để đáp ứng thêm các yêu cầu sau:
-Khi nhập textb1, enter thì focus nhảy sang textb2...
-Khi nhập xong, enter thì tất cả các textb đều trống.

Thầy Voda vui lòng hướng dẫn hoặc giải thích giùm em công dụng của đoạn mã:
iRow = ws.Cells(Rows.Count, 6) _
.End(xlUp).Offset(1, 0).Row


Cảm ơn Thầy - Chúc thầy luôn vui & mạnh khỏe !
 
Ý nghĩa câu lệnh

Xin phép thầy voda cho giải thích chút xíu .Ý nghĩa câu lệnh trên như sau :
1.Kiểm tra xem cột thứ 6 (cột F) trong bảng tính ô có chứa dữ liệu cuối cùng là ô nào - Rows.Count
2.Tiếp theo di chuyển lên phía trên đến khi gặp ô trống thì dừng (nếu cột F có nhiều vùng dữ liệu không liên tục thì nó di chuyển đến ô đầu của vùng dữ liệu cuối cùng) - End(xlUp)
3.Tiếp nữa là dịch xuống 1 dòng (nhằm mục đích nhập dữ liệu mới) - Offset(1,0) --> số 1 là chỉ số dòng sẽ dịch xuống, nếu sửa thành số i thì nó dịch xuống i dòng, số 0 chỉ số cột cần dịch, trong trường hợp này là không dịch chuyển cột.
4.Cuối cùng là dùng .Row để xác định số dòng của ô đang chọn và gán vào biến iRow
 
Lần chỉnh sửa cuối:
voda đã viết:
Muốn mở thêm cột, bạn phải tạo thêm textbox trên form:
-Mở cửa sổ code (Alt+F11). Mở form ở trạng thái chỉnh sửa. Hiển thị hộp Toolbox (View/toolbox). Kéo chuột lên đối tượng ab từ toolbox vào form.
-Sau khi tạo, vào properties của từng textbox đặt lại tên (txtb8,txtb9...), chỉnh tabindex có cùng số với textbox.Nếu box nào nhập nhiều dòng thì chỉnh MultiLine=true.
Sau đó vào cửa sổ code, thêm vào như sau:
-If txtb1 = "" Or txtb2 = "" Or txtb3 = "" Or txtb4 = "" Or txtb5 = "" Or txtb6 = "" Or txtb7 = "" Or txtb8 = "" Or txtb9 = "" Then
-ws.Cells(iRow, 6).Value = Me.txtb5.Value
ws.Cells(iRow, 7).Value = Me.txtb6.Value
ws.Cells(iRow, 8).Value = Me.txtb7.Value
ws.Cells(iRow, 9).Value = Me.txtb8.Value
ws.Cells(iRow, 10).Value = Me.txtb9.Value

-txtb5 = ""
txtb6 = ""
txtb7 = ""

txtb8 = ""
txtb9 = ""
Chúc bạn thành công.

Cám ơn bạn Vosa đã HD, mình sẽ làm thử và nếu không đc sẽ làm phiền bạn sau. tks
 
Nguyên văn bởi Vungoc
giải thích giùm em công dụng của đoạn mã:
Anhphuong đã nói rõ. Mình chỉ bổ sung thêm một vài ý:
-Ta có thể phân câu lệnh làm 4 nhóm:
ws.Cells(Rows.Count, 6) : xác định địa chỉ của 1 ô trong ws. Ô này ở dòng 65536 (dòng cuối trong excel 2003), cột 6. (Rows.count: đếm tất cả dòng). Điều đó có nghĩa là ta có thể viết thành ws.Cells(65536, 6).
End(xlUp) : Từ ô đó đi lên tìm ô cuối của vùng dữ liệu cuối (tính từ trên xuống)
Offset(1, 0): Từ ô tìm được chuyển vị trí xuống 1 dòng.
Row : chỉ số dòng của ô ở vị trí được xác định.
Như vậy câu lệnh ws.Cells(Rows.Count, 6) _
.End(xlUp).Offset(1, 0).Row
trả về một giá trị để gán vào biến iRow.
Cảm ơn lời chúc của Vungoc.

 
Thực sự em đang tìm hiểu về vba, đc các bác chỉ chi tiết như thế này quả là quí hóa quá. Cám ơn tất cả mọi người
 
Web KT
Back
Top Bottom