Cách viết chạy đường link tương ứng khi click CommandButton! (1 người xem)

  • Thread starter Thread starter MQ64191
  • Ngày gửi Ngày gửi
Liên hệ QC

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

MQ64191

Thành viên mới
Tham gia
15/12/14
Bài viết
38
Được thích
0
Nhờ cá bạn giúp đỡ, như mình muốn: Khi khởi động file lên Sheet3 sẽ ẩn đi, chỉ hiển thị sheet Bangtonghop. Click CommandButton nào thì đường link bên Sheet3 sẽ chạy. Mong được các bạn chỉ dẫn.
 
Hiện các máy mình nối mạng Lan với nhau, nếu file cần mở nằm trên một máy khác thì cách viết sao? Xin được học hỏi thêm!
 
Upvote 0
Nhờ cá bạn giúp đỡ, như mình muốn: Khi khởi động file lên Sheet3 sẽ ẩn đi, chỉ hiển thị sheet Bangtonghop. Click CommandButton nào thì đường link bên Sheet3 sẽ chạy. Mong được các bạn chỉ dẫn.

Có 2 vấn đề cần cải tiến:
- Thứ nhất: Sao phải dùng sheet trung gian để lưu các đường link trong khi bạn hoàn toàn có thể cho mấy đường link này chứa trong chính các Button?
- Thứ hai: Thay vì dùng CommandButon (ActiveX Control), sao bạn không dùng Button (Forms Controls)? Bởi nếu dùng CommandButton, bạn buộc phải viết code riêng cho từng đối tượng trong khi với Button (Forms) bạn hoàn toàn có thể viết 1 code duy nhất dùng chung cho nhiều đối tượng
Bạn thấy sao?
 
Upvote 0
Có 2 vấn đề cần cải tiến:
- Thứ nhất: Sao phải dùng sheet trung gian để lưu các đường link trong khi bạn hoàn toàn có thể cho mấy đường link này chứa trong chính các Button?
- Thứ hai: Thay vì dùng CommandButon (ActiveX Control), sao bạn không dùng Button (Forms Controls)? Bởi nếu dùng CommandButton, bạn buộc phải viết code riêng cho từng đối tượng trong khi với Button (Forms) bạn hoàn toàn có thể viết 1 code duy nhất dùng chung cho nhiều đối tượng
Bạn thấy sao?

Cảm ơn anh rất nhiều góp ý rất hay, em còn bập bẹ nên hok rành lắm. Ý thứ 2 em làm được rồi, còn ý thứ nhất nếu làm thì add đường link vào ra sao anh. Mong anh giúp thêm!
 
Upvote 0
Upvote 0
Cảm ơn anh rất nhiều góp ý rất hay, em còn bập bẹ nên hok rành lắm. Ý thứ 2 em làm được rồi, còn ý thứ nhất nếu làm thì add đường link vào ra sao anh. Mong anh giúp thêm!

1> Sau khi vẽ xong mấy cái Buttons (Forms Controls), bạn click phải vào từng button, chọn Format Controls, chuyển sang tab Alt Text rồi gõ đường link vào khung Alternative Text

Untitled.jpg































2> Tiếp theo viết code chung cho tất cả các Button như sau:
Mã:
Sub Main()
  Dim btn As Button, filePath As String
  On Error Resume Next
  Set btn = Sheet1.Buttons(Application.Caller)
  filePath = btn.ShapeRange.AlternativeText
  Workbooks.Open filePath
End Sub
3> Cuối cùng, click phải từng Button, chọn Asign Macro cho nó liên kết với Sub Main
Sau này nếu có thêm button nào nữa, chỉ việc lập lại công đoạn 1 và 3 cho button mới là xong
-----------------
Cách làm đơn giản, code ngắn gọn, dễ bảo trì sửa chữa... đó chính là những ưu điểm
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Anh ndu96081631 giúp em thêm vấn đề này được không?
 
Upvote 0
Vấn đề này không lời giải đáp sao các bạn? !$@!!!$@!!
 
Upvote 0
Sorry, mình xin đưa lại file mới lên.
Mình có góp ý thế này nghe! thứ nhất bạn dùng Combobox sẽ dễ bị lỗi Font (có thể dùng cách khác hay hơn mà, dễ truy xuất dữ liệu hơn). Còn các ô A, B, C và D tại sao không cho nó là các ô trong bảng tính để dễ tham chiếu, dễ sử dụng hàm thống kê, dò tìm... Sử dụng các đối tượng dễ bị lỗi font và khó lấy giá trị (Ở đây là viết code dày dòng, khó kiểm soát). Nếu các góp ý này hữu ích thì chuyện thống kê rất dễ không cần viết code. Còn nếu ý bạn muốn thế thì hẹn bạn lần sau sẽ viết code cho.
 
