Page 1 of 3

ทำไงให้มันขึ้น Game Over ครับ

Posted: Thu Dec 09, 2010 12:54 pm
by chaiyo2541
สมมุติว่าตั้งเวลาไว้ 1 นาที่ พอหมด 1 นาที มันจะขึ้นว่า Game Over อะครับ ทำยังไงหรอครับ

บอกวิธีทำด้วยนะครับ ว่ากดปุ่มไหนยังไง

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Thu Dec 09, 2010 1:17 pm
by snasui
:D ส่งไฟล์ตัวอย่างมาด้วยครับ ต้องการให้ชีทไหน เซลล์ไหนแสดงค่าอย่างไร การทำงานกับ VBA และผู้ถามไม่มีความรู้พื้นฐานมาบ้างนั้นไม่ง่ายนัก ต้องค่อย ๆ ทำความเข้าใจไปครับ :mrgreen:

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Thu Dec 09, 2010 2:45 pm
by chaiyo2541
ทำยังไงหรอครับ แบบพอหมดเวลา 30 นาที แล้วมันจะขึ้น Game Over อะครับ

ช่วยบอกวิธีการทำด้วยนะครับว่ากดปุ่มอะไรยังไง


ปล. ขอบคุณครับ

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Thu Dec 09, 2010 3:00 pm
by snasui
:D ต้องแก้ Code VBA ตามด้านล่างครับ

Code: Select all

Sub Reset()
Dim count As Range
Set count = Worksheets("Sheet1").[A7]
On Error Resume Next
count.Value = count.Value - TimeValue("0:00:01")
    If count <= 0 Then
             MsgBox "Game Over" 'แ้ก้บรรทัดนี้ เดิมเป็น Call Reset1
        Exit Sub
    End If
Call Timer
End Sub
การเข้าไปแก้ Code ให้กดแป้น Alt+F11 > จะเข้าหน้าต่าง VBE > Double Click Module1 ในหน้าต่าง VBA Project ด้านซ้ายมือแล้วแก้ Sub Reset ให้เป็นไปตามด้านบน จากนั้นกดแป้น Alt+Q เพื่อกลับมายังหน้าจอ Excel > กดแป้น Start แล้วสังเกตดูผล :mrgreen:

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Thu Dec 09, 2010 3:11 pm
by chaiyo2541
แล้วทำแบบหมดเวลา 30 นาที แล้วจะลิ้งก์ ไปหา Sheet 2 อะครับ ทำได้รึเปล่าครับ

แบบ Sheet 2 พิมพ์ Game Over ไว้อะครับ

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Thu Dec 09, 2010 3:14 pm
by snasui
:D คำว่าเกมส์ Over พิมพ์ไว้เซลล์ไหนของ Sheet2 เนื่องจากเปิดดูแล้วไม่เจอครับ นอกจากนี้ที่บอกให้แก้ Code ก็ยังไม่ได้แก้ตามที่บอกเลยครับ

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Thu Dec 09, 2010 3:19 pm
by chaiyo2541
แล้วทำแบบหมดเวลา 30 นาที แล้วจะลิ้งก์ ไปหา Sheet 2 อะครับ ทำได้รึเปล่าครับ

แบบ Sheet 2 พิมพ์ Game Over ไว้อะครับ


อันใหม่ครับ เมื่อกี้ผมลืมแก้

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Thu Dec 09, 2010 3:29 pm
by snasui
:D หากจะใช้เวลานับถอยหลังที่เซลล์ A7 ตรง StartTime แก้เป็น

Code: Select all

Sub StartTime()
Worksheets("Sheet1").[A7].Value = TimeValue("00:30:00")
Worksheets("Sheet1").[A7].NumberFormat = "h:mm:ss"
Call Timer
End Sub
ส่วนกรณีหมดเวลา 30 นาทีแล้วให้ไปยัง Sheet2 สามารถปรับ Code ที่ Sub Reset เป็นตามด้านล่างครับ

Code: Select all

Sub Reset()
Dim count As Range
Set count = Worksheets("Sheet1").[A7]
On Error Resume Next
count.Value = count.Value - TimeValue("0:00:01")
    If count <= 0 Then
             Worksheets("Sheet2").Select
        Exit Sub
    End If
Call Timer
End Sub

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Fri Dec 10, 2010 1:38 pm
by chaiyo2541
ตั้งเวลา sheet ยังไงหรอครับ แบบสมมุติว่าตั้งเวลา sheet Game Over ไว้ 4 วินาที พอหมด 4 วินาที แล้วมันจะไปอีก sheet 3 ( Level 2 ) อะครับ
ทำยังไงหรอครับช่วยอธิบายการทำด้วยนะครับว่าทำยังไงอย่างไร

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Fri Dec 10, 2010 1:43 pm
by tanachai2541
:flw: :flw: :flw: :flw: :flw: :flw:

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Fri Dec 10, 2010 2:05 pm
by snasui
:shock: คุณลองทำตามที่ผมแนะนำติดขัดตรงไหนก็ส่งไฟล์มาพร้อมคำอธิบายในสิ่งที่เป็นปัญหา ผมจะได้ดูว่าคุณทำถูกหรือผิดอย่างไรครับ

