Tạo 1 cmd sử dụng cho nhiều Macro

Liên hệ QC

mymichau

Thành viên hoạt động
Tham gia
28/11/06
Bài viết
172
Được thích
114
Tôi có tạo 1 nút cmd ( của Form ) sử dụng cho nhiều macro bằng cách :
-Tạo Validation ở cell B1 là líts tên các macro.
-Tạo 1 nut cmd (form),với nhản là giá trị của cellB1
-Khi muốn sử dụng cho một macro nào đó, thì click phải vào cmd, chọn Asign Macro và chọn tên macro cần kích hoạt, OK.
Tuy cũng đạt được một số yêu cầu, nhưng vẫn chưa khoa học gì mấy.
Do đó xin hỏi các bạn có cách nào, khi ta thay đổi giá trị tại cellB1, thì nút cmd tự động thay đổi kích hoạt Macro bằng giá trị của sự thay đổi cell B1. Xin cảm ơn.
 
Thay vì làm như thế (ko biết có dc hay ko nhưng mà.. rối).. tại sao bạn ko dùng phím tắt đễ kích hoạt macro, như thế có phải là nhanh hơn ko?
 
Upvote 0
Mình nghỉ ra cách 'khoai mỳ' như thế này:

* Tại các ô A1:A9 bạn nhập các số; đặt tên cho vùng này là DSach;
* Lôi 1 Combo vô Sheet này & lấy DSach làm nguồn, kết xuất kết quả ra 'B2'
* Bạn viết macro có dạng như sau:
Mã:
Option Explicit[b]

Sub SelectMacro()[/b]
 Dim StrC As String
 
 StrC = "Ban Da Chon " & Cells(2, 2)
 MsgBox StrC[b]
 
End Sub[/b]
* Bạn phải chuột vô cái Combo & gắn cho nó cái macro ở bước 3;
* Ngồi bấm chọn từ Combo đến khi chán thì nghỉ! Hết mệt thì Tiếp!
 
Upvote 0
To Anhtuan1066
Đúng là sử dụng phím nóng cũng gọn, nhưng lở có nhiều macro thì đôi lúc bị quên và khi nhiều người cùng sử dụng sẽ không biết các phím nóng.

To SA_DQ
Code anh chỉ giúp không đúng ý của tôi rồi. Vì sau khi chọn ở combobox, thì button sẽ thực hiện kích hoạt Macro "n", chứ không phại thông báo là đã chọn macro nào đó. Tôi cũng có làm một useform chứa nhiều cmd theo từng chức năng của macro, nhưng thấy chưa hay lắm. Cám ơn các anh nhiều.
 
Upvote 0
mymichau đã viết:
To Anhtuan1066
Đúng là sử dụng phím nóng cũng gọn, nhưng lở có nhiều macro thì đôi lúc bị quên và khi nhiều người cùng sử dụng sẽ không biết các phím nóng.

To SA_DQ
Code anh chỉ giúp không đúng ý của tôi rồi. Vì sau khi chọn ở combobox, thì button sẽ thực hiện kích hoạt Macro "n", chứ không phại thông báo là đã chọn macro nào đó. Tôi cũng có làm một useform chứa nhiều cmd theo từng chức năng của macro, nhưng thấy chưa hay lắm. Cám ơn các anh nhiều.
Không biết có đúng ý mymichau không: ví dụ tại ô B1 nhập vào "AAA" thì chạy macro AAA, là "BBB" thỉ chạy macro BBB, ...Nhập sai thì không có macro nào thực hiện
Nếu như vậy, bạn không cần tạo 1 useform, combobox. Cứ gán sự kiện Change khi ô B1 thay đổi (các ô khác không ảnh hưởng) sẽ đơn giản hơn.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Cells(1,2).Address Then
  Select Case Cells(1, 2)
  Case "AAA"
    AAA
  Case "BBB"
    BBB
  Case "CCC"
    CCC
  End Select
End If
End Sub
Với AAA, BBB, CCC là 3 macro

Nếu bạn muốn sử dụng nut cmd (form) bạn cũng viết tương tự.
 

File đính kèm

Upvote 0
To SA_DQ
Code anh chỉ giúp không đúng ý của tôi rồi. Vì sau khi chọn ở combobox, thì button sẽ thực hiện kích hoạt Macro "n", chứ không phại thông báo là đã chọn macro nào đó. Tôi cũng có làm một useform chứa nhiều cmd theo từng chức năng của macro, nhưng thấy chưa hay lắm. Cám ơn các anh nhiều.
Mình thấy bạn đã đề cập đến Form & macro rồi, thì nêu ra gợi í thôi; chứ làm theo yêu cầu của bạn thì có khi bạn lại cười mình ấy chứ lại!
Động não một xíu là ra à!
Nếu tại B1 bạn nhập tên gợi nhớ là Nhập
Tại B2 - Sửa
Tại B3 - Xóa
Ứng với 3 macro Nhap ; Sua & Xoa
thì dùng hàm If hay Select Case như bạn Long làm là được mà!
Đó là phương pháp của mình đối với những người như bạn & tương tự!
(húc Vui nha!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom