snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#21
Post
by suka » Tue Sep 27, 2011 7:22 pm
ขอบคุณค่ะอาจารย์ จะค่อยๆ ลองศึกษา VBA ค่ะ ดูแล้วก็ยากจะเข้าใจนะคะ
ขอรบกวนอาจารย์อีกรอบค่ะ ขอช่วยตรวจว่าวาง Code ผิดที่หรือมีจุดใดผิด ยังใช้ไม่ได้น่ะค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30750 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#22
Post
by snasui » Tue Sep 27, 2011 8:05 pm
ไม่ทราบว่า Copy ไปวางโดยวิธีใดครับ Code ถึงกลายเป็นสีแดงไปได้
การ Copy Code ให้ทำตามภาพ ลองทดสอบดูอีกครั้งครับ เมื่อทำไปวางใน VBE แล้ว Code ต้องไม่กลายเป็นสีแดง
You do not have the required permissions to view the files attached to this post.
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#23
Post
by suka » Tue Sep 27, 2011 8:15 pm
อาจารย์คะ
ตอน Copy Code ไปวางครั้งแรกไม่เป็นสีแดงค่ะ แต่พอเปลี่ยน ActiveShee เป็น Sheets("AY") เท่าแหละเป็นสีแดงเลยค่ะ
snasui
Site Admin
Posts: 30750 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#24
Post
by snasui » Tue Sep 27, 2011 8:19 pm
ถ้าเช่นนั้นลองใช้วิธีนี้ในการ Replace ครับ
ในโปรแกรม VBE
1. คลุม Code ที่นำไปวาง
2. กดแป้น Ctrl+H > ช่องบนคีย์ ActiveSheet ช่องล่างคีย์ Sheets("AY")
3. คลิกปุ่ม Replace All
สังเกตว่าเป็นสีแดงหรือไม่ครับ
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#25
Post
by suka » Tue Sep 27, 2011 9:33 pm
อาจารย์คะ ลองทำแล้วไม่ได้ค่ะ
ได้แนบรูปมากับไฟล์ตัวอย่างไม่ทราบทำผิดจุดไหน รู้สึกเกรงใจอาจารย์จังค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30750 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#26
Post
by snasui » Tue Sep 27, 2011 9:55 pm
ลองพยายามใหม่ครับ ดู Code เดิมว่าเขียนอย่างไร ที่เขียนมานั้นบางค่าไม่ถูกต้อง ผิดกันไปเป็นคนละตัว บางค่ามี s เกินมา และสำหรับที่ล้อมกรอบสี่เหลี่ยมให้ลบค่าว่างทิ้งไปก่อนครับ ค่าจะขยับไปด้านหน้า หากต้องการจะให้เยื้องเหมือนเดิมก็ให้กดแป้น Tab หรือกด Space bar
You do not have the required permissions to view the files attached to this post.
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#27
Post
by suka » Wed Sep 28, 2011 12:51 pm
อาจารย์คะ มาขอรบกวนอีกรอบค่ะ
ได้ลองทำแล้วไม่เป็นสีแดงแต่เส้นคู่ก็ยังไม่เปลี่ยนแปลงค่ะ ยังไม่ได้เหมือนเดิมได้แนบตัวอย่างไฟล์มาให้อาจารย์ช่วยจับผิดให้ค่ะ
ขอบคุณมากๆค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30750 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#28
Post
by snasui » Wed Sep 28, 2011 1:40 pm
เส้นคู่จะยังไม่เปลี่ยนแปลงจนกว่าจะมีการ Run Code ครับ วิธีการ Run Code ให้กดแป้น Alt+F8 > เลือก HideLine หรือไม่ก็สร้างปุ่มขึ้นมาเพื่อ Assign Macro แล้วคลิกปุ่มนี้เพื่อให้ Code ทำงาน
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#29
Post
by suka » Wed Sep 28, 2011 5:14 pm
อาจารย์คะ สามารถทำปุ่ม HideLine ให้ทำงานได้แล้วค่ะ
ขอบพระคุณมากๆค่ะ
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#30
Post
by suka » Wed Sep 28, 2011 10:27 pm
ที่คุณ Logic โพสต์นั้นถูกต้องแล้วครับ เมื่อมีการพิมพ์แล้วก็ต้องเก็บข้อมูลไว้เพื่อจะตรวจสอบได้ว่าพิมพ์แล้วหรือยังไมพิมพ์ การเก็บข้อมูลอัตโนมัติคงต้องพึ่ง VBA และเช่นเคยครับ ถ้าจะใช้ VBA ก็เขียนมาก่อน ติดตรงไหนก็มาถามกันต่อครับ
อาจารย์คะ มาขอรบกวนอีกแล้วค่ะ
ที่ชีท AY ได้ทำปุ่ม Print Area พร้อมลองใส่ Code เพื่อให้พิมพ์ได้แล้วค่ะ
หากจะขอให้อาจารย์ช่วยเพิ่ม Code เมื่อกดปุ่ม Print Area ให้ระบบพิมพ์พร้อมเก็บข้อมูลที่พิมพ์ไว้ในฐานข้อมูลด้วยจะได้ไหมคะ
ขอบตุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30750 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#31
Post
by snasui » Wed Sep 28, 2011 10:47 pm
ต้องการพิมพ์พื้นที่ไหนถึงไหนครับ ได้ออกแบบฐานข้อมูลไว้ให้แล้วยัง ถ้าออกแบบไว้แล้วอยู่ที่ชีทใดช่วยแจ้งด้วยครับ
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#32
Post
by suka » Thu Sep 29, 2011 2:23 pm
อาจารย์คะ สำหรับให้โปรแกรมรู้ว่าพิมพ์แล้วใช้ เซลล์ K2 ที่ชีท Database ค่ะ
และชีท Form สำหรับกรอกข้อมูลไปไว้ที่ชีท Database ค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30750 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#33
Post
by snasui » Thu Sep 29, 2011 6:25 pm
ลองดู Code ด้านล่างครับ
Code: Select all
Sub SetPrintAreaBeforePrint()
Dim lng As Long
Dim r As Range
Dim i As Integer
On Error Resume Next
lng = Rows.Count
Set r = Sheets("Sheet2").Range("B3")
With Sheets("Database")
i = Application.Match(r, .Range("B:B"), 0)
If .Range("K" & i) = "Y" Then
MsgBox "Your cheque alreay printed."
Exit Sub
End If
End With
Sheets("AY").Range("A1:M10").PrintOut
Sheets("Database").Range("K" & i) = "Y"
MsgBox "Finish."
End Sub
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#34
Post
by suka » Thu Sep 29, 2011 9:22 pm
อาจารย์คะ Code สั่งพิมพ์และป้องกันการพิมพ์ซ้ำใช้งานได้แล้วค่ะ
มาขอรบกวนเพิ่มค่ะ
ที่ชีท Form ได้ใส่ Code ให้บันทึกไปที่ชีท Databaseได้แล้ว มาขออาจารย์ช่วยตรวจให้ด้วยค่ะ
อีกเรื่องหลังบันทึกเสร็จแล้ว จะเคลียร์ให้เป็นฟอร์มว่างทำไม่ได้ค่ะ ขออาจารย์ช่วยเพิ่ม Code ให้ค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30750 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#35
Post
by snasui » Thu Sep 29, 2011 9:28 pm
ดูตัวอย่างจาก Link เหล่านี้แล้วลองปรับปรุง Code มาดูครับ
Clear contents
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#36
Post
by suka » Fri Sep 30, 2011 9:43 am
อาจารย์คะ สามารถทำเคลียร์ให้เป็นฟอร์มว่างได้แล้วค่ะ
ขอบพระคุณมากๆค่ะ
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#37
Post
by suka » Fri Sep 30, 2011 5:39 pm
อาจารย์คะ
ที่ชีท Form ได้ Add Calendar มาไว้ที่เซลล์ C2 ใช้งานได้ แต่ Add Calendar มาที่เซลล์ M2 ของชีท Form อันหลังนี้
ไม่สามารถปรับ Code ให้ใช้งานได้ มาขอรบกวนอาจารย์ช่วยปรับ Code ให้น่ะค่ะ
ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
joo
Gold
Posts: 1213 Joined: Sat Apr 17, 2010 3:50 pm
#38
Post
by joo » Fri Sep 30, 2011 9:16 pm
ลองปรับโค๊ดเป็นแบบนี้ดูครับ
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If (Target.Address = "$C$2" Or _
Target.Address = "$M$2") Then
With ActiveSheet.Calendar1
.Visible = True
.Top = ActiveCell.Offset(0, 0).Top
.Left = ActiveCell.Offset(0, 1).Left
End With
Else
ActiveSheet.Calendar1.Visible = False
End If
Application.EnableEvents = True
End Sub
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#39
Post
by suka » Fri Sep 30, 2011 10:33 pm
สามารถใช้งานได้แล้วค่ะ ขอบคุณค่ะคุณ joo
ดีใจค่ะได้รับความช่วยเหลือเอื้อเฟื้อ แบ่งปันความรู้ขอบคุณมากๆค่ะ
suka
Silver
Posts: 918 Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021
#40
Post
by suka » Thu Oct 06, 2011 5:38 pm
ขอรบกวนอีกรอบค่ะ หากต้องการ Add Calendar ไปใช้เพิ่มอีกชีท
สมมุติว่าใช้ที่ เซลล์ A2 และ เซลล์ B2 ของชีท Test ต้องปรับโค๊ดอย่างไรคะ
ขอบคุณค่ะ