Làm giúp em code cho cái commandbutton

Liên hệ QC

bonzidino

Thành viên mới
Tham gia
16/5/08
Bài viết
42
Được thích
6
Kính chào ACE thân mến,
Nhờ ACE viết giúp em viết code cho cái command button (cái này em chưa biết làm)
- Trên fiel Excel em gởi kèm theo, tại sheet PX sau khi đã điền đầy đủ thông tin cần thiết, click nút SAVE thì dữ liệu (Mã thiết bị, loại thiết bị,Model, Serial) tương ứng trên sheet DL sẽ bị xoá đi và sẽ được cập nhật sang sheet FINAL.
Mong nhận được sự giúp đỡ của ACE.
Chân thành cảm ơn
 

File đính kèm

Mình chưa làm, nhưng góp ý tí:
- Phiếu nhập Phiếu xuất gì mà không có số lượng vậy?
- Phần sheet Final lưu trữ không có trường lưu số phiếu, loại phiếu, ngày ghi phiếu! Vậy lưu để làm gì! Chẳng lẽ để chơi!?
 
Upvote 0
Tranh thủ nẩng tay trên cái!

PHP:
Option Explicit
Sub XuatNhap()
 Dim lRw As Long
 With Sheets("FINAL").Range("B65500").End(xlUp).Offset(1)
    .Value = [E2]:              .Offset(, 1) = Left([d3], 1) & [f3]
    .Offset(, 2) = [b6]:        .Offset(, 3) = [d6]
    .Offset(, 4) = [d7]:        .Offset(, 5) = [b7]
    Range("B6:B7", "D6:D7") = ""
 End With
End Sub

Mình đã sáp nhập 'PX' vô 'PN' rồi đó. Trước khi muốn lưu vô final, bạn phải chọn đó là loại phiếu gì Nhập hay xuất tại ô [D3] (Dòng tiêu đề cũng sẽ đổi theo!)
Ngày tháng ghi theo ô [E2] của bạn; Số phiếu ghi vô [f3] như cũ
Xem thêm trong file đính kèm.
 

File đính kèm

Upvote 0
cảm ơn ý kiến đóng góp của bạn

Mình chưa làm, nhưng góp ý tí:
- Phiếu nhập Phiếu xuất gì mà không có số lượng vậy?
- Phần sheet Final lưu trữ không có trường lưu số phiếu, loại phiếu, ngày ghi phiếu! Vậy lưu để làm gì! Chẳng lẽ để chơi!?


- Phần số lượng mình không có vì mỗi lần xuất chỉ có 1cái nên mình căn cứ theo mỗi dòng trên sheet final, còn về ngày thì mình sẽ cập nhật theo ngày trên phiếu xuất ( sẽ bổ sung trên sheet final, tại quên, chưa có kinh nghiệm)
- Dù sao cũng chân thành cảm ơn ý kiến đóng góp của bạn, mình sẽ bổ sung thêm trường loại phiếu và số phiếu.
 
Upvote 0
Cảm ơn nhìu...nhìu....

PHP:
Option Explicit
Sub XuatNhap()
 Dim lRw As Long
 With Sheets("FINAL").Range("B65500").End(xlUp).Offset(1)
    .Value = [E2]:              .Offset(, 1) = Left([d3], 1) & [f3]
    .Offset(, 2) = [b6]:        .Offset(, 3) = [d6]
    .Offset(, 4) = [d7]:        .Offset(, 5) = [b7]
    Range("B6:B7", "D6:D7") = ""
 End With
End Sub
Mình đã sáp nhập 'PX' vô 'PN' rồi đó. Trước khi muốn lưu vô final, bạn phải chọn đó là loại phiếu gì Nhập hay xuất tại ô [D3] (Dòng tiêu đề cũng sẽ đổi theo!)
Ngày tháng ghi theo ô [E2] của bạn; Số phiếu ghi vô [f3] như cũ
Xem thêm trong file đính kèm.

Mình đã chép file về máy rồi nhưng sao khi click vào nút save nó không chạy được bạn ơi-+*/, không biết mình có cần phải cài thêm cái gì nửa không ? mình sử dụng office 2003.
 
Upvote 0
sửa giúp mình tí nửa nha

[/php]Mình đã sáp nhập 'PX' vô 'PN' rồi đó. Trước khi muốn lưu vô final, bạn phải chọn đó là loại phiếu gì Nhập hay xuất tại ô [D3] (Dòng tiêu đề cũng sẽ đổi theo!)
Ngày tháng ghi theo ô [E2] của bạn; Số phiếu ghi vô [f3] như cũ
Xem thêm trong file đính kèm.[/quote]

