Thách đố về việc xử lý các Object (1 người xem)

Liên hệ QC

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

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,912
Chào các bạn!
Hôm nay tình cờ nghĩ ra dc 1 trò vui.. xin gữi lên 2 câu đố liên quan đến việc xử lý các object.
Câu 1: Trong file tôi có 1 check box (thuộc thanh Forms) và 1 text box (thuộc thanh Control toolbox)...
Khi check box chưa dc chọn thì text box sẽ link đến 1 cell nào đó.. nhưng khi tôi check vào check box thì nội dung trong text box sẽ lập tức bị clear sạch (là khung text box bị clear chứ ko phải cell link bị clear)... Và khi ấy dù có gõ gì vào text box thì cell link vẫn ko nhận giá trị
-----------------------
Câu 2: Trong 1 file có 3 check box (Check box thuộc thanh Forms)... làm thế nào đễ chỉ cho phép chọn dc nhiều nhất là 2 check box... Điều này có nghĩa là khi đã có 2 check box dc chọn thì check box thứ 3 sẽ bị cấm hoạt động...
-----------------------
Xin hỏi: ko dùng VBA, làm cách nào đễ thực hiện dc những điều tôi nói ở trên?
Chúc ngon miệng với 2 món OBJECT này... he.. he...
ANH TUẤN
 
Dùng 1 Name động và 2 hàm: if, 1 Indirect là giải quyết xong thôi ạ
Câu 1 đây a!

Trời ơi sao bác lại nói tầm bậy tầm bạ, mục đích của tôi là thế này mà, có khó gì đâu lúc cơm rượu no say ngồi có 2 phút giải bài của bác đó. Cho Indirect lỗi hoặc cho Range lỗi cũng được mà.
Câu 2 cho Range lỗi là xong thôi mà

Công cụ này tôi đã từng mò mẫm qua, sau đó mới mò mẫm sang code nên cũng biết 1 tý tẹo.
 

File đính kèm

