Page 1 of 1

แสดง Shapes ตามเงื่อนไข

Posted: Mon Mar 11, 2024 3:58 pm
by babyminds
เราสามารถสั่งให้ เส้น Line แสดงหรือไม่แสดง ตามเงื่อนไขได้ไหมครับ เช่น B1 = 1 จะแสดงเส้น Line B1 = 0 จะไม่แสดงเส้น Line
1.JPG
2.JPG
Test.xlsx

Re: แสดง Shapes ตามเงื่อนไข

Posted: Mon Mar 11, 2024 7:38 pm
by snasui
:D สามารถทำได้ด้วย VBA ลองเขียนมาเองดูก่อน ติดตรงไหนค่อยถามกันต่อครับ

Re: แสดง Shapes ตามเงื่อนไข

Posted: Tue Mar 12, 2024 9:43 am
by babyminds
snasui wrote: Mon Mar 11, 2024 7:38 pm :D สามารถทำได้ด้วย VBA ลองเขียนมาเองดูก่อน ติดตรงไหนค่อยถามกันต่อครับ

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "0"
    Range("B2").Select
    ActiveSheet.Shapes.Range(Array("Straight Connector 11")).Select
    Selection.Delete
    ActiveCell.FormulaR1C1 = "0"
    ActiveSheet.Shapes.Range(Array("Straight Connector 19")).Select
    Selection.Delete
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "0"
    ActiveSheet.Shapes.Range(Array("Straight Connector 27")).Select
    Selection.Delete
    Range("B4").Select
    ActiveCell.FormulaR1C1 = "0"
    ActiveSheet.Shapes.Range(Array("Straight Connector 35")).Select
    Selection.Delete
    Range("B5").Select
    ActiveCell.FormulaR1C1 = "0"
    ActiveSheet.Shapes.Range(Array("Straight Connector 43")).Select
    Selection.Delete
    Range("B6").Select
    ActiveCell.FormulaR1C1 = "0"
    ActiveSheet.Shapes.Range(Array("Straight Connector 51")).Select
    Selection.Delete
End Sub
เขียนเองได้ประมาณนี้ครับต้องปรับแก้ยังไงบ้างครับ
Test1.xlsb
:D :D

Re: แสดง Shapes ตามเงื่อนไข

Posted: Tue Mar 12, 2024 10:04 am
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'


    If Range("B1").Value = 0 Then
        ActiveSheet.Shapes.Range(Array("Straight Connector 11")).Visible = False
    Else
        ActiveSheet.Shapes.Range(Array("Straight Connector 11")).Visible = True
    End If
    
    If Range("B2").Value = 0 Then
        ActiveSheet.Shapes.Range(Array("Straight Connector 19")).Visible = False
    Else
        ActiveSheet.Shapes.Range(Array("Straight Connector 19")).Visible = True
    End If
    'Other code
ถ้าคอลัมน์ B เป็น 0 ให้ซ่อน Object ถ้าเป็น 1 ให้แสดง Object ครับ

Re: แสดง Shapes ตามเงื่อนไข

Posted: Tue Mar 12, 2024 11:14 am
by babyminds
snasui wrote: Tue Mar 12, 2024 10:04 am :D ตัวอย่าง Code ครับ

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'


    If Range("B1").Value = 0 Then
        ActiveSheet.Shapes.Range(Array("Straight Connector 11")).Visible = False
    Else
        ActiveSheet.Shapes.Range(Array("Straight Connector 11")).Visible = True
    End If
    
    If Range("B2").Value = 0 Then
        ActiveSheet.Shapes.Range(Array("Straight Connector 19")).Visible = False
    Else
        ActiveSheet.Shapes.Range(Array("Straight Connector 19")).Visible = True
    End If
    'Other code
ถ้าคอลัมน์ B เป็น 0 ให้ซ่อน Object ถ้าเป็น 1 ให้แสดง Object ครับ
ต้องคอยกด Run Marco ไหมครับ

Re: แสดง Shapes ตามเงื่อนไข

Posted: Tue Mar 12, 2024 12:45 pm
by snasui
:D การเขียนลักษณะนี้ต้องคอยกด Run เองครับ

หากใช้ Change Event จะทำงานอัตโนมัติดูตัวอย่างได้ที่ :arrow: https://learn.microsoft.com/en-us/offic ... eet.change