: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

อยากให้ข้อมูลที่เรากรอกไปอยู่ในแถวที่เราต้องการ

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
thanatsin
Member
Member
Posts: 3
Joined: Sat Sep 22, 2012 5:03 pm

อยากให้ข้อมูลที่เรากรอกไปอยู่ในแถวที่เราต้องการ

#1

Post by thanatsin »

สวัสดีครับ

คือหน้า Return ของผมจะป้อนข้อมูลเข้าไป พอกดปุ่ม แล้วให้ข้อมูลวันที่คืนไปอยู่ในหน้า Renting ในช่องวันที่คืน
แต่ผมอยากสร้างเงื่อนไขว่า ถ้า รหัสหนังสือ กับ รหัสลูกค้า ตรงกันก็จะให้ข้อมูล วันที่คืน ไปอยู่ในแถวนั้นๆ
ผมไม่รู้ว่าต้องเขียนเงื่อนไขเป็น โค้ด รึเปล่า ปกติผมจะสร้างชื่อช่วงนั้นแล้วเขียนเงื่อนไขใน Name Manager แต่ครั้งนี้ผมคิดไม่ออกว่าจะต้องทำยังไง
รบกวนด้วยนะครับ

.
.
แล้วหน้าSummary ของผมใช้ Pivot เพื่อสรุป
แต่พอสร้างไว้แล้ว ข้อมูลเปลี่ยน แต่ใน Pivot ไม่เปลี่ยนตามครับ
Attachments
BookRental.xlsm
(54.96 KiB) Downloaded 27 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ข้อมูลที่เรากรอกไปอยู่ในแถวที่เราต้องการ

#2

Post by snasui »

:D หน้า Return หน้า Renting ที่กล่าวถึงคือชีท Return ชีท Renting ใช่ไหมครับ

ลองอธิบายสิ่งที่ต้องการมาว่าต้องการจะทำอะไร จากไหนไปไหน อ้างถึงชีท เซลล์ และควรจะบอกด้วยว่า Code อยู่ใน Module ใด Procedure ใด ที่ทำมาแล้วติดปัญหาตรงไหน ที่ถูกต้องนั้น ต้องการให้แสดงผลอย่างไร จะได้เข้าใจตรงกันและเข้าถึงข้อมูลได้โดยไวครับ
thanatsin
Member
Member
Posts: 3
Joined: Sat Sep 22, 2012 5:03 pm

Re: อยากให้ข้อมูลที่เรากรอกไปอยู่ในแถวที่เราต้องการ

#3

Post by thanatsin »

ใช่ครับ คือต้องการให้ วันที่คืนของชืทReturn ไปอยู่ในตาราง วันที่คืนของชีท Renting เพื่อให้ สถานะ ในชีทBook เป็น Free ครับ
โค้ดสั้นมากครับที่ Module5
Sub Returning()
a = Range("Dreturn5")
Range("Dreturn3") = a
End Sub
คือผมเขียนต่อไม่เป็นครับ อยากใหเ Range("Dreturn5") ไปอยู่ใน Range("Dreturn3") โดยมีเงื่อนไขว่าถ้า Ccode4(คือรหัสลูกค้าในหน้าReturn) และ Bcode4(รหัสหนังสือในหน้าReturn) ตรงกับแถวใดให้ไปแสดงที่แถวนั้น
ประมาณนี้ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ข้อมูลที่เรากรอกไปอยู่ในแถวที่เราต้องการ

#4

Post by snasui »

:D สามารถปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Returning()
'    a = Range("Dreturn5")
'    Range("Dreturn3") = a
    Dim rAll As Range
    Dim r As Range
    With Sheets("Renting")
        Set rAll = .Range("A2", .Range("A2").End(xlDown))
    End With
    For Each r In rAll
        With Sheets("Return")
            If r.Offset(0, 2) = .Range("B2") And _
                r = .Range("D2") Then
                r.Offset(0, 9) = .Range("B1")
            End If
        End With
    Next r
End Sub
thanatsin
Member
Member
Posts: 3
Joined: Sat Sep 22, 2012 5:03 pm

Re: อยากให้ข้อมูลที่เรากรอกไปอยู่ในแถวที่เราต้องการ

#5

Post by thanatsin »

โห สุดยอดครับ ได้แล้ว
ถ้าสมมุติว่าครั้งแรก ลูกค้าC1 เช่า หนังสือ B1 แล้วคืนแล้ววันที่ 26/9/2012
แล้วครั้งที่2ลูกค้า C1 มาเช่าหนังสือ B1 อีกครั้ง แล้วมาคืนในวันที่ 28/9/2012
วันที่คืนในครั้งแรกจะเปลี่ยนจากวันที่ 26/9/2012 เป็น 28/9/2012 ไปด้วยครับ
มีวิธีที่จะทำให้ วันที่นั้น ไม่เปลี่ยนตามไหมครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: อยากให้ข้อมูลที่เรากรอกไปอยู่ในแถวที่เราต้องการ

#6

Post by snasui »

:D ปรับตรง If ครับ จากเดิม

Code: Select all

If r.Offset(0, 2) = .Range("B2") And _
  r = .Range("D2")
เป็น

Code: Select all

If r.Offset(0, 2) = .Range("B2") And _
  r = .Range("D2") and  r.Offset(0, 9) = ""
คราวนี้ผมปรับมาให้ดูเป็นตัวอย่างก่อน ในคราวต่อไปควรทดลองปรับมาเองก่อน ติดปัญหาแล้วค่อยถามกันครับ ผมทราบว่าการปรับมาเองก่อนนั้นมันไม่ได้ง่าย แต่หากว่าจะใช้ VBA ก็ต้องค่อย ๆ ศึกษาเรียนรู้กันไปครับ
Last edited by snasui on Wed Sep 26, 2012 8:38 pm, edited 1 time in total.
Reason: แก้ไขเครื่องหมาย
Post Reply