Code tự đông chạy Phím tắt (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

toandiennuoc123

Thành viên thường trực
Tham gia
7/3/12
Bài viết
239
Được thích
9
Chào các bạn,tôi có mấy sheet, mỗi sheet có 1 code riêng, khi nhập dữ liệu thì phải bấm 1 loạt các phim tắt đó ( Ctrl+Shilt+K, Ctrl+Shilt+L, v.v.) để chạy macro ,rất hay bị nhầm, nhờ các bạn viết cho 1 code để chạy tự động, xin cám ơn các bạn
 
Gán mấy cái macro đó lên toolbar và đặt tên cho dễ nhớ. Khi cần chỉ cần click vào icon của macro tương ứng là được.
 
Upvote 0
Thì phải có điều kiện gì nó mới chạy chứ. Tự động thì cũng phải có tác động gì đó.
 
Upvote 0
Thế thì nó chạy cả ngày à? Lúc nào nhấn Enter, nhấn vào đâu? Bạn nói mơ hồ quá! Chạy xong 1 lần rồi thôi hay là nhấn tiếp chạy tiếp???
Như thế này nhé: nhập dữ liệu vào ô bất ki , nhập xong nhấn Enter , nó chạy, không nhấn Enter nó không chạy, lại đến ô khác, nhập xong Enter nó chạy không Enter nó không chạy, (VD: ở ô B9 nhập số 123... nhấn Enter thì nó chạy)
 
Upvote 0
Như thế này nhé: nhập dữ liệu vào ô bất ki , nhập xong nhấn Enter , nó chạy, không nhấn Enter nó không chạy, lại đến ô khác, nhập xong Enter nó chạy không Enter nó không chạy, (VD: ở ô B9 nhập số 123... nhấn Enter thì nó chạy)
À, nếu như thế thì có thể thay nội dung macro bằng sự kiện Change của WorkSheet (như trên bạn QH đã nói), chỉ cần lưu ý là có thể hạn chế sự tác động của phím Enter trên vùng nhập liệu thôi. Cái này muốn chi tiết thì bạn nên gửi file mẫu (ít nhất có 1 sheet với macro di kèm của sheet đó và mô tả vùng nhập liệu để sự kiện sẽ xảy ra)
 
Upvote 0
Code tự động chạy phím tắt

À, nếu như thế thì có thể thay nội dung macro bằng sự kiện Change của WorkSheet (như trên bạn QH đã nói), chỉ cần lưu ý là có thể hạn chế sự tác động của phím Enter trên vùng nhập liệu thôi. Cái này muốn chi tiết thì bạn nên gửi file mẫu (ít nhất có 1 sheet với macro di kèm của sheet đó và mô tả vùng nhập liệu để sự kiện sẽ xảy ra)
Bạn xem file đính kèm
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Tự động chạy macro khi click dup

Mình cũng rất quan tâm đến vấn đề tự động chạy macro
VD
Mình đang ở Sheet1 và chọn ô C5. Khi xảy ra một trong hai trường hợp sau:
1) Bấm phím enter
2) Click đúp vào ô được chọn
thì chạy macro Copy dòng chứa ô hiện tại (hiện tại là ô C5) sang Vị trí A5 ở Sheet2
Rất mong nhận được sự giúp đỡ của mọi người.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình mượn đọan code của bác Hoàng Nghĩa Phúc làm VD :

Private Sub WorkSheet_Change(byVal Target as Range)
If Not Intersect(Target,[B1:C10]) Is Nothing Then
'Code here
Call ' code bạn muốn tự động chạy

End If
End Sub

Mình vẫn đang áp dụng cái này cho công việc của mình , code se tự động chạy khi mình nhập dữ liệu or thay đổi nội dung
 
