Page 1 of 1
สอบถาม CodeVB Show ปุ่มที่ซ่อนไว้ เมื่อ เซลที่กำหนดไว้ มีค่าเปลี่ยนไป
Posted: Mon Mar 04, 2024 6:20 pm
by tigerwit
จากไฟล์ที่แนบมาต้องการให้ แสดงปุ่ม Save ที่ถูกซ่อนไว้ เมื่อค่าใน H1 เปลี่ยนไป (ค่าที่เปลี่ยนไป ใน H1 เกิดจากการเชื่อมโยงเซลล์ของ DropDownList ไม่ใช่เปลี่ยนจากการคีย์ข้อมูลเอง)
ต้องปรับโค๊ดอย่างไรครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$1" Then
ActiveSheet.Shapes("Button3").Visible = True
End If
End Sub
Re: สอบถาม CodeVB Show ปุ่มที่ซ่อนไว้ เมื่อ เซลที่กำหนดไว้ มีค่าเปลี่ยนไป
Posted: Mon Mar 04, 2024 8:05 pm
by snasui

คำว่าเมื่อค่าเปลี่ยนไปแสดงว่าต้องมีค่าเดิมให้เทียบ ค่าเดิมจะต้องถูกพักไว้ใน Object ใด ๆ ยกตัวอย่างเช่นใน H2 เมื่อมีการเลือกค่าใหม่จะนำ H1 ไปเที่ยบกับ H2 ถ้าค่าเปลี่ยนไปจึงจะยกเลิกการซ่อน สามารถเลือกใช้ Calculate Event เพื่อทดแทน Change Event ที่ไม่ทำงานกรณีมี Link ค่าลักษณะนี้ครับ
Code ด้านล่างเป็นการตรวจจับการคำนวณของชีต หากมีการคำนวณเกิดขึ้นจะตรวจสอบค่าใน H1 เทียบกับค่าใน H2 หากไม่เท่ากันจะแสดงปุ่มที่ซ่อนไว้
Code: Select all
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If Range("h2").Value <> Range("h1").Value Then
Call show01
Range("h2").Value = Range("h1").Value
End If
Application.EnableEvents = True
End Sub
ที่สำคัญ เมื่อคลิกปุ่มดังกล่าวแล้วจะต้องเพิ่ม Code ให้
ซ่อนเอาไว้เสมอ เพื่อให้แสดงด้วยการเลือกค่าจาก Combobox ในคราวหลัง