Lấy danh sách [ID] sau khi quay số ngẫu nhiên

Liên hệ QC

ngoctinh87

Thành viên thường trực
Tham gia
17/10/11
Bài viết
299
Được thích
346
Nhờ anh chị viết code giúp mình theo file mong muộn ạ:
-Cột A: danh sách có sẵn cho trước.
-Cột C: là danh sách những ID chưa quay trúng.
-Cột N là các ID đã quay trúng.
Khi nhấn "Quay So" => sẽ lấy ngẫu nhiên từ danh sách cột A và trả kết quả ở Shape màu xanh=> sau đó coppy qua cột N
Cứ tiếp tục lần sau như thế.
Xin chân thành cảm ơn.
1694686040400.png
 

File đính kèm

  • QuaySoNgauNhien.xlsx
    14.2 KB · Đọc: 6
Máy bạn sử dụng Win bao nhiêu và offce gì?
Bạn tham khảo code sau đây trong khi chờ các giải pháp khác.
Nếu được nhờ bạn giúp mình thêm là:
- Khi ấn nút quay thì trong hộp thoại "kết quả ID" ID đó sẽ chạy khoảng 15-20s rồi mới dừng lấy kết quả.
-Trường hợp mình muốn thay tên tiếng việt thì nó báo lỗi trong hộp thoại.
Cảm ơn bạn nhiều. Chúc bạn sức khỏe
 
Upvote 0
Nếu được nhờ bạn giúp mình thêm là:
- Khi ấn nút quay thì trong hộp thoại "kết quả ID" ID đó sẽ chạy khoảng 15-20s rồi mới dừng lấy kết quả.
-Trường hợp mình muốn thay tên tiếng việt thì nó báo lỗi trong hộp thoại.
Cảm ơn bạn nhiều. Chúc bạn sức khỏe
Dữ liệu của bạn có được khoảng 20 dòng mà bắt code chạy 15-20s thì cũng nhọc đấy nhé.
Trường hợp "muốn thay tên Tiếng Việt" là thay cột A đang từ ID000x thành NgocTrinh, NgocHoang, NgocHoan, NgocTinh,.... à. Muốn như thế nào thì Hãy gửi file lên, file cũ tôi xóa rồi.
Hãy hy vọng có nhiều người giúp bằng các giải pháp khác tốt hơn.
 
Upvote 0
Trên diễn đàn có nhiều bài về đề tài này mà, bạn tìm kiếm xem cái nào phù hợp thì xài.
 
Upvote 0
Trên diễn đàn có nhiều bài về đề tài này mà, bạn tìm kiếm xem cái nào phù hợp thì xài.
Mình cũng đã tải về xem 1 số file nhưng file thì mở bị lỗi, trong đó có file của bạn rất hay nhưng lại không loại bỏ những ID đã quay trúng rồi. Code mình mù tịt nên không biết sửa thế nào.
 
Upvote 0
Mình cũng đã tải về xem 1 số file nhưng file thì mở bị lỗi, trong đó có file của bạn rất hay nhưng lại không loại bỏ những ID đã quay trúng rồi. Code mình mù tịt nên không biết sửa thế nào.
Do bạn chưa tải trúng file xịn thôi.
 
Upvote 0
Rất mong bạn gửi file đó lên.
Cảm ơn bạn.

Sao lại gửi. Gửi file riêng là tính phí đó nhé. Như thế thì lại vi phạm nội quy.

Kêu bạn tải file chưa trúng tức là file đó có trên diễn đàn sẵn rồi. Bạn chịu khó tìm là thấy thôi.
 
Upvote 0
Nếu được nhờ bạn giúp mình thêm là:
- Khi ấn nút quay thì trong hộp thoại "kết quả ID" ID đó sẽ chạy khoảng 15-20s rồi mới dừng lấy kết quả.
-Trường hợp mình muốn thay tên tiếng việt thì nó báo lỗi trong hộp thoại.
Cảm ơn bạn nhiều. Chúc bạn sức khỏe
Cái Textbox ấy nó không chạy tít mù như các bài của anh Hoàng Trọng Nghĩa, hay của các bài khác mà nó chỉ chờ khoảng thời gian nào đó, rồi mới ra đáp số.
Còn việc thay tên tiếng Việt ở cột A thì bạn cứ thay thỏa mái.
Trả bài, đã sửa code, hy vọng đúng ý.
 

File đính kèm

  • QuaySoNgauNhien.xlsm
    25.3 KB · Đọc: 15
Upvote 0
Cái Textbox ấy nó không chạy tít mù như các bài của anh Hoàng Trọng Nghĩa, hay của các bài khác mà nó chỉ chờ khoảng thời gian nào đó, rồi mới ra đáp số.
Còn việc thay tên tiếng Việt ở cột A thì bạn cứ thay thỏa mái.
Trả bài, đã sửa code, hy vọng đúng ý.
1 lần nữa cảm ơn bạn rất nhiều đã nhiệt tình giúp đỡ.
Chúc bạn sức khỏe và thành công.
 
