Giúp hoàn thiện bảng tính tiền theo giờ

Liên hệ QC

Playstation3_A1

Thành viên mới
Tham gia
5/10/08
Bài viết
12
Được thích
0
Đây là bảng tính mình đã làm xong nhưng muốn phát triển thêm nên cần các bạn giúp mình nha pls
excel-1.jpg

Bây giờ VD như ở số thứ tự 1 đã có người thứ 1 người chơi xong người thứ 2 dô tại số thứ tự 1 hix giờ phải ghi lại giờ vô của người thứ 2 nhưng mình muốn lưu lại kết quả của người thứ 1 mà không cần xuống hàng có cách nào lưu lai giờ của người thứ nhất nhưng vẫn ghi được giờ chơi của người thứ 2 tại 1 hàng đó không???? ai bít hướng dẫn mình với pls
 
Lần chỉnh sửa cuối:
Cái này thì nếu bạn dùng thì có thể tải file của anh Tuân về tính tiền internet để tham khảo. Còn muốn lưu thì bạn có thể viết một macro để lưu dữ liệu qua sheet Data thôi
 
Cái này thì nếu bạn dùng thì có thể tải file của anh Tuân về tính tiền internet để tham khảo. Còn muốn lưu thì bạn có thể viết một macro để lưu dữ liệu qua sheet Data thôi
Tải file đó ở đâu vậy anh em đọc bài dùng excel để tính tiền phòng net rùi nhưng muốn làm theo mà không thấy rõ ảnh trong bài đó lắm nên không làm theo để học tập được mong anh chỉ bảo thêm giúp em. Tạo macro làm = cách nào vậy anh nó có công dụng gì vậy anh? em không hiểu lắm mong anh giúp đỡ em!!!! cảm ơn anh đã quan tăm giúp em
 
Viết Macro thì có nhiều cách viết lắm, đơn giản nhất thì bạn hãy tạo Macro bằng tay trước cho dễ. Tức là bạn vào Tools -> Macro -> Record New Macro -> Nhập tên Macro -> rồi thử thực hiện vài thao tác gì đó trên nền Excel như viêt gì đó đi. Rồi bạn nhấn vào nút Stop hình vuông nhỏ đó. Tiếp theo bạn xóa hết tất cả đi, nhấn Alt + F8 -> chọn macro vừa lưu -> Run. Vậy bạn đã có 1 Macro đơn giản rồi!. Nếu bạn muốn biết code của nó như thế nào thì nhấn Alt + F11 sẽ thấy 1 cửa sổ mới hiện ra với tên Macro và các dòng code ở dưới! Nếu bạn đã lên diễn đàn 1 thời gian dài thì bạn có đủ kỹ năng viết macro tự động rồi thì sẽ tự viết luôn khỏi qua thao tác record đó nữa! Như mình viết trong file vậy! Để lập trình tốt thì bạn phải đọc nhiều sách nữa! Đây là vài trang căn bản bạn đọc xem có hiểu không nha! http://www.giaiphapexcel.com/forum/showthread.php?t=52 http://www.giaiphapexcel.com/forum/showthread.php?t=190 http://www.giaiphapexcel.com/forum/showthread.php?t=38 Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Tham khảo chương trình "Quản lý phòng máy" (mã nguồn mở) tại đây
 
Anh ơi cho em hỏi em muốn làm 1 hành động này bắng macro xin giup em với!!!!!!!!!!!
Em muốn làm hành động copy dữ liệu từ gốc sang 1 sheet nhưng copy lần thứ 2 nó không đè lên lần thứ nhất mà tự biết xuống hàng cho hỏi làm = cách nào??????????
 
Thì bạn thêm vài dòng lệnh quét vị trí đầu tiên đã có chưa, nếu có rồi thì sẽ tự lấy số dòng cuối cùng rồi cộng thêm 1 thì sẽ copy sang 1 dòng mới thôi!
Bạn gửi code lên đây mình chỉnh lại cho!
Thân.
 