- Mình đã chạy được rồi (mình gà wá....hihihi...do chưa Enable macro).
- Nhờ bạn sửa thêm giúp mình cái này:
1/ Mình muốn khi xuất thiết bị nào rồi thì bên sheet DL phải xóa dòng dữ liệu đó luôn (hiện tại khi xuất rồi mà nó vẫn tồn tại bên sheet DL).
2/ Hiện tại khi click nút Save thì dữ liệu đã lưu sang sheet FINAL như mình mong muốn, nhưng nếu lỡ tay click thêm lần nửa thì nó lưu thêm 1 dòng trắng. Mình muốn nếu các chỉ tiêu chưa điền đầy đủ thì khi lỡ tay click sẽ thông báo "Vui lòng nhập đầy đủ thông tin" và dữ liệu không cập nhật vào sheet FINAL.
- Lỡ giúp thì xin giúp mình thêm tí nửa nha bạn,
- Chân thành cảm ơn bạn lần nửa !!! cho mình xin add mail hoặc mobifone của bạn nha, để thuận tiện liên lạc và hậu tạ........-\\/.
 
Upvote 0
Bonzidino ơi ở Sheet PX bạn làm sao mà để cái Drop button 1 cái nó ghi đủ dữ liệu ở sheet DV và Sheet DL thế chỉ mình với
 
Upvote 0
Nhờ bạn sửa thêm giúp mình cái này:
2/ Hiện tại khi click nút Save thì dữ liệu đã lưu sang sheet FINAL như mình mong muốn, nhưng nếu lỡ tay click thêm lần nửa thì nó lưu thêm 1 dòng trắng. Mình muốn nếu các chỉ tiêu chưa điền đầy đủ thì khi lỡ tay click sẽ thông báo "Vui lòng nhập đầy đủ thông tin" và dữ liệu không cập nhật vào sheet FINAL.
- Lỡ giúp thì xin giúp mình thêm tí nửa nha bạn,
- Chân thành cảm ơn bạn lần nửa !!! cho mình xin add mail hoặc mobifone của bạn nha, để thuận tiện liên lạc và hậu tạ........-\\/.
Bạn phải chuột vô thanh SheetName có tên là 'FX' sẽ thấy dòng View Code Bấm vô nó sẽ thấy nội dung 1 macro đã có sẵn;
Bạn copy cái này đè lên nó, là xong câu (2) cho bạn rồi;
Câu (1) chờ thêm đi, dục tốc bất đạt!
PHP:
Private Sub CommandButton1_Click()
 If [B6] = "" Or [b7] = "" Or [D6] = "" Or [D7] = "" Then
    MsgBox "DAY DU VO CAC O CAN THIET", , "GPE.COM: HAY NHAP SO LIEU"
 Else
    XuatNhap
 End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Phải hỏi lại trước khi giải câu 1

Trong 4 trường của sheets("DL") thì trường nào là duy nhất vậy?
Đó là trường [MaTB] phải không?
Chủ topic cho biết cái nha! & nhớ nhấn tín hiệu, rằng đã đọc bài này!

Xin MOD/SMOD gộp bài này lên bài trên, một khi tác giả topic đã đọc.
Rất cảm ơn MOD/SMOD!
 
Lần chỉnh sửa cuối:
Upvote 0
Yes, đúng rồi. Căn cứ vào trường MãTB. Mình cũng đang tự mò mẫm làm để biết thêm.
Theo mình nghĩ có thể sau khi cập nhật dữ liệu vào sheet FINAL, mình sẽ dò tìm MãTB trên sheet FINAL và sheet DL nếu trùng nhau thì delete bên sheet DL. Không biết nghĩ như thế có đúng không.
 
Upvote 0
Chúc mừng xuân mới!

Yes, đúng rồi. Căn cứ vào trường MãTB. Mình cũng đang tự mò mẫm làm để biết thêm.
Theo mình nghĩ có thể sau khi cập nhật dữ liệu vào sheet FINAL, mình sẽ dò tìm MãTB trên sheet FINAL và sheet DL nếu trùng nhau thì delete bên sheet DL. Không biết nghĩ như thế có đúng không.
Thật ra mình cũng không cần đến bạn khẳng định việc đó đâu; Nhưng muốn rằng bạn nên đặt câu hỏi rõ ràng hơn ở những lần sau mà thôi!
Macro này có thể cần kiểm tra thêm trong file đính kèm.
Trong file, các ô [B6], [D6:D7] mình đã gán công thức & khi bạn chọn [MaTB] trong [B7] đúng thì sẽ hiện dữ liệu trong các ô công thức ghép sẵn.
Nếu bạn thấy cách đó thuận lợi sau những lần chạy thử macro thì giữ nguyên, còn không thì theo ý bạn, vậy nha!