Upvote 0
Xem file.
Trong code mình có cho chạy 5 vòng, mỗi vòng chờ 1s. Bạn tùy chỉnh theo ý thích nhé
Phần tô màu, mình có ghi chú, có thể tùy chỉnh màu, hoặc bỏ đi cũng được.
PHP:
Option Explicit
Sub quayso()
Dim i&, rng As Range, c&, r, ce As Range
Set rng = Range(Range("C3"), Range("C3").End(xlDown))
c = rng.Rows.Count
Randomize
For i = 1 To 5 ' code se chay 5 vong. Dieu chinh 5 thanh 20, neu muon chay 20 vong
    r = Int(Rnd() * c) + 1 ' tao bien ngau nhiên
    Set ce = rng.Cells(r, 1)
    ce.Interior.Color = vbRed ' chuyen mau nen sang mau do
    ActiveSheet.Shapes("Rounded Rectangle 1").TextFrame.Characters.Text = ce.Value ' tam thoi hien thi gia tri trong o ket qua
    Application.Wait Now() + TimeSerial(0, 0, 1) ' thoi gian cho la 1s
    ce.Interior.Color = vbYellow ' chuyen mau nen tro lai mau vang
Next
With ce
    Range("N20").End(xlUp).Offset(1, 0).Value = .Value ' dien ket qua cuoi cung vao cot N
    .Delete xlUp ' xoa ket qua trong cot C
End With
End Sub
Sub reset()
If MsgBox(" Ban co muon reset lai tu dau khong?", vbYesNo) = vbNo Then Exit Sub
ActiveSheet.Shapes("Rounded Rectangle 1").TextFrame.Characters.Text = ""
Range("N3:N1000").ClearContents
Range("A3:A24").Copy Range("C3")
Range("C3:C24").Interior.Color = vbYellow
End Sub
 

File đính kèm

  • QuaySoNgauNhien.xlsm
    24.4 KB · Đọc: 16
Upvote 0
Bạn thử cái Lucky Draw này nè... hên xui hen
Cảm ơn bạn nhiều. Mình sẽ tham khảo thêm.
Bài đã được tự động gộp:

Xem file.
Trong code mình có cho chạy 5 vòng, mỗi vòng chờ 1s. Bạn tùy chỉnh theo ý thích nhé
Phần tô màu, mình có ghi chú, có thể tùy chỉnh màu, hoặc bỏ đi cũng được.
PHP:
Option Explicit
Sub quayso()
Dim i&, rng As Range, c&, r, ce As Range
Set rng = Range(Range("C3"), Range("C3").End(xlDown))
c = rng.Rows.Count
Randomize
For i = 1 To 5 ' code se chay 5 vong. Dieu chinh 5 thanh 20, neu muon chay 20 vong
    r = Int(Rnd() * c) + 1 ' tao bien ngau nhiên
    Set ce = rng.Cells(r, 1)
    ce.Interior.Color = vbRed ' chuyen mau nen sang mau do
    ActiveSheet.Shapes("Rounded Rectangle 1").TextFrame.Characters.Text = ce.Value ' tam thoi hien thi gia tri trong o ket qua
    Application.Wait Now() + TimeSerial(0, 0, 1) ' thoi gian cho la 1s
    ce.Interior.Color = vbYellow ' chuyen mau nen tro lai mau vang
Next
With ce
    Range("N20").End(xlUp).Offset(1, 0).Value = .Value ' dien ket qua cuoi cung vao cot N
    .Delete xlUp ' xoa ket qua trong cot C
End With
End Sub
Sub reset()
If MsgBox(" Ban co muon reset lai tu dau khong?", vbYesNo) = vbNo Then Exit Sub
ActiveSheet.Shapes("Rounded Rectangle 1").TextFrame.Characters.Text = ""
Range("N3:N1000").ClearContents
Range("A3:A24").Copy Range("C3")
Range("C3:C24").Interior.Color = vbYellow
End Sub
Cảm ơn bạn rất nhiều. Chúc bạn sức khỏe.
 
Upvote 0
@Thớt
Góp y thật lòng chứ thật sự tôi thấy cách quay số ngẫu nhiễn của chủ thớt chán thiệt, không có tính hồi hộp, kích thích gì cả, nhìn nó đơn điệu, chờ số đổi từ từ từ...làm giảm không khí sôi động của chương trình quay số trúng thưởng. Ngồi cho mấy giây nó hiện số rồi xong.
Bạn nên tham khảo cách làm khác của các bạn gửi link nó hay hơn. Tôi còn có làm một kiểu khác là quay số theo từng hàng đơn vị, lúc đầu quay nhanh sau đó quay chậm và dừng lại cho thêm phần kịch tính (giống số xố kiến thiết :D ) nhưng do viết trên ứng dụng khác, làm biếng chuyển sang Excel nên gợi ý thêm một cách thiết kế khác cho bạn.


Screen Shot 2023-09-15 at 15.23.58.png
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom