Page 1 of 1
เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
Posted: Sun Nov 03, 2019 11:21 pm
by yodpao.b
เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
เนื่องจากค่าที่เราต้องการเห็นอยู่ในเซลอื่น ที่อยู่ใกลจากจุดที่เราแก้ไข
หมายถึงเราแก้ไขตัวเลขในแถว ค่าผลรวมที่อยู่หัวตารางจะเปลี่ยนไป
ถ้าเลื่อนไปมาจะงงจำไม่ได้ว่าแก้ตรงไหน
จึงอยากถามว่ามีโคดอะไรไหมที่ เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
ลักษณะคล้ายกับการแสดงข้อคิดเห็นใน excel
หรือจะแสดงในรูปแบบไหนก็ได้
คัวอย่างตามรูปด้านล่างครับ
Re: เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
Posted: Sun Nov 03, 2019 11:41 pm
by snasui
yodpao.b wrote: Sun Nov 03, 2019 11:21 pm
เวลาลากเมาส์ผ่าน
เชลในแถบสีเหลืองให้แสดง
ต่าเซล ใน A1
เนื่องจากค่าที่เราต้องการเห็นอยู่ในเซลอื่น ที่อยู่ใกลจากจุดที่เราแก้ไข
หมายถึงเราแก้ไขตัวเลขในแถว ค่าผลรวมที่อยู่หัวตารางจะเปลี่ยนไป
ถ้าเลื่อนไปมาจะงงจำไม่ได้ว่าแก้ตรงไหน
จึงอยากถามว่ามีโคดอะไรไหมที่ เวลาลากเมาส์ผ่าน
เชลในแถบสีเหลืองให้แสดง
ต่าเซล ใน A1
ลักษณะคล้ายกับการแสดงข้อคิดเห็นใน excel
หรือจะแสดงในรูปแบบไหนก็ได้
คัวอย่างตามรูปด้านล่างครับ

กรุณาแก้ไขข้อความที่ผมระบายสีไว้ด้วยครับ

Re: เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
Posted: Mon Nov 04, 2019 12:15 am
by yodpao.b
ขอโทษครับ
เวลาลากเมาส์ผ่านเซลในแถบสีเหลืองให้แสดงค่าเซล ใน A1
เนื่องจากค่าที่เราต้องการเห็นอยู่ในเซลอื่น ที่อยู่ไกลจากจุดที่เราแก้ไข
หมายถึงเราแก้ไขตัวเลขในแถว ค่าผลรวมที่อยู่หัวตารางจะเปลี่ยนไป
ถ้าเลื่อนไปมาจะงงจำไม่ได้ว่าแก้ตรงไหน
จึงอยากถามว่ามีโคดอะไรไหมที่ เวลาลากเมาส์ผ่านเซลในแถบสีเหลืองให้แสดงค่าเซล ใน A1
ลักษณะคล้ายกับการแสดงข้อคิดเห็นใน excel
หรือจะแสดงในรูปแบบไหนก็ได้
ตัวอย่างตามรูปด้านล่างครับ
0.JPG
Re: เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
Posted: Mon Nov 04, 2019 2:06 pm
by yodpao.b
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
Call MacroClearPageApprove
End If
If Range("Q35") > 1 Then
If Target.Address = "$P$39" Then
MsgBox "..TOTAL COST OF BUDGET CUTS.." & vbLf & vbLf & " BATH : " & Range("Q35").Text, Title:="Contract Status"
End If
End If
ผมใช้ code ด้านบนดักจับการเปลี่ยนแปลงของเซล P9 จากนั้นให้ขึ้น MsgBox
แต่พอขยายการควบคุม จาก "$P$39" เป็น "$P$39":"$BG$100" กลับ ไม่ทำงาน
If Target.Address = "$P$39:$BG$100" Then
Re: เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
Posted: Mon Nov 04, 2019 8:22 pm
by snasui

Code ที่เขียนมาไม่ได้เกี่ยวกับการเปลี่ยนแปลงในเซลล์ P9 แต่อย่างใด กรุณาเขียนมาใหม่ให้ตรงกับสิ่งที่ต้องการด้วยครับ
ช่วยสรุปมาใหม่ว่าต้องการจะทำอะไรเป็นลำดับ ๆ ไป อ่านแล้วยังไม่เข้าใจถึงสิ่งที่ต้องการ
การดักการเปลี่ยนแปลงกับการคลุมใช้คนละ Event ต้องการทำอันไหนก่อนหลัง ทำแล้วต้องการให้ได้คำตอบเป็นอะไร ช่วยเขียนมาอย่างละเอียดครับ
Re: เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
Posted: Mon Nov 04, 2019 10:49 pm
by yodpao.b
code ที่เขียนไปคือ เมื่อ P39 มีการเปลี่ยนแปลงเช่นพิมพ์เลขใหม่ MsgBox จะขึ้นมาสรุปผลรวมให้เห็น
ซึ่งไม่ดีแน่เพราะบริเวณนั้นจะต้องมีการวางหรือคัดลอกบ่อยซึ่งก็จะทำให้ MsgBox ปรากฏขึ้นอาจทำให้มีปัญหาภายหลัง
ผมหาข้อมูล code ได้เท่านี้ครับ ทำอย่างอื่นไม่ได้แล้ว
ที่ผมเขียน code ด้านบนไม่เอาครับ ขอเปลี่ยนเป็นคลุม
อยากให้อาจารย์ช่วยเขียน code แบบคลุมครับ
ลำดับการทำงาน
1 เมื่อลากเมาส์ ค้างไว้บริเวณ cell F35:BH35 (ไม่มีการคลิก cell ใดๆ)
ผลคือจะต้องแสดง MsgBox ขึ้น
2 ภายใน MsgBox จะแสดงผลที่ได้จากการ SUM ในเซล Q35
3.คลิก ok ใน MsgBox หรือลากเมาส์ผ่านไปไม่ให้อยู่ในระยะ cell F35:BH35 MsgBox ปิดเอง
จบขั้นตอน
ในข้อ 3 แล้วแต่อาจารย์จะสะดวกนะครับ คลิก ok ก็ไม่ต้องทำอะไรมาก
ขอขอบคุณครับ
ผมลองเอาไฟล์ไปใช้ เปลี่ยนตัวเลขที่ต้องลากเมาส์กลับไปดูผลรวมที่ แล้วก็กลับไปปรับตัวเลขใหม่ งงมากครับ
จึงอยากได้ทำอย่างไรก็ได้ให้ผลรวมปรากฎขึ้นโดยไม่ต้องลากเมาส์ไปดู
ตอนชั่วโมงที่ผ่านลองใช้ Even คลิกขวาที่เมาส์ ok มากเลยครับแต่ติดที่หลังจากนั้นมันขึ้นเมนูที่เกียวข้องกับการคลิกขวาที่เมาส์ขึ้นมาด้วย
ดูไม่ดีอีกเช่นกัน แต่ผมจะใช้เป็นทางเลือกสุดท้าย
Re: เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
Posted: Mon Nov 04, 2019 11:08 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("$P$35:$BG$35")) Is Nothing Then
MsgBox "..TOTAL COST OF BUDGET CUTS.." & vbLf & vbLf & " BATH : " & Range("Q35").Text, Title:="Contract Status"
End If
End Sub
Re: เวลาลากเมาส์ผ่านเชลในแถบสีเหลืองให้แสดงต่าเซล ใน A1
Posted: Mon Nov 04, 2019 11:40 pm
by yodpao.b
แบบนี้ก็ได้ ครับ ใช้ได้เหมือนกัน
ขอโทษจริงครับอาจารย์ ผมจำได้โคดที่ได้มาใหม่ คล้ายกับที่อาจารย์ทำให้เมื่อ อาทิตย์ก่อน
โคดที่เคยได้มา
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
ผมนี้แย่มาก ดันไปนำ โคด " Worksheet_Change" มาใช้
เสียเวลาหาข้อมูลต้องนาน ที่แท้ก็เคยนำมาใช้ไม่กี่วันเอง
ต้องขอโทษที่ทำให้อาจารย์เสียเวลาตอบคำถามแบบเดิม