PHP:
Option Explicit
Sub XuatNhap()
 Dim Rng As Range, sRng As Range
 With Sheets("FINAL").Range("B65500").End(xlUp).Offset(1)
    .Value = [E2]:              .Offset(, 1) = Left([D3], 1) & [f3]
    .Offset(, 2) = [B6]:        .Offset(, 3) = [D6]
    .Offset(, 4) = [D7]:        .Offset(, 5) = [b7]
 End With
 Set Rng = Sheets("DL").Range("D2:D" & Sheets("DL").[d65500].End(xlUp).Row)
 Set sRng = Rng.Find(what:=[b7].Value, LookIn:=xlFormulas, lookat:=xlWhole)
 If Not sRng Is Nothing And UCase$(Left([D3], 1)) = "X" Then _
    sRng.Offset(, -3).Resize(, 4).Delete
 [b7] = ""
End Sub
 

File đính kèm

Upvote 0
Quá tuyệt

Thật ra mình cũng không cần đến bạn khẳng định việc đó đâu; Nhưng muốn rằng bạn nên đặt câu hỏi rõ ràng hơn ở những lần sau mà thôi!
Macro này có thể cần kiểm tra thêm trong file đính kèm.
Trong file, các ô [B6], [D6:D7] mình đã gán công thức & khi bạn chọn [MaTB] trong [B7] đúng thì sẽ hiện dữ liệu trong các ô công thức ghép sẵn.
Nếu bạn thấy cách đó thuận lợi sau những lần chạy thử macro thì giữ nguyên, còn không thì theo ý bạn, vậy nha!

PHP:
Option Explicit
Sub XuatNhap()
 Dim Rng As Range, sRng As Range
 With Sheets("FINAL").Range("B65500").End(xlUp).Offset(1)
    .Value = [E2]:              .Offset(, 1) = Left([D3], 1) & [f3]
    .Offset(, 2) = [B6]:        .Offset(, 3) = [D6]
    .Offset(, 4) = [D7]:        .Offset(, 5) = [b7]
 End With
 Set Rng = Sheets("DL").Range("D2:D" & Sheets("DL").[d65500].End(xlUp).Row)
 Set sRng = Rng.Find(what:=[b7].Value, LookIn:=xlFormulas, lookat:=xlWhole)
 If Not sRng Is Nothing And UCase$(Left([D3], 1)) = "X" Then _
    sRng.Offset(, -3).Resize(, 4).Delete
 [b7] = ""
End Sub

Hiện tại thì đúng như ý mình muốn rồi, tuyệt quá.
Cho mình hỏi thêm bên sheet final bạn có cho vào cột ngày( mình nghĩ là ngày của phiếu xuất đúng không ?) nhưng nó ra số gì mình không hiểu.
Chân thành cảm ơn nhìu...... cho mình xin handphone của bạn để liên lạc và hậu tạ.
 
Upvote 0
Hiện tại thì đúng như ý mình muốn rồi, tuyệt quá.
Cho mình hỏi thêm bên sheet final bạn có cho vào cột ngày( mình nghĩ là ngày của phiếu xuất đúng không ?) nhưng nó ra số gì mình không hiểu.
Chân thành cảm ơn nhìu...... cho mình xin handphone của bạn để liên lạc và hậu tạ.
Đó là do bạn chưa định dạng lại dữ liệu trong ô
Hãy chọn cột đó bằng chuột; & vô menu Format . . .-> Cells, Vô ngăn Number (nếu nó chưa sẵn sàng) Trong hộp Category ta chọn Date . . . .(Định dạng theo 1 kiểu hiển thị ngày mà bạn ưa (E2003!)
:-=

BS: Hãy nhắn tin qua DĐ cho mình số ĐT của bạn, xin cảm ơn!
 
Lần chỉnh sửa cuối:
Upvote 0
Đó là do bạn chưa định dạng lại dữ liệu trong ô
Hãy chọn cột đó bằng chuột; & vô menu Format . . .-> Cells, Vô ngăn Number (nếu nó chưa sẵn sàng) Trong hộp Category ta chọn Date . . . .(Định dạng theo 1 kiểu hiển thị ngày mà bạn ưa (E2003!)
:-=


oh, yeah, được rồi
thanks......
sao không cho mình số ĐT để liên lạc
 
Upvote 0
Web KT

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

Back
Top Bottom