Upvote 0
Cảm ơn bạn Đào Xuân Thành nhiều nha!
Nhưng ý tưởng của mình là:
1) Khi nhập vào một ô thuộc một cột khách hàng sổ kể toán (Sheet1), sẽ tự động chạy macro đò tìm chuỗi mình vừa nhập trong cột Tên khách hàng tại Sheet2 và lọc và hiện những dòng nào có chứa chuỗi mình nhập. Nếu chưa có thì hiện thông báo nhập khách hàng mới.
2) Mình dùng phím di chuyển đến dòng thích hợp (Đúng tên khách hàng mình cần nhập), Sau đó chỉ cần bấm Enter hoặc Click đôi chuột thì tự động chạy một macro khác copy Mã khách hàng, Tên khách hàng, Địa chỉ, Mã số thuế... vào các cột tương ứng trong Shéet1
Code bạn giới thiệu giúp mình làm đươc sô 1), Nhưng số 2 thì mình không biết!
Mọi người giúp mình nha
 
Upvote 0
2) Mình dùng phím di chuyển đến dòng thích hợp (Đúng tên khách hàng mình cần nhập), Sau đó chỉ cần bấm Enter hoặc Click đôi chuột thì tự động chạy một macro khác copy Mã khách hàng, Tên khách hàng, Địa chỉ, Mã số thuế... vào các cột tương ứng trong Shéet1
Code bạn giới thiệu giúp mình làm đươc sô 1), Nhưng số 2 thì mình không biết!
Mọi người giúp mình nha[/QUOTE]

Bạn nên up file lên để các cao thủ ra tay , chứ ko có dữ liệu thì mọi người khó mà giúp cho bạn triêt để
 
Upvote 0
Dạ trường hợp đó thì sẽ có 2 cách xử lý:
1) Nếu có nhiều khách hàng không biết chọn khách hàng nào: Tạo một Macro mới gán một phím tắt và tiếp tục lọc tiếp tại cột địa chỉ ( căn cứ vào địa chỉ khách hàng mà mình muốn tìm)
2) Nếu ít khách hàng, chẳng hạn 2 hoặc 3, thì dùng phím di chuyển (phím mũi tên) di chuyển đến khách hàng mình muốn chọn, sau đó bấm phím Enter (Hoặc Click Đôi) thì thực hiện copy khách hàng và các thông tin liên quan tại dòng có Ô đang chọn vào các ô tương ứng trong Bảng Dữ Liệu
 
Upvote 0
Dạ trường hợp đó thì sẽ có 2 cách xử lý:
1) Nếu có nhiều khách hàng không biết chọn khách hàng nào: Tạo một Macro mới gán một phím tắt và tiếp tục lọc tiếp tại cột địa chỉ ( căn cứ vào địa chỉ khách hàng mà mình muốn tìm)
2) Nếu ít khách hàng, chẳng hạn 2 hoặc 3, thì dùng phím di chuyển (phím mũi tên) di chuyển đến khách hàng mình muốn chọn, sau đó bấm phím Enter (Hoặc Click Đôi) thì thực hiện copy khách hàng và các thông tin liên quan tại dòng có Ô đang chọn vào các ô tương ứng trong Bảng Dữ Liệu

Mình đã xem qua bài của bạn , theo mình thấy thì bài của bạn không khó ( nhưng tại sao các cao thủ không thể giúp bạn) , cái khó là mọi người không hiểu nổi bạn muốn gì , mặc dù bạn giải thich khá nhiều nhưng vẫn quá khó hiểu ,
Trên diễn đàn toàn cao thủ , nên bạn không cần nói dong dài , đi thẳng vào nội dung vấn đề cần giải quyết
Chúc bạn thành công !
 
Upvote 0
Mình đã xem qua bài của bạn , theo mình thấy thì bài của bạn không khó ( nhưng tại sao các cao thủ không thể giúp bạn) , cái khó là mọi người không hiểu nổi bạn muốn gì , mặc dù bạn giải thich khá nhiều nhưng vẫn quá khó hiểu ,
Trên diễn đàn toàn cao thủ , nên bạn không cần nói dong dài , đi thẳng vào nội dung vấn đề cần giải quyết
Chúc bạn thành công !

