Tạo bảng chọn câu ngẫu nhiên và thay đổi "mặt cười"

Liên hệ QC

giang127

Thành viên hoạt động
Tham gia
24/12/07
Bài viết
138
Được thích
8
Các bạn ơi, mình có chút khó khăn với 2 file excel này. Mong các bạn giúp mình nha. |||||

File thứ nhất : "Giai do.xls"

Mình có 4 câu hỏi 1, 2, 3 , 4 theo như trong file.
Nút "Trả lời" dùng để bắt đầu, sau khi chọn theo kiểu "lần lượt" hoặc là "ngẫu nhiên"

Bây giờ mình muốn:

Với trường hợp chọn "Ngẫu nhiên"

- Khi click nút "Tiếp" sẽ hiện ra 1 câu hỏi ngẫu nhiên từ 1 đến 4 ở ô C3 và nội dung câu hỏi bên cạnh
- Hộp thoại Msgbox sẽ hiện ra, trả lời Đúng được + 10 điểm, Sai thì không được điểm nào
- Ấn "Tiếp" lần nữa thì ra câu hỏi ngẫu nhiên tiếp theo, cho đến hết. Các câu hỏi rồi thì thôi không hỏi lại nữa.

Với trường hợp chọn "Lần lượt"

- Cũng tương tự, chỉ có điều là theo tuần tự từ câu 1 đến 4


File thứ hai : "Giai do 2.xls"

Vẫn với bài toán 4 câu đố trên, nhưng mà mình muốn, nếu trả lời đúng thì sẽ được hình mặt cười 3 (Mình có đánh số trong file đính kèm)
Trả lời sai thì bị giảm 1 nấc, còn lại mặt cười 2, sai nữa thì 1, sai nữa cũng chỉ 1 thôi.
Cái ảnh cạnh phần điểm số sẽ thay đổi trong 3 hình mặt cười này.



CẢM ƠN CÁC BẠN NHÌU NHA !! -\\/.

Nếu làm xong mà File lớn quá không up lên diễn đàn được thì gửi dùm cho tớ vào hòm thư:
mymemory127@yahoo.com.vn

Cảm ơn 1 lần nữa -=.,,

View attachment Giai do.xls

View attachment Giai do 2.rar
 
Mời xem trong file đính kèm

PHP:
Option Explicit
Dim Ngau As Byte, Bon As Byte

Private Sub CommandButton1_Click()
 Dim Cau As Byte, Tiep As Byte, VTr As Byte
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 Const StrC As String = "0123456789":                    Dim MyStr As String
 
 Sheets("S1").Select
 
 Set Sh = Sheets("CSDL"):        Cau = [A2].Value
 Set Rng = Sh.Range(Sh.[A1], Sh.[A999].End(xlUp))
 If Left([G6].Value, 1) = "L" Then
   Tiep = IIf(Cau = 9, 1, Cau + 1)
 Else
   Tiep = Cau - 1
   VTr = InStr(1, StrC, Tiep)
   MyStr = Left(StrC, VTr - 1) & Mid(StrC & " ", VTr + 1)
   Tiep = Mid(MyStr, 1 + Int(8 * Rnd()), 1)
   If Tiep = Cau Then Tiep = IIf(Cau < 9, Cau + 1, 1)
 End If
 Set sRng = Rng.Find(Tiep, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
   [B2].Value = sRng.Offset(, 1).Value
   [B4].Resize(, 5).Value = sRng.Offset(, 2).Resize(, 5).Value
   [A2].Value = IIf(Tiep < 9, Tiep, 1)
 End If
 [a4].Select
End Sub

Mã:
[B]Private Sub Worksheet_Activate()[/B]
   Randomize:                       Ngau = 1 + Int(9 * Rnd())
   [A2].Value = Ngau:               [h2].Value = 0
   CommandButton1_Click
[B]End Sub[/B]

PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect(Target, Range("B4:E4")) Is Nothing Then
   Bon = 1 + Bon
   If Bon = 5 Then
      MsgBox "Moi Ban Choi Van Moi!":        Bon = 0
      [h2].Value = 0:                        Worksheet_Activate
   Else
      If Target.Column = [f4].Value + 1 Then
         [h2].Value = [h2].Value + 10
      Else
         MsgBox [f4].Value
      End If
   End If
 End If
End Sub
 

File đính kèm

Upvote 0
Cảm ơn bạn SA_DQ . Tuy nhiên, file "GiaiDo" này có một số lỗi, đó là nó cứ bắt mình chọn câu đúng, ấn đến lần thứ 4 mà sai thì lại phải chơi lại từ đầu.

Mình ấn 1 câu sai thì nó hiện lên MsgBox chỉ đáp án đúng, bắt mình chọn.

Bạn kiểm tra xem phải vậy ko, sửa lại giúp mình với nhé ^^!

Với lại file Giải do 2 ("Giai do 2.xls") Có thể có hàm VBA nào giúp thay ảnh hiển thị khi trả lời sai hoặc đúng 1 câu hỏi đc ko.

THANKS !
 
Upvote 0
Tuy nhiên, file "GiaiDo" này có một số lỗi, đó là nó cứ bắt mình chọn câu đúng, ấn đến lần thứ 4 mà sai thì lại phải chơi lại từ đầu.
Nói đó là lỗi thì hơi nặng(!); Trong đề bài của bạn cũng chỉ có 4 câu trắc nghiệm mà thôi; mình có làm thêm 5 câu nữa bổ sung cho dễ chọn. Chứ như bạn hết 4 câu thì sao(?)

Mình ấn 1 câu sai thì nó hiện lên MsgBox chỉ đáp án đúng, bắt mình chọn.
Bạn kiểm tra xem phải vậy ko, sửa lại giúp mình với nhé ^^!
Nếu không muốn thấy đáp án đúng thì thay câu lệnh
Mã:
MsgBox [f4].Value
bằng câu
PHP:
MsgBox "GPE.COM"

(Phần còn lại hãy đợi đấy!)

Chúc ngày nghĩ cuối tuần vui vẽ!
 
Upvote 0
Bạn SA_DQ ơi. Sẵn tiện cho mình hòi là có thể tạo một thanh cuốn dọc cho 1 bảng tính (đã Merge thành 1 ô) được không.

Để mình có thể xem dữ liệu trong bảng tính đó bằng cách kéo thanh cuốn dọc đó.

Cảm ơn nhìu nghen. Chúc cuối tuần vui vẻ :D
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom