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

รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

ฟอรั่มถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถาม-ตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบ ต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. อธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. ควรแนบตัวอย่างไฟล์มาที่ฟอรั่มนี้เพื่อเพิ่มความสะดวกในการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่น นอกจากนี้ไม่ควรแนบไฟลที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน ควรโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. แจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#1

Postby lnongkungl » Tue Nov 14, 2017 11:24 am

จากไฟล์แนบ ไฟล์ สหกรณ์ sheet POS เป็นหน้าขายสินค้าที่ต้องการนำข้อมูลใน range : formcurrentID กับ formCurrentQty ไปเก็บในไฟล์ Stockยอดขาย โดยการกดปุ่ม บันทึกที่ทำไว้ครับ แล้วต้องการให้เวลากดบันทึกแล้ว ให้ Formtime เป็นตัวอ้างอิงกับ sheet แต่ละเดือนในไฟล์ Stockยอดขาย ให้ save ตรงกับเดือนที่ขายครับ

รบกวนขอความรู้ด้วยครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 22323
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#2

Postby snasui » Wed Nov 15, 2017 6:08 am

:D Code ที่เขียนมาเองแล้วนั้นชื่อ Procedure ว่าอะไร ติดขัดบรรทัดใดครับ

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#3

Postby lnongkungl » Wed Nov 15, 2017 9:06 am

โค๊ดที่ต้องการนี้ คือ โค๊ดของปุ่ม บันทึกครับ คือยังไม่ได้เขียนเลย เริ่มไม่ถูกครับ สิ่งที่ต้องการคือ เมื่อกดปุ่มบันทึกแล้วให้ข้อมูลใน sheet:POS ตามที่กล่าวข้างต้น ไป save ใน ไฟล์ที่แนบมา Stockยอดขาย.xlsx แล้วให้กำหนดให้วันที่ใน sheet : POS เป็นตัวกำหนดให้ save ลงในแต่ละเดือน ครับ


คือเงื่อนไขเยอะ ผมเริ่มไม่ถูกเลย

User avatar
snasui
Site Admin
Site Admin
Posts: 22323
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#4

Postby snasui » Thu Nov 16, 2017 5:18 am

:D จำเป็นต้องศึกษาและเขียน Code มาเองก่อนไม่ว่าจากตำราหรือ Internet หรือแหล่งอื่นใด ติดปัญหาแล้วค่อยสอบถามกันต่อตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ :roll:

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#5

Postby lnongkungl » Thu Nov 16, 2017 9:07 am

ผมบันทึกด้วย marcro record แล้ว มันไม่ได้อ้างถึงไฟล์ปลายทางเลย ก็เลยหาข้อมูลต่างๆ ทำยังไง code แบบไหน ก็เปิด ไฟล์อีกไฟล์ ไม่ได้ซักที รบกวนอาจารย์ ทีครับ

Code: Select all

Public Sub Save()
    Dim source As Range
    Dim target As Range
    With Workbooks("สหกรณ์.xlsm").Sheets("POS")
        Set source = .Range("formcurrentID", .Range("B" & .Rows.Count).End(xlUp))
    End With
    With Workbooks("Stockยอดขาย.xlsx").Sheets("ม.ค.61")      <<<<< error บรรทัดนี้ครับ
        Set target = .Range("C2")
    End With
    source.Copy
    target.PasteSpecial xlPasteValues
    Application.CutCopyMode = fasle
End Sub

User avatar
snasui
Site Admin
Site Admin
Posts: 22323
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#6

Postby snasui » Thu Nov 16, 2017 9:09 am

:D แนบไฟล์ล่าสุดที่มี Code นี้เรียบน้อยแล้วมาใหม่ด้วยจะได้สะดวกในการทดสอบครับ

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#7

Postby lnongkungl » Thu Nov 16, 2017 10:00 am

code ที่ติดปัญหา คือ ใน module1 ครับ ปุ่มบันทึก
แต่ผมลองบันทึก macro อยู่ใน module2 แล้วจะเอามาปรับแต่ง ซึ่งก็งงว่า code ไม่ได้พูดถึงอีกไฟล์เลย ลองปรับหลายวิธีแล้วก็ error หมดเลย

รบกวน อาจารย์ชี้แนะด้วยครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 22323
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#8

Postby snasui » Thu Nov 16, 2017 10:55 am

:D จากไฟล์ สหกรณ์.xlsm ชีต POS มีเซลล์ใดที่ระบุว่าให้บันทึกไปยังชีตใด หรือ สังเกตได้จากค่าใดว่าต้องบันทึกไปยังชีตใดของไฟล์ Stock.xlsx ครับ

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#9

Postby lnongkungl » Thu Nov 16, 2017 11:18 am

1.sheet POS cell B8-B54 = formcurrentID ต้องการ copy ไปใส่ sheet Stock ใน cell C2
2.sheet POS cell D8-D54 = formCurrentQty ต้องการ copy ไปใส่ sheet Stock ใน cell E2
3.sheet POS cell B3 = Formcostomer ต้องการ copy ไปใส่ sheet Stock ใน cell B2
3.sheet POS cell C3 = Formtime ต้องการ copy ไปใส่ sheet Stock ใน cell A2 และ เอาวันที่เป็นตัวกำหนด ว่าจะให้ copy ลงใน sheet ไหน(เดือนอะไร) ของไฟล์ Stock ครับ

นี่คือเงื่อนไขทั้งหมดที่ต้องการ แต่ที่เขียน code ปุ่มบันทึกไป ผมเขียนแค่ เงื่อนไขที่ 1 ครับ พอได้ เงื่อนไขแรก แล้วผมก็จะพยายามเขียน code เงื่อนไข อื่นๆ ตามครับ แต่ตอนนี้ ข้อแรกยังติดอยู่เลย

User avatar
snasui
Site Admin
Site Admin
Posts: 22323
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#10

Postby snasui » Thu Nov 16, 2017 12:20 pm

:D Code ที่เขียนมาไม่ได้กำหนดให้วางในชีต Stock ช่วยปรับ Code มาใหม่ให้ตรงกับที่ต้องการก่อนครับ

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#11

Postby lnongkungl » Thu Nov 16, 2017 12:58 pm

นี่ครับ code มันติดตรงเปิด ไฟล์ Stock หรือผมใส่ผิดตรงไหน ครับ รบกวนบอกแนวทางก็ได้ครับ เดี๋ยวผมหาศึกษาเอา

Code: Select all

Public Sub Save()
    Dim source As Range
    Dim target As Range
    With Workbooks("สหกรณ์.xlsm").Sheets("POS")
        Set source = .Range("formcurrentID", .Range("B" & .Rows.Count).End(xlUp))
    End With
    Workbooks.Open ("Stock" & ".xlsx")        ติดตรงนี้ หรือผม ใส่ code ผิดตรงไหนครับ
    With Workbooks("Stock.xlsx").Sheets("2")
        Set target = .Range("C2")
    End With
    source.Copy
    target.PasteSpecial xlPasteValues
    Application.CutCopyMode = fasle
End Sub

User avatar
snasui
Site Admin
Site Admin
Posts: 22323
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#12

Postby snasui » Thu Nov 16, 2017 2:04 pm

:D Statement With Workbooks("Stock.xlsx").Sheets("2") เปลี่ยนเป็น With Workbooks("Stock.xlsx").Sheets(2) ครับ

กรุณาแนบไฟล์ที่ปรับปรุงล่าสุดมาด้วย ผมจะได้ทดสอบได้เลยทันทีไม่ต้องคัดลอกสูตรไปวางเองครับ

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#13

Postby lnongkungl » Thu Nov 16, 2017 3:45 pm

เปลี่ยนแล้วครับ ก็ยังติดอยู่ที่บรรทัดเดิม

Code: Select all