Hì hì, Thôi đi thẳng vào vấn đề như pạn nói vậy.
Mình muốn tìm đoạn code tự động chạy macro khi bấm Enter hoặc Click đôi chuột mà không cần làm thay đổi dữ liệu. Chỉ đơn giản vậy thôi hà. Thay vì đoạn code mà bạn giới thiệu:
Private Sub WorkSheet_Change(byVal Target as Range)
If Not Intersect(Target,[B1:C10]) Is Nothing Then
'Code here
Call ' code bạn muốn tự động chạy

End If
End Sub
là phải làm thay đổi dữ liệu hoặc nhập liệu thì code mới chạy, còn mình muốn là ô đã có dữ liệu mà mình chỉ cần chọn ô đó rồi click đôi hoặc enter là chạy code (không có sự thay đổi dữ liệu nào tại ô mình chọn).
 
Upvote 0
Hì hì, Thôi đi thẳng vào vấn đề như pạn nói vậy.
Mình muốn tìm đoạn code tự động chạy macro khi bấm Enter hoặc Click đôi chuột mà không cần làm thay đổi dữ liệu. Chỉ đơn giản vậy thôi hà. Thay vì đoạn code mà bạn giới thiệu:
Private Sub WorkSheet_Change(byVal Target as Range)
If Not Intersect(Target,[B1:C10]) Is Nothing Then
'Code here
Call ' code bạn muốn tự động chạy

End If
End Sub
là phải làm thay đổi dữ liệu hoặc nhập liệu thì code mới chạy, còn mình muốn là ô đã có dữ liệu mà mình chỉ cần chọn ô đó rồi click đôi hoặc enter là chạy code (không có sự thay đổi dữ liệu nào tại ô mình chọn).
Bạn copy cái này vào sheet bạn cần nhấp đúp chuột xem coi ra cái gì
PHP:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Target.Address
End Sub
 
Upvote 0
Bạn copy cái này vào sheet bạn cần nhấp đúp chuột xem coi ra cái gì
PHP:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Target.Address
End Sub

Đoạn code này đúng là đúng ý em rồi! hìhì.
Em muốn hỏi là có thể làm tương tự với phím enter không? Tức là thay vì Click đôi thì bây giờ mình bấm phím Enter thì chạy code.
 
Upvote 0
Đoạn code này đúng là đúng ý em rồi! hìhì.
Em muốn hỏi là có thể làm tương tự với phím enter không? Tức là thay vì Click đôi thì bây giờ mình bấm phím Enter thì chạy code.
1. Tạo 1 macro:
[GPECODE=vb]Sub LamGiDo()
'Your code here
End Sub[/GPECODE]
2. Sử dụng code sau cho sheet cần áp dụng:
[GPECODE=vb]Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnKey "~", "LamGiDo"
Application.OnKey "{Enter}", "LamGiDo"
End Sub[/GPECODE]
 
Upvote 0
Em muốn hỏi mọi người là Trong 1 Sheet có thể sử dụng đồng thời 2 code được không: code WorkSheet_Change (Khi ô A1 thay đổi thì chạy macro1) và code Worksheet_Activate (Khi chọn sheet thì chạy macro1)
Nếu được có thể cho em xin 1 file tham khảo với ah. Em cảm ơn
 
Upvote 0
Em muốn hỏi mọi người là Trong 1 Sheet có thể sử dụng đồng thời 2 code được không: code WorkSheet_Change (Khi ô A1 thay đổi thì chạy macro1) và code Worksheet_Activate (Khi chọn sheet thì chạy macro1)
Nếu được có thể cho em xin 1 file tham khảo với ah. Em cảm ơn

Được.
Bạn cứ làm đại đi. code WorkSheet_Change thì MSGBOX cái gì đó, còn code Worksheet_Activate thì MSGBOX lời chào nào đó...
 
Upvote 0

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

Back
Top Bottom