เป็นไฟล์อันเดียวกันกับที่คุณส่งมาครับ Code ก็อยู่ในนั้น ผมระบุตำแหน่งให้เรียบร้อยว่าแก้ตรงไหนครับ 8-)

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Fri Dec 10, 2010 2:08 pm
by snasui
tanachai2541 wrote: :flw: :flw: :flw: :flw: :flw: :flw:
:shock: โปรดทราบว่าผมไม่ได้อยู่หน้าจอตลอดเวลาและจะอ่านทุกความเห็น ไม่ควรโพสต์มาเพียง icon โดยไม่มีคำถามหรือไม่มีการแจ้งข้อมูลใดเพื่ออธิบายเพิ่มเติมครับ :twisted:

ทำให้ไปอีก Level ยังไง

Posted: Fri Dec 10, 2010 3:05 pm
by chaiyo2541
แล้วจะทำให้มันไปอีก Level ยังไงหรอครับ แบบให้ผล SUM ถึง 5 แล้วจะไป Level 2 อะครับ

ทำยังไงหรอครับ ช่วยบอกวิธีการทำ ด้วยนะครับ
-----------------------------------------------------
*** ยกมาจากกระทู้ ทำให้ไปอีก Level ยังไง เนื่องจากเห็นว่าเป็นคำถามที่เกี่ยวเนื่องกัน ***

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Fri Dec 10, 2010 3:47 pm
by snasui
:D สำหรับกระทู้ในความเห็นข้างบนนี้ผมนำมารวมกับหัวข้อ ทำไงให้มันขึ้น Game Over ครับ เนื่องจากเป็นคำถามที่ต่อเนื่องกัน

มาอ่านอีกทีเลยไม่แน่ใจว่า สำหรับที่จะให้มันไปอีก Level เมื่อ T20 มีค่าเท่ากับ 5 เป็นเงื่อนไขต่อเนื่องจากนับเวลาหรือไม่ครับ

ควรเขียนเงื่อนไขที่เกี่ยวเนื่องมาให้ครบจะได้เขียน Code ทีเดียวครับ :mrgreen:

ปุ่มเริ่มเล่น เวลา ไม่วิ่งครับ

Posted: Mon Nov 28, 2011 8:24 pm
by raycity
พิมพ์โค๊ดตามอาจารย์ทุกอย่าง
แต่ตัวเลขมันนิ่ง เวลามันไม่เดิน อะครับ
เป็นเพราะอะไรครับ

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Mon Nov 28, 2011 8:28 pm
by snasui
:D การใช้ Macro หรือ VBA ใน Excel รุ่น 2007 ขึ้นไปจะต้องจัดเก็บ (Save As) เป็นนามสกุล .xlsm ถึงจะแนบ Code ไปกับไฟล์ได้ครับ ตอนนี้ Save มาเป็น .xlsx จึงไม่สามารถใช้งาน Code ได้ครับ

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Mon Nov 28, 2011 8:33 pm
by raycity
จะทำยังไง ให้ เวลาเดิน ครับ :?:

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Mon Nov 28, 2011 8:37 pm
by snasui
:lol: เวลาใน Sheet1 เซลล์ A7 เดินอยู่ครับ :lol:

หากความต้องการคือให้เวลาใน Sheet2 เซลล์ A7 ลดลงเรื่อย ๆ ก็ต้องเปลี่ยน Code ที่อ้างถึง Sheet1 ให้เป็น Sheet2 ทั้งหมดครับ

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Wed Nov 30, 2011 9:01 am
by raycity
snasui wrote::lol: เวลาใน Sheet1 เซลล์ A7 เดินอยู่ครับ :lol:

หากความต้องการคือให้เวลาใน Sheet2 เซลล์ A7 ลดลงเรื่อย ๆ ก็ต้องเปลี่ยน Code ที่อ้างถึง Sheet1 ให้เป็น Sheet2 ทั้งหมดครับ
ทำให้ เวลาเดินหลายๆ Sheet ได้ไหมครับ

Re: ทำไงให้มันขึ้น Game Over ครับ

Posted: Wed Nov 30, 2011 9:16 am
by raycity
raycity wrote:
snasui wrote::lol: เวลาใน Sheet1 เซลล์ A7 เดินอยู่ครับ :lol:


ทำให้ เวลาเดินหลายๆ Sheet ได้ไหมครับ