Lần chỉnh sửa cuối:
He... he... có dc đâu đồng chí... xem lại đi... chú ý đoạn này nhé:
Mã:
nhưng khi tôi check vào [B][COLOR=#0000ff]check box[/COLOR][/B] thì nội dung trong [B][COLOR=#ff0000]text box[/COLOR][/B] sẽ lập tức bị clear sạch
Đồng chí này dùng hàm INDIRECT tầm bậy tầm bạ, hên lại trúng dc 1 phần trong câu hỏi, đó là cell link ko nhận giá trị khi check vào check box...
Ha... ha... ha... Tiếp tục nhé! Tôi nghĩ ko dễ nhai đâu!
ANH TUẤN
 
Không dùng VBA hả bác???

Thân!
 
Mr Okebab đã viết:
Không dùng VBA hả bác???
Thân!
Đúng vậy đó Bắp, như tôi đã nói:
Xin hỏi: ko dùng VBA, làm cách nào đễ thực hiện dc những điều tôi nói ở trên?
Xin nói thêm về việc ứng dụng: Khi ta tạo 1 sheet trích xuất dử liệu theo thời gian, theo mã hàng, theo khách hàng bằng việc chọn lựa dử liệu trong ComboBox hoặc nhập liệu trong text box... Giã sử rằng ta có 3 nút check "Chọn tất cả" cho 3 mục này.. thế.. nếu cái gì cũng chọn tất cả thì thôi thà rằng ko chọn, sang sheet Data mà xem luôn, đúng ko? Riêng phần nhập liệu thời gian dc lấy từ các Text box, nếu như check vào nút "Chọn tất cả" mà số liệu trong text box vẫn còn trơ trơ thì thấy ko đẹp mắt cho lắm... (Clear sạch hoặc làm mờ nó đi thì mới đúng cách làm của MS)
Tôi đang nghiên cứu thiết kế giao diện cho form nhập liệu theo dạng này và cảm thấy rằng đây là 1 bài toán khá lý thú nên đưa lên cho mọi người tham khảo và cùng thử thách... Tất nhiên VBA sẽ ko có vấn đề.. dùng công thức thuần túy mới là chuyện đáng nói...
Mến
ANH TUẤN
 
Với bạn nguyentuhp:
Bạn làm sai cả 2 câu
Câu 1: Khi chọn check box vẫn chưa clear dc dử liệu trong text box
Câu 2: Ko làm sao Uncheck cả 3 check box
Công cụ này tôi đã từng mò mẫm qua, sau đó mới mò mẫm sang code nên cũng biết 1 tý tẹo.
Vậy xin mời bạn "mò" tiếp cho hoàn hảo hơn!
He.. he...
ANH TUẤN
 
anhtuan1066 đã viết:
Tất nhiên VBA sẽ ko có vấn đề.. dùng công thức thuần túy mới là chuyện đáng nói...
Mến
ANH TUẤN

AnhTuan ơi
Em thấy trình VBA của anh dạo này tăng cao lắm, anh cho em bí quyết với (tất nhiên là anh đừng bảo em là mua sách về đọc nhé......em mua rồi).
Em vẫn nhớ là có một câu nói là (học VBA qua record "thu lại" các Macro......nhưng đến một ngày các macro không còn hữu dụng nữa. Vì nó không có các tính năng như
1. Vòng lặp....
2....gì gì nữa

Các anh chị cho lời khuyên nhé. Em khoái VBA lắm
(xin lỗi vì post ngang topping "thách đố" của anhtuan
 
Thách đố này nếu vẫn ko có người trã lời thì chắc đành phải chuyển cho ttphong2007 làm câu đố tháng quá!
Bạn ttphong2007 có ý kiến gì ko?
ANH TUẤN
 
anhtuan1066 đã viết:
Thách đố này nếu vẫn ko có người trã lời thì chắc đành phải chuyển cho ttphong2007 làm câu đố tháng quá!
Bạn ttphong2007 có ý kiến gì ko?
ANH TUẤN

Câu đó của anh khó quá, em cũng không giải được sao dám làm câu đố **~** ! Anh để thêm 1 tuần nữa xem !

TP.
 
Xin nói thêm đễ các bạn yên tâm: Câu này nếu chưa nghĩ ra dc hướng làm sẽ thấy khó, nhưng nếu nhìn đáp án các bạn sẽ ahhhhhh.... dễ quá... hi... hi... dễ đến nỗi tôi ko thể gợi ý.. vì nếu gợi ý 1 chút là xem như đã giãi xong...
ANH TUẤN
 
Câu 1: Khi chọn check box vẫn chưa clear được dử liệu trong text box
Câu này bác nói rõ hơn 1 chút được không:
1. Lúc đầu CheckBox chưa chọn (=false) => TexBox = link Cell (Text1)
- CheckBox = True -> TextBox = Clear
- Nhập Text2 vào TextBox Link Cell (cũ) không nhận giá trị
- Không xóa Text1 trong TextBox
2. CheckBox = False -> TexBox = link Cell (Text1)
- CheckBox = True -> TextBox = Clear ????? hay vẫn bằng Text2

Câu 2: Ko làm sao Uncheck cả 3 check box
Bác không nói rõ điều kiện này mà, nếu cần uncheck thì thêm 1 điều kiện nữa là xong ngay mà.
 

File đính kèm

Bạn có thể viết luôn ví dụ 1 đi! Mình chẳng hiểu bạn nói gì cả? Sorry...
 
Lần chỉnh sửa cuối:
OK... câu 2 xem như bạn đã đạt yêu cầu.. nhưng mà... trời à! Công thức khiếp quá! He... he... Nói thật tôi chỉ cần 1 thủ thuật nhỏ là ra dc kết quả...
Còn câu 1 tôi nói ở bài #1 rõ ràng rồi còn gì: Giã sử lúc đầu Text box link tới cell A1, tức bạn gõ gì vào Text box thì A1 sẽ hiện ra y vậy... Nhưng khi bạn check vào check box thì khung nhập liệu của text box lập tức bị clear sạch... Và khi ấy cho dù bạn có gõ gì vào Text box, cell A1 vẫn ko nhận giá trị... Mọi chuyện lại trở lại từ đầu nếu bỏ chọn check box... Bạn hiểu rồi chứ...
Ghi chú thêm: Nếu đi đúng hướng thì khi giãi dc bất kỳ 1 trong 2 câu hỏi sẽ dễ dàng giãi dc câu hỏi còn lại... Các bạn suy nghĩ thêm đi
ANH TUẤN
 
anhtuan1066 đã viết:
Đúng vậy đó Bắp, như tôi đã nói:
Xin hỏi: ko dùng VBA, làm cách nào đễ thực hiện dc những điều tôi nói ở trên?

Vâng, nếu vậy để các thành viên yêu thích công thức giải đáp giúp bác vậy.

Bản thân em vì hướng tới sự hiệu quả của VBA nên không tham gia được.

Mong các bác mau chóng tiến bộ!!

Thân!
 
anhtuan1066 đã viết:
OK... câu 2 xem như bạn đã đạt yêu cầu.. nhưng mà... trời à! Công thức khiếp quá! He... he... Nói thật tôi chỉ cần 1 thủ thuật nhỏ là ra dc kết quả...
Bác chuyên nghiên cứu về công thức tất nhiên sẽ rút ngắn được nữa. Mà mục đích là thực hiện được yêu cầu bài toán thôi tôi chưa nghĩ cách rút gọn nó lắm khi điều kiện đưa ra còn bị thừa nữa là đằng khác.

Câu 1 tôi nghĩ chỉ đưa về điều kiện truy xuất giá trị trong mảng nhưng không làm thay đổi được giá trị đó vì muốn thay đổi thì chỉ có thay đổi tại cell nguồn.

Update lại công thức coi như là giải xong bài này.
Tạm biệt bác ở mục này thôi, thấy mấy cái này ứng dụng thực tế ít quá!
He he!
 

File đính kèm

Lần chỉnh sửa cuối:
He...he...
Bạn chẳng chịu đọc kỹ câu hỏi gì cả... Làm cứ dc cái này lại mất cái kia...
Lần này bạn làm dc vụ CLEAR ... thế còn cell link đâu? Gõ vào Text box chẳng thấy link tới đâu cả... Lúc ta chưa check vào check box thì Text box phải xài dc bình thường chứ! Nghĩa là phải link dc đến 1 cell nào đó, nghĩa là cái cell link ấy có nhận giá trị, bạn hiểu ko?
Nói lại lần nữa cho rõ nhé:
1> Khi chưa check vào check box: Gõ vào text box thì cell A1 sẽ nhận giá trị của Text box ấy
2> Khi check vào check box: Text box bị clear, đồng thời nếu cố gõ vào text box thì cell A1 vẫn im re...
Xem lại bài viết của tôi đây:
Giã sử lúc đầu Text box link tới cell A1, tức bạn gõ gì vào Text box thì A1 sẽ hiện ra y vậy... Nhưng khi bạn check vào check box thì khung nhập liệu của text box lập tức bị clear sạch... Và khi ấy cho dù bạn có gõ gì vào Text box, cell A1 vẫn ko nhận giá trị... Mọi chuyện lại trở lại từ đầu nếu bỏ chọn check box
Hy vọng bạn test kỹ file trước khi đưa lên! Nói thật tôi cũng rất hy vọng các bạn làm dc 2 câu hỏi này!
Chúc thành công!
ANH TUẤN
 
Thử giải câu 1 - atuan xem sao (File gửi kèm)? Mục tiêu thì đạt, Nhưng hình như chưa được như ý lém
mong nhận góp ý
 

File đính kèm

Vẫn chưa dc đâu Tigertiger ơi... Nó chưa đạt dc bất cứ mục tiêu nào cả!
Bạn xem lại câu hỏi ở bài #1 nhé!... đâu thể nào C1 vừa là công thức lại vừa là cell link? Khi bạn gõ vào Text box thì công thức đã bị xóa mất rồi ??? Và tóm lại file của bạn chỉ xài dc có 1 lần duy nhất....
ANH TUẤN
 
Lần chỉnh sửa cuối:
Cả tuần trôi qua vẫn ko ai giãi quyết bài toán này...
Các cao thủ GPE dạo này hơi bị.. lười...
Hic..
ANH TUẤN
 
anhtuan1066 đã viết:
Cả tuần trôi qua vẫn ko ai giãi quyết bài toán này...
Các cao thủ GPE dạo này hơi bị.. lười...
Hic..
ANH TUẤN
Không phải lười đâu Bác mà chưa nghĩ ra thôi ... Bác cho đáp án luôn đi cho mọi người đỡ mong. Em cũng thử nhiều cách rồi mà không đạt yêu cầu nên cũng im luôn không dám ho he, đợi sung rụng vậy.
 
oh tôi đã update lại file đã thực hiện được theo yêu cầu (câu hỏi) của bác sao bác nói chưa ai giải được ? hay bác post đáp án lên để mọi người so sánh? hi hi.
 
nguyentuhp đã viết:
oh tôi đã update lại file đã thực hiện được theo yêu cầu (câu hỏi) của bác sao bác nói chưa ai giải được ? hay bác post đáp án lên để mọi người so sánh? hi hi.
Oh... xin lổi, bạn update mà ko nói nên tôi ko biết
Xin chúc mừng, câu 1 này hoàn toàn chính xác... he...he.. từ đó suy ra câu 2 bạn cũng nên làm tương tự..
Nói thêm về giãi pháp: Nếu check box = False thì cell link của text box cho vào cell A1, ngược lại cho vào cell khác, với điều kiện cell này là 1 phần tử của 1 mãng (mãng ít nhất 2 phần tử)... Vì tính ko phân chia cũa mãng, nên dù cho link vào nó cũng ko thể làm thay đổi giá trị phần tử mãng này dc...
Mến
ANH TUẤN
 
Chào mọi người!
Như tôi đã nói sẽ cho mọi người thấy ứng dụng câu đố này như thế nào!...
Đây là phần giao diện, còn công thức thì.. các bạn đã thấy nhiều trên diển đàn rồi, nói chung ko có vấn đề...
Có thể tham khảo thêm về phần công thức tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=6170
File đính kèm, các bạn xem và đóng góp ý kiến nhé!
ANH TUẤN
 

File đính kèm

Bác Tuấn ơi em download file của Bác về phần thiết kế rất công phu và đẹp. Chỉ có chỗ nhập ngày, tháng, năm ... (textbox) không dùng bàn phím để chuyển qua lại được Bác xem có cách nào không Bác.
 
nghịch tí chơi, không biết ai đã giải chưa?
coi như thay bằng nội dung khác cũng giống như xóa nội dung nhé. tạm thế thôi :).

oài giải mất rồi, thôi coi như tham khảo, file này dùng tên động (cũng không sát với lời giải lắm, tham khảo)
 

File đính kèm

Lần chỉnh sửa cuối:
salam đã viết:
Bác Tuấn ơi em download file của Bác về phần thiết kế rất công phu và đẹp. Chỉ có chỗ nhập ngày, tháng, năm ... (textbox) không dùng bàn phím để chuyển qua lại được Bác xem có cách nào không Bác.
Đấy.. đấy.. đúng rồi.. đây là 1 khuyết điễm nhỏ mà tôi chưa có cách giãi quyết... Vì nếu như làm nó bằng VBA thì chẳng có vấn đề... Ở đây tôi đang theo quan điểm làm nó bằng công thức, nên 1 trục trặc nhỏ cũng ko sao giãi quyết dc...
Bạn nghiên cứu xem! Nếu cuối cùng vẫn ko có giãi pháp dùng phím Tab thì chắc đành phải xóa bớt, chừa lại mỗi khung 1 TextBox, nhập trực tiếp ngày tháng năm vào luôn quá
ANH TUẤN
 
Sao trong properties của textbox trong bảng tính lại không có tabstop như textbox trong form vậy Các Bác.
 
Mình cũng chưa xem qua nhưng có một suy nghĩ nên đơn giản hoá vấn đề. nếu người dùng nhập ngày tháng nam thì cứ để nhập theo kiểu thông thường: 09/03/2008
một số chương trình còn sổ ra cái lịch để chọn. Hoành tráng thật nhưng nhập lâu hơn.
 
longnh đã viết:
Mình cũng chưa xem qua nhưng có một suy nghĩ nên đơn giản hoá vấn đề. nếu người dùng nhập ngày tháng nam thì cứ để nhập theo kiểu thông thường: 09/03/2008
một số chương trình còn sổ ra cái lịch để chọn. Hoành tráng thật nhưng nhập lâu hơn.
Sở dỉ tôi phải phân NGAY, THANG, NAM ra thành 3 TextBox, lý do vì hệ thống cài đặt ngày tháng năm trên mỗi máy tính có khác nhau... nếu 1 TextBox chung thì 12/05/2008 chẳng biết nó là ngày 12 tháng 5 hay ngày 5 tháng 12...
Vụ này tôi bị đụng 1 lần nên giờ hơi ngán.. sợ sai.. he.. he.. nhưng chắc lần tới cũng phải nghiên cứu theo hướng như bạn nói (còn hơn là nghiên cứu phím Tab)
Cảm ơn!
ANH TUẤN
 
xử lý các Object

anh cho VD cu the di!
 
Bác thử nghiên cứu code dưới xem.

PHP:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyTab Or vbKeyReturn Then     
       TextBox2.Activate 
End If 
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
salam đã viết:
Bác thử nghiên cứu code dưới xem.

PHP:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyTab Or vbKeyReturn Then 
TextBox2.Activate 
End If 
End Sub
Cảm ơn Salam nhiều... Code tuy dài nhưng dễ hiểu... Tuy nhiên tôi sẽ áp dụng nó vào 1 bài toán khác của tôi...
Còn ở đây vẫn trên quan điễm là công thức...
Mến
ANH TUẤN
 

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

Back
Top Bottom