Upvote 0
Mình có góp ý thế này nghe! thứ nhất bạn dùng Combobox sẽ dễ bị lỗi Font (có thể dùng cách khác hay hơn mà, dễ truy xuất dữ liệu hơn). Còn các ô A, B, C và D tại sao không cho nó là các ô trong bảng tính để dễ tham chiếu, dễ sử dụng hàm thống kê, dò tìm... Sử dụng các đối tượng dễ bị lỗi font và khó lấy giá trị (Ở đây là viết code dày dòng, khó kiểm soát). Nếu các góp ý này hữu ích thì chuyện thống kê rất dễ không cần viết code. Còn nếu ý bạn muốn thế thì hẹn bạn lần sau sẽ viết code cho.

Cảm ơn bạn rất nhiều, như góp ý của bạn dùng các ô bảng tính và dùng các hàm tham chiếu mình làm ok. Nhưng ý của mình xây dựng cái Bảng quản lý này cho nhiều mục lắm chứ không ít như file đã đưa lên, nên mình muốn các TextBox nằm dưới các mục của Button luôn cho chuyên nghiệp tí. Nếu dùng ô bảng tính phải canh chỉnh không được đẹp lắm. Nói chung là nếu dùng các textbox hiển thị được thi ok hơn. Xin cảm ơn ban!
 
Upvote 0
Paste code sau vào sheet1(BANGTONGHOP)
Lưu ý là chữ TỔNG CỘNG tại các sheet của bạn chưa đồng nhất với danh sách làm list cho Combobox. chữ TỔNG CỘNG: (có dấu 2 chấm phía sau). Phải đồng nhất thì mới dò tìm được
Mã:
Private Sub ComboBox1_Change()


Shapes.Range("TextBox 21").TextFrame.Characters.Text = _
Format(Application.VLookup(ComboBox1.Value, Sheet2.Range("A4:B16"), 2, 0), "#,##0")
Shapes.Range("TextBox 27").TextFrame.Characters.Text = _
Format(Application.VLookup(ComboBox1.Value, Sheet2.Range("E4:F16"), 2, 0), "#,##0")
Shapes.Range("TextBox 28").TextFrame.Characters.Text = _
Format(Application.VLookup(ComboBox1.Value, Sheet3.Range("A4:B16"), 2, 0), "#,##0")
Shapes.Range("TextBox 29").TextFrame.Characters.Text = _
Format(Application.VLookup(ComboBox1.Value, Sheet3.Range("E4:F16"), 2, 0), "#,##0")
Shapes.Range("TextBox 34").TextFrame.Characters.Text = _
Format(Application.VLookup(ComboBox1.Value, Sheet4.Range("C4:D16"), 2, 0), "#,##0")
Shapes.Range("TextBox 35").TextFrame.Characters.Text = _
Format(Application.VLookup(ComboBox1.Value, Sheet5.Range("C4:D16"), 2, 0), "#,##0")


End Sub

Mình pass rồi sao chạy nó báo lỗi bạn ơi!
 
Upvote 0
Cũng file tôi tải của bạn về. Dò tìm được hết. có lỗi gì đâu nhỉ? không thì inbox teamview tôi xem thử. chứ tôi test máy tôi không lỗi thì tôi cũng chịu ấy.../-*+//-*+//-*+/
-----------------------
Có khi nào máy bạn định dạng dấu ; dấu , khác máy tôi không???

Đoạn này "#,##0" thử sửa thành "#.##0" xem có được không.

Kỳ ta? Hok cách nào được?
 
Upvote 0
Cũng file tôi tải của bạn về. Dò tìm được hết. có lỗi gì đâu nhỉ? không thì inbox teamview tôi xem thử. chứ tôi test máy tôi không lỗi thì tôi cũng chịu ấy.../-*+//-*+//-*+/
-----------------------
Có khi nào máy bạn định dạng dấu ; dấu , khác máy tôi không???

Đoạn này "#,##0" thử sửa thành "#.##0" xem có được không.

Khi nào rãnh Teamview máy em xem sao các anh ơi! Hok hiểu không chạy được theo đoạn code như vậy. 0906.437191, nhắn tin em sẽ gọi lại và trao đổi.
 
Upvote 0
Web KT

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

Back
Top Bottom