Public Sub Save()
    Dim source As Range
    Dim target As Range
    With Workbooks("Êˡóì.xlsm").Sheets("POS")
        Set source = .Range("formcurrentID", .Range("B" & .Rows.Count).End(xlUp))
    End With
    Workbooks.Open ("Stock" & ".xlsx")
    With Workbooks("Stock.xlsx").Sheets(2)
        Set target = .Range("C2")
    End With
    source.Copy
    target.PasteSpecial xlPasteValues
    Application.CutCopyMode = fasle
End Sub

Slide1.JPG
You do not have the required permissions to view the files attached to this post.

User avatar
puriwutpokin
Silver
Silver
Posts: 986
Joined: Fri Jan 04, 2013 9:49 pm

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#14

Postby puriwutpokin » Thu Nov 16, 2017 3:56 pm

เบื้องต้น ต้องถามว่าทำไมถึง ใช้เป็น

Code: Select all

Workbooks.Open ("Stock" & ".xlsx")

ควรจะต้องเป็น

Code: Select all

Workbooks.Open Path\Stock.xlsx

ซึ่ง Path คือต้นทางที่จะเปิดไฟล์นั้นๆ ครับเช่น Path =

Code: Select all

Workbooks.Open "C:\Users\Downloads\Stock.xlsx"

ถึงจะผ่านจุดนี้ครับ
:roll: สูตรที่ต้องกด Ctrl+Shift+Enter เพื่อให้สูตร Array นั้นทำงาน

User avatar
snasui
Site Admin
Site Admin
Posts: 22323
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#15

Postby snasui » Thu Nov 16, 2017 5:36 pm

:D หากมีการเปิดไฟล์ สหกรณ์.xlsx กับ Stock.xlsm เอาไว้พร้อมกันอยู่แล้วสามารถ Mark Workbooks.Open ("Stock" & ".xlsx") ให้เป็น Comment หรือลบทิ้งไปได้ครับ

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#16

Postby lnongkungl » Fri Nov 17, 2017 3:39 pm

ทำได้แล้วครับ ขอบคุณทุกท่านที่แนะนำครับ กำลังทำเงื่ือนไขต่อไป เดี๋ยวติดตรงไหน ขอมารบกวนสอบถามใหม่นะครับ

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#17

Postby lnongkungl » Mon Nov 20, 2017 2:48 pm

กลับมาอีกครั้งครับ จากที่พยายามเขียนโค๊ดจนสำเร็จหมดทุกเงื่อนไข แล้วครับมาติดเอาเงื่อนไขสุดท้ายครับ ตันจริงๆ

ผมทำเป็นไฟล์ใหม่นะครับจะได้ไฟล์เล็กๆ แต่เงื่อนไขที่ต้องการคืออย่างเดียวกัน
จากไฟล์แนบนะครับ ผมต้องการให้ข้อมูลที่ส่งจากไฟล์ รับเข้า.xlsm ไปใส่ในไฟล์ สรุปยอดรับ.xlsx โดยเอาเดือนจาก cell formtime จากไฟล์ รับเข้า.xlsm เป็นตัวกำหนดให้ข้อมูลที่ส่งไป บันทึกตาม sheet ของเดือนนั้นๆ ครับ

ผมควรจะปรับ code ยังไงครับ

Code: Select all

Public Sub save()
 With Workbooks("ÃѺà¢éÒ.xlsm").Sheets(1)
        Set co = .Range("a3:a41", .Range("d" & .Rows.Count).End(xlUp))
 End With
 co.Copy
 Workbooks.Open "C:\Users\it-support.cmk\Desktop\testmarcro\ÊÃØ»ÂÍ´ÃѺ.xlsx"
 With Workbooks("ÊÃØ»ÂÍ´ÃѺ.xlsx").Sheets(1).Select
    If Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = "" Then
        Range("B" & Rows.Count).End(xlUp).Offset(1, -1) = Now()
    End If
   
 Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
 Application.CutCopyMode = fasle
 End With
Workbooks("ÊÃØ»ÂÍ´ÃѺ.xlsx").save
Workbooks("ÊÃØ»ÂÍ´ÃѺ.xlsx").Close
With Workbooks("ÃѺà¢éÒ.xlsm").Sheets(1).Select
End With
End Sub
You do not have the required permissions to view the files attached to this post.

User avatar
puriwutpokin
Silver
Silver
Posts: 986
Joined: Fri Jan 04, 2013 9:49 pm

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#18

Postby puriwutpokin » Mon Nov 20, 2017 3:48 pm

ลองปรับโค้ดจะยาวขึ้นครับ

Code: Select all

Public Sub Save()
    Dim source As Range
    Dim Lr  As Integer
    Dim mySheet As String
    Application.ScreenUpdating = False
    With Workbooks("รับเข้า.xlsm").Sheets("รับเข้า")
    LL = Application.CountIf(.Range("a3:a41"), "<>")
        Set source = .Range("a3", .Range("a" & .Rows.Count).End(xlUp)).Resize(LL, 4)
    Workbooks.Open "C:\Users\it-support.cmk\Desktop\testmarcro\สรุปยอดรับ.xlsx"
        source.Copy
        With Workbooks("รับเข้า.xlsm").Sheets("รับเข้า")
        mySheet = Format(.Range("a1").Value, "mmm")
        End With
        Windows("สรุปยอดรับ.xlsx").Activate
        Worksheets(mySheet).Activate
      Lr = Range("b" & Rows.Count).End(xlUp).Row + 1
      Range("b" & Lr).PasteSpecial xlPasteValues
      With Workbooks("รับเข้า.xlsm").Sheets("รับเข้า")
      Range("b" & Lr).Offset(0, -1).Resize(LL, 1).Value = .Range("a1").Value
      End With
      End With
    Application.CutCopyMode = False
    Workbooks("รับเข้า.xlsm").Activate
        Application.ScreenUpdating = True
End Sub
:roll: สูตรที่ต้องกด Ctrl+Shift+Enter เพื่อให้สูตร Array นั้นทำงาน

lnongkungl
Member
Member
Posts: 20
Joined: Tue Nov 14, 2017 11:04 am

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#19

Postby lnongkungl » Tue Nov 21, 2017 9:54 am

ขอบคุณครับ puriwutpokin ได้แล้วครับ
แต่มีข้อสงสัยอีกอย่างครับ

คือผมเขียนโค๊ดไว้แบบนี้ครับ

Code: Select all

Private Sub Worksheet_open()
Range("formtime") = Now()
End Sub


แต่ทำไมเมื่อปิดแล้วเปิดใหม่ formtime ไม่อัพเดทเวลาเป็นปัจจุบันครับ ต้องไปกด run ถึงจะอัพเดท ทั้งๆที่ ผมเขียนไว้ใน sheet เลย
You do not have the required permissions to view the files attached to this post.

User avatar
puriwutpokin
Silver
Silver
Posts: 986
Joined: Fri Jan 04, 2013 9:49 pm

Re: รบกวนสอบถาม vba ปุ่ม save แล้วส่งข้อมูลข้ามไฟล์ครับ

#20

Postby puriwutpokin » Tue Nov 21, 2017 11:04 am

lnongkungl wrote:ขอบคุณครับ puriwutpokin ได้แล้วครับ
แต่มีข้อสงสัยอีกอย่างครับ

คือผมเขียนโค๊ดไว้แบบนี้ครับ

Code: Select all

Private Sub Worksheet_open()
Range("formtime") = Now()
End Sub


แต่ทำไมเมื่อปิดแล้วเปิดใหม่ formtime ไม่อัพเดทเวลาเป็นปัจจุบันครับ ต้องไปกด run ถึงจะอัพเดท ทั้งๆที่ ผมเขียนไว้ใน sheet เลย

ปรับเป็น

Code: Select all

Range("a1") = Now()
:roll: สูตรที่ต้องกด Ctrl+Shift+Enter เพื่อให้สูตร Array นั้นทำงาน


Return to “Excel”

Who is online

Users browsing this forum: 060090, Rattana, teays and 33 guests