:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#1

Post by kio2002 »

เรียนสมาชิกทุกท่านครับ

ขอเล่าความต้องการก่อนนะครับ
พอดีผมต้องการให้เซลล์B1เติมสีอัตโนมัติ เมื่อใช้เมาส์คลิกที่เซลล์A1
โดยกำหนดให้เซลล์A1มีค่าว่าง เซลล์B1ถึงจะเติมสีพื้นหลัง
และถ้าหากไม่ได้คลิกที่เซลล์A1(คลิกเลือกที่เซลล์อื่น) เซลล์B1ไม่ต้องเติมสี

ปัญหาที่ติดตอนนี้คือ
เวลาใช้เมาส์คลิกที่เซลล์A1แล้วB1จะถูกเลือกอัตโนมัติเลย
แต่ผมต้องการคือ ให้เติมสีพื้นหลังที่เซลล์B1เท่านั้น โดยที่เซลล์A1ยังถูกเลือกอยู่เหมือนเดิม
และถ้าหากเราคลิกเลือกที่เซลล์อื่น อยากให้เซลล์B1ไม่ต้องเติมสีพื้นหลัง

รบกวนทุกท่านช่วยปรับcodeให้หน่อยครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = Range("A1").Address Then
        If Range("A1").Value = "" Then
        Range("B1").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 255
            .TintAndShade = 0
            .PatternTintAndShade = 0
            End With
        End If
    End If
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30751
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#2

Post by snasui »

:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = Range("A1").Address And Range("A1").Value = "" Then
            Range("B1").Interior.Color = 255
    End If
End Sub
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#3

Post by kio2002 »

snasui wrote::D ตัวอย่าง Code ครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = Range("A1").Address And Range("A1").Value = "" Then
            Range("B1").Interior.Color = 255
    End If
End Sub
เซลล์B1เติมสีให้อัตโนมัติตามต้องการแล้วครับ
แต่ยังติดตรงที่ ถ้าเราคลิกเลือกเซลล์อื่นๆที่ไม่ใช่เซลล์A1
อยากให้เซลล์B1ไม่ต้องเติมสีพื้นหลัง หรือกลับมาเป็นสีขาวเหมือนเดิม
User avatar
puriwutpokin
Guru
Guru
Posts: 3708
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#4

Post by puriwutpokin »

ปรับเป็น

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = Range("A1").Address And Range("A1").Value = "" Then
            Range("B1").Interior.Color = 255
            Else
            Range("B1").Interior.Color = xlNone
    End If
End Sub
 

:shock: :roll: :D
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#5

Post by kio2002 »

นำcodeของคุณpuriwutpokinไปใช้แล้วตรงตามที่ต้องการแล้วครับ

แต่จะปรับcodeตรงนี้เพิ่มเติมครับ
โดยที่ไม่ต้องสนใจว่าเซลล์A1จะมีค่าอะไรก็ตาม แค่คลิกที่เซลล์A1 แล้วก็เติมสีอัตโนมัติที่เซลล์B1เลย
If Target.Address = Range("A1").Address And Range("A1").select
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3708
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#6

Post by puriwutpokin »

ปรับเป็น

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = Range("A1").Address Then
            Range("B1").Interior.Color = 255
            Else
            Range("B1").Interior.Color = xlNone
    End If
End Sub
 
:shock: :roll: :D
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#7

Post by kio2002 »

codeใช้ได้ตรงตามที่ต้องการเลยครับ
ถ้าหากจะทำเช่นนี้หลายๆเซลล์ สมมุติทำตั้งแต่ระหว่างเซลล์ A1:A50
จะต้องเขียนcodeชุดนี้ทุกเซลล์ไปเรื่อยๆจนถึง50ชุดไหมครับ

Code: Select all

If Target.Address = Range("A1").Address Then
            Range("B1").Interior.Color = 255
            Else
            Range("B1").Interior.Color = xlNone
    End If
    If Target.Address = Range("A2").Address Then
            Range("B2").Interior.Color = 255
            Else
            Range("B2").Interior.Color = xlNone
    End If
User avatar
snasui
Site Admin
Site Admin
Posts: 30751
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#8

Post by snasui »

:D ตัวอย่าง Code

Code: Select all

Range("b:b").Interior.Color = xlNone
If Not Intersect(Target, Range("a1:a50")) Is Nothing Then
    Target.Offset(0, 1).Interior.Color = 255
End If
kio2002
Member
Member
Posts: 177
Joined: Thu Sep 20, 2012 8:40 am

Re: คลิกที่เซลล์A1แล้วเซลล์B1เติมสีพื้นหลังอัตโนมัติ

#9

Post by kio2002 »

สุดยอดไปเลย code ตรงตามที่การแล้วครับ
ขอบคุณคนควน และสมาชิกทุกๆคนนะครับ
เว็บนี้มีประโยชน์อย่างมากเลย
Post Reply