: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

copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

#1

Post by March201711 »

ต้องการข้อมูลข้อมูลจาก sheet GGG_2023 ไปตามวันที่เลือกที่ cell F1 เช่น
เช่น เลือก cell F1 เป็นวันที่ 11/05/2023 ให้เลือกข้อมูลที่ตรงกับ colum G (hightlight สีเหลือง) ให้ copy ข้อมูลของวันที่ 11/05/2023 ทั้งหมดของแถวนั้น ทั้งบรรทัดมาวางไว้ที่ sheet GGG_0523
เช่น เลือก cell F1 เป็นวันที่ 28/04/2023 ให้เลือกข้อมูลที่ตรงกับ colum G (hightlight สีเขียว) ให้ copy ข้อมูลของวันที่ 28/04/2023 ทั้งหมดของแถวนั้น ทั้งบรรทัดมาวางไว้ที่ sheet GGG_0423
เช่น เลือก cell F1 เป็นวันที่ 09/03/2023 ให้เลือกข้อมูลที่ตรงกับ colum G (hightlight สีส้ม) ให้ copy ข้อมูลของวันที่ 09/03/2023 ทั้งหมดของแถวนั้น ทั้งบรรทัดมาวางไว้ที่ sheet GGG_0323

Code: Select all

Sub Update_month()
'
'
'''' May23  (sheet GGG_0523)
    
    Range("B112").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Range("D120").Select
    Sheets("GGG_0523").Select
    Range("B15").Select
    ActiveSheet.Paste
    Range("Q17").Select
    
'''' April23  (sheet GGG_0423)
       Range("B7:R7").Select
    Selection.Copy
    Sheets("GGG_0423").Select
    Range("B6").Select
    ActiveSheet.Paste
    Range("R2").Select
    Sheets("GGG_2023").Select
    Range("Q3").Select
    
'''' Mar23  (sheet GGG_0323)
    Range("B8:F10").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range("B8:R10").Select
    Selection.Copy
    Sheets("GGG_0323").Select
    Range("B6").Select
    ActiveSheet.Paste
    Range("G13").Select
    Sheets("GGG_2023").Select
    Range("S3").Select
    Application.CutCopyMode = False
    Range("H3").Select
    
    
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: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

#2

Post by snasui »

:D ตัวอย่าง Code ในชีต GGG_2023 (ไม่ใช่ใน Module) ครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rall As Range, r As Range
    Dim strSh As String
    If Target.Address = Me.Range("f1").Address Then
        With Worksheets("GGG_2023")
            Set rall = .Range("g7", .Range("g" & .Rows.Count).End(xlUp))
            For Each r In rall
                strSh = "GGG" & VBA.Format(r.Value, "_mmyy")
                If r.Value = Target.Value Then
                    With Worksheets(strSh)
                        .Range("b" & Rows.Count).End(xlUp).Offset(1, 0).Resize(1, 22).Value = _
                            r.Offset(0, -5).Resize(1, 22).Value
                    End With
                End If
            Next r
        End With
    End If
End Sub
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

#3

Post by March201711 »

ทำไมทำปุ่มให้กดรัน แล้ว ไม่สามารถ assign marco ได้คะImage
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

#4

Post by snasui »

:D Code ลักษณะนั้นไม่ได้ใช้งานผ่านการปุ่ม แค่เปลี่ยนค่าในเซลล์ F1 มันก็ทำงานแล้ว เป็นการใช้งานผ่าน Change Event ครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

#5

Post by March201711 »

ค่ะ มีความซับซ้อนมากจังค่ะ ถ้าในข้อมูลไม่มีวันที่ที่ F1 เลือกอยากให้ขึ้น pop up แจ้งว่าไม่มีได้ไหมหรือปล่าวคะ
User avatar
snasui
Site Admin
Site Admin
Posts: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

#6

Post by snasui »

:D ทำได้ครับ ลองปรับ Code มาเองก่อน ติดตรงไหนค่อยถามกันต่อ สำหรับการตรวจสอบว่ามีหรือไม่มีใช้ฟังก์ชัน Countif มาช่วยได้ครับ
March201711
Gold
Gold
Posts: 1047
Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365

Re: copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

#7

Post by March201711 »

พอกดวันที่ 13/5/23 แล้ว มันก้อขึ้น pop up Finish ค่ะ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rall As Range, r As Range
    Dim strSh As String
    If Target.Address = Me.Range("f1").Address Then
        With Worksheets("GGG_2023")
            Set rall = .Range("g7", .Range("g" & .Rows.Count).End(xlUp))
            For Each r In rall
                strSh = "GGG" & VBA.Format(r.Value, "_mmyy")
                If r.Value = Target.Value Then
                    With Worksheets(strSh)
                        .Range("b" & Rows.Count).End(xlUp).Offset(1, 0).Resize(1, 22).Value = _
                            r.Offset(0, -5).Resize(1, 22).Value
                    End With
                End If
            Next r
        End With
    End If
    
result = Application.WorksheetFunction.CountIf(Range("G7:G20"), "")
 
    MsgBox " Finished "
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: 31153
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: copy ข้อมูลแบบมีเงือนไขตาม cell ที่เลือก

#8

Post by snasui »

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

Code: Select all

'Other code
With Worksheets("GGG_2023")
    Set rall = .Range("g7", .Range("g" & .Rows.Count).End(xlUp))
    If Application.WorksheetFunction.CountIf(rall, Target.Value) = 0 Then
        MsgBox "Not found", vbInformation
        Exit Sub
    End If
    For Each r In rall
'Other code
Post Reply