Thì bạn thêm vài dòng lệnh quét vị trí đầu tiên đã có chưa, nếu có rồi thì sẽ tự lấy số dòng cuối cùng rồi cộng thêm 1 thì sẽ copy sang 1 dòng mới thôi!
Bạn gửi code lên đây mình chỉnh lại cho!
Thân.
Bạn ơi hiện tại mình viết macro = cách record không hà rùi dô cái bảng Macro->Chọn thẻ edit để xem code như ở sheet1 copy thông số từ (B7:H7) sang sheet2 (B5:H5) em làm được rùi mỗi lần bấm run là nó làm ah!!! nhưng anh ơi cố giúp em bây h em muốn viết code làm sao cho macro hiểu được rằng khi có dữ liệu mới từ (B7:H7) khi em bấn run nó sẽ hiểu chuyễn xuống (B6:H6) mà không đè lên (B5:H5). Với lại làm cách nào đem lệnh run của mỗi macro ra trên nền sheet để ấn mong các anh tận tình giúp đỡ giùm em!!!!!!!!!!!!!
 
Đây là code để bạn từ từ thích nghi!
Mã:
[COLOR=#000000][COLOR=black][FONT=Courier New]Sub hhjgj[/FONT][FONT=Courier New]()[/FONT][/COLOR]
[COLOR=black][FONT=Courier New]Range("B7:H7").[/FONT][FONT=Courier New]Copy  [COLOR=green]'Mình rút ngắn hai dòng thành 1 thì như thế này[/COLOR][/FONT][/COLOR]
[COLOR=black][FONT=Courier New]Sheets("Sheet2").[/FONT][FONT=Courier New]Select[/FONT][/COLOR]
[FONT=Courier New][COLOR=#0000bb]k [/COLOR][COLOR=#007700]= [[/COLOR][COLOR=#0000bb]B600[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]End[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]xlUp[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Row [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000bb]1    [/COLOR][/FONT][COLOR=#dd0000][FONT=Courier New][COLOR=green]'Lấy thông số vị trí dòng cuối cùng của[/COLOR] [COLOR=green]cột B[/COLOR][/FONT][/COLOR]
[FONT=Courier New][COLOR=#dd0000]If k < 6 Then k = 5   [/COLOR][COLOR=green]'[/COLOR][/FONT][FONT=Courier New][COLOR=green]Dùng để kiểm tra xem vị trí đó có người chưa[/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"B" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000bb]k [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#dd0000]":H" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000bb]k[/COLOR][COLOR=#007700]).[/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]Select [/COLOR][/FONT]
[COLOR=black][FONT=Courier New]ActiveSheet.[/FONT][FONT=Courier New]Paste[/FONT][/COLOR]
[FONT=Courier New][COLOR=#0000bb]Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]CutCopyMode [/COLOR][COLOR=#007700]= [/COLOR][/FONT][COLOR=#0000bb][FONT=Courier New]False   '[COLOR=green]Hủy lệnh copy[/COLOR][/FONT][/COLOR]
[/COLOR][FONT=Courier New][COLOR=black]End Sub[/COLOR][/FONT]
Còn nếu viết để lấy dữ liệu qua thì bạn dùng cách là lấy giá trị ô này bằng giá trị của ô kia! Ví dụ nó sẽ giống như vầy!
Mã:
[COLOR=#000000][COLOR=#0000bb][FONT=Courier New]Sub dongian[/FONT][/COLOR][FONT=Courier New][COLOR=#007700]()[/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]k [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"Sheet2"[/COLOR][COLOR=#007700]).[[/COLOR][COLOR=#0000bb]B600[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]End[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]xlUp[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Row [/COLOR][COLOR=#007700]+ [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]1[/COLOR][/FONT]
[FONT=Courier New][COLOR=#007700]If [/COLOR][COLOR=#0000bb]k [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000bb]6 Then k [/COLOR][COLOR=#007700]= [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]5[/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"Sheet2"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"B" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000bb]k [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#dd0000]":H" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000bb]k[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"Sheet1"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"B7:H7"[/COLOR][COLOR=#007700]).[/COLOR][/FONT][COLOR=#0000bb][FONT=Courier New]Value[/FONT][/COLOR]
[FONT=Courier New][COLOR=#0000bb]End Sub [/COLOR][/FONT][/COLOR]
Code này có nhiều cái tiện hơn là bạn sẽ ít tốn dung lượng hơn, cũng sẽ dễ hiểu hơn! Bạn cứ mạnh dạng viết code đi! Viết sai rồi xem lại tại sao sai thì sẽ học nhanh hơn! Không biết hoặc sai gì thì cứ viết lên đây mình sẽ chỉ cho!
Thân.
 
Lần chỉnh sửa cuối:
Mã:
 Sheets("sheet1").Select
    Range("B7:G7").Copy
    Sheets("Sheet2").Select
    Range("B9:G9").Select
    ActiveSheet.Paste
End Sub

Đây nè bạn ơi làm sao để macro nó tự hiểu nếu copy hoặc Run lần thứ 2 từ B7:G7 nó không Past đè lên B9:G9 khi đã có dữ liệu rùi!!!!!!!!!!!
Với lại hình như mình thấy người ta làm lệnh run thành cái nút ấn vào thì run để trên excel mà chứ đâu dùng Keyboard Shortcut: Ctrl+t như mình chỉ mình cách làm vói7 mong được sự giúp đỡ của bạn!!!!!
 
Lần chỉnh sửa cuối:
Thì chẳng phải mình đã viết ở trên rồi đó sao!
Nếu bạn muốn có nút lệnh thì thêm vài động tác nữa nha!
Bạn nhấn phải chuột vào thành công cụ chọn Forms -> Click chuột vào biểu tượng Button -> Kéo chuột vẽ 1 cái biểu tượng trên bảng tính -> Sau khi xong thì nó sẽ hiện hộp thoại Macro ra, bạn chỉ cần chọn tên macro muốn nó thi hành thôi -> OK.
Tiếp theo bạn nhấp phải chuột lên nó 1 lần nữa chọn Edit Text để chỉnh sữa nội dung ký tự!
Vậy là bạn đã có 1 nút lệnh rồi!
Bạn mở file mình ra xem sẽ thấy có hai code khác nhau với hai tình huống sử lý cùng 1 động tác nhưng code 2 sẽ ngắn hơn nhiều. Thực ra đây chỉ là quá trình xem sét trước vị trí cuối cùng của cột B ở Sheet2 đã có dữ liệu chưa thôi! Nếu dữ liệu đó nằm ở B9 hoặc từ B9 trở đi có dữ liệu rồi thì nó sẽ lấy vị trí ở dòng dưới làm địa chỉ để nạp dữ liệu mới!
Thân.
 

File đính kèm

Po_Pikachu ơi!!!!!!!! vậy khi làm 2 hàng từ (B7:G7) và (B8:G8) thì dùng 2 đoạn code bên dưới được không bạn xem dùm mình nha mình nếu được mình định làm đến test12() lận sheet1 là "máy tính tiền", sheet2 là "nhật ký hoạt đông trong ngày" bằng cách làm macro chuyển dữ liệu! mong ban cho ý kiến để mình học tập thêm!!!!!!!!! Cho mình hỏi phím tắt chuyển qua các sheet trong excel là j vậy chỉ mình với
Mã:
Sub test1()
Sheets("sheet1").Select
Range("B7:G7").Copy
Sheets("sheet2").Select
k = [B600].End(xlUp).Row + 1
If k < 10 Then k = 9
Range("B" & k & ":G" & k).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Mã:
Sub test2()
Sheets("sheet1").Select
Range("B8:G8").Copy
Sheets("sheet2").Select
k = [B600].End(xlUp).Row + 1
If k < 10 Then k = 9
Range("B" & k & ":G" & k).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Thanks You Po_Pikachu Very Much
 
Lần chỉnh sửa cuối:
Này nếu 12 lần thì bạn có thể đưa file mẫu lên không mình viết cho nó đầy đủ theo ý copy của bạn và điều kiện luôn tội gì phải làm đến 12 cái sub chứ! Vừa mệt vừa nặng máy lắm!
Hai code trên chạy sẽ không đúng đâu! Bạn phải sửa lại như sau:
Mã:
Sub test1()
Sheets("[COLOR=red]máy tính tiền[/COLOR]").Select
Range("[COLOR=red]B7:G7[/COLOR]").Copy
Sheets("[COLOR=red]nhật ký hoạt đông trong ngày[/COLOR]").Select
k = [B600].End(xlUp).Row + 1
If k < [COLOR=red][/COLOR]10 Then k = 9 [COLOR=red]
[/COLOR]Range("B" & [COLOR=red]k[/COLOR] & ":G" & [COLOR=red]k[/COLOR]).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Mã:
Sub test1()
Sheets("[COLOR=red]máy tính tiền[/COLOR]").Select
Range("[COLOR=red]B8:G[/COLOR][COLOR=red]8[/COLOR]").Copy
Sheets("[COLOR=red]nhật ký hoạt đông trong ngày[/COLOR]").Select
k = [B600].End(xlUp).Row + 1
If k < [COLOR=red][/COLOR]10 Then k = 9 [COLOR=red]
[/COLOR]Range("B" & [COLOR=red]k[/COLOR] & ":G" & [COLOR=red]k[/COLOR]).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Thân.
 
bạn ơi chỉ mình phím chuyển nhanh qua sheet đi, nhưng phải viếy 12 cái sub mới có thể làm 12 nút nhấn chứ bạn mình upload file hoài không được
 
Lần chỉnh sửa cuối:
Phím chuyển nhanh qua sheet? Ý bạn là nhấn phím tắt phải không? Vậy thì bạn thử nhấn Ctrl + Page Down đế qua phải còn Ctrl + Page Up để qua trái!
Bạn up bài không được thì gửi bài cho BQT nhờ họ giúp nha!
Thân.
 
Mã:
Sub test1()
Sheets("[COLOR=red]máy tính tiền[/COLOR]").Select
Range("[COLOR=red]B7:G7[/COLOR]").Copy
Sheets("[COLOR=red]nhật ký hoạt đông trong ngày[/COLOR]").Select
k = [B600].End(xlUp).Row + 1
If k < 10 Then k = 9 [COLOR=red]
[/COLOR]Range("B" & [COLOR=red]k[/COLOR] & ":G" & [COLOR=red]k[/COLOR]).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Các bạn và Po_Pikachu cho mình hỏi cái nì nha!!!!!!
mình muốn thêm điều kiện nếu G7 không có ký tự nào thì macro không chạy được hoặc báo lỗi nào đó
 
Mã:
Sub test1() Sheets("[COLOR=red]máy tính tiền[/COLOR]").Select Range("[COLOR=red]B7:G7[/COLOR]").Copy Sheets("[COLOR=red]nhật ký hoạt đông trong ngày[/COLOR]").Select k = [B600].End(xlUp).Row + 1 If k < 10 Then k = 9  Range("B" & [COLOR=red]k[/COLOR] & ":G" & [COLOR=red]k[/COLOR]).Select ActiveSheet.Paste Application.CutCopyMode = False End Sub
Các bạn và Po_Pikachu cho mình hỏi cái nì nha!!!!!! mình muốn thêm điều kiện nếu G7 không có ký tự nào thì macro không chạy được hoặc báo lỗi nào đó
Mã:
Sub test1() Sheets("[COLOR=red]máy tính tiền[/COLOR]").Select [COLOR=blue]IF Range("G7").value = "" then[/COLOR][COLOR=white]____[/COLOR][COLOR=green]'Điều kiện[/COLOR] [COLOR=blue]Msgbox("Ban nhap du lieu cho o G7 truoc da!"[/COLOR][COLOR=blue])[/COLOR][COLOR=white]____[/COLOR][COLOR=green]'Nhập Msgbox để hiện thông báo[/COLOR] [COLOR=blue]Range("G7").Select[/COLOR][COLOR=white]___[/COLOR][COLOR=green]'để chọn vị trí G7[/COLOR] [COLOR=blue]Exit Sub[/COLOR][COLOR=white]____[/COLOR][COLOR=green]'Kết thúc 1 sub[/COLOR] [COLOR=blue]End IF[/COLOR] Range("[COLOR=red]B7:G7[/COLOR]").Copy Sheets("[COLOR=red]nhật ký hoạt đông trong ngày[/COLOR]").Select k = [B600].End(xlUp).Row + 1 If k < 10 Then k = 9  Range("B" & [COLOR=red]k[/COLOR] & ":G" & [COLOR=red]k[/COLOR]).Select ActiveSheet.Paste Application.CutCopyMode = False End Sub
Thân.
 
Lần chỉnh sửa cuối:
Bạn ơi sao lúc viết code nó ra như vậy nè
Sheets("Máy Tính Ti?n").Select
Sheets("Nh?t K? Ho?t Đ?ng Trong Ngày").Select

Làm sao viết được:
Sheets("máy tính tiền").Select
Sheets("nhật ký hoạt đông trong ngày").Select

Hix mình dô tool/options/thẻ Editor Format/ chọn font Arial các loại rùi vẫn không được mong bạn cho ý kiến giúp mình pls!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Lần chỉnh sửa cuối:
Bạn ơi sao lúc viết code nó ra như vậy nè
Sheets("Máy Tính Ti?n").Select
Sheets("Nh?t K? Ho?t Đ?ng Trong Ngày").Select

Làm sao viết được:
Sheets("máy tính tiền").Select
Sheets("nhật ký hoạt đông trong ngày").Select

Hix mình dô tool/options/thẻ Editor Format/ chọn font Arial các loại rùi vẫn không được mong bạn cho ý kiến giúp mình pls!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Bạn không nên mất thời gian vào những việc không cần thiết cho yêu cầu thực tế của mình, trong chế độ Editor của VBA không hỗ trợ Unicode, nên đương nhiên là bạn không gõ được tiếng Việt có dấu rồi, nhưng trên đây chỉ là tên của Sheet thôi mà, bạn đừng có đặt tên Sheet là tiếng Việt có dấu nữa, khỏi phải tìm hiểu nhưng thứ ngoài luồng làm gì.
 
Bạn chú ý kỷ sẽ thấy ngoài tên do bạn đặt luôn có 1 tên cố định do Excel đặt!
attachment.php
Nếu bạn viết tiếng Việt cho tên Sheet thì tên ấy chỉ có bạn hiểu thôi! Excel nó không hiểu đâu! Do mình không biết tên của bạn ứng với Sheet mấy nên bạn dựa vào hình thì sẽ tự thay đổi nha! Code thay đổi sẽ như sau: Nếu bạn viết "Sheets("máy tính tiền").Select" và ở đây "Máy Tính Tiền" ứng với Sheet1 thì bạn viết Sheet1.select, và Sheets("nhật ký hoạt đông trong ngày") thì chuyển thành Sheet2.Select Vậy bạn tự xem lại, xem nó ở Sheet mấy rồi sữa code lại nha! Thân.
 

File đính kèm

  • hinh.jpg
    hinh.jpg
    13.3 KB · Đọc: 58
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom