Page 1 of 1
ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Fri Jun 20, 2014 3:38 pm
by nilatxay
ช่วยปับ Code VBA ไม้ให้ตาลาง Full Name และ Duration ช้ำกัน
ตาลางของ passportNo ผมตั้งCode ไม้ให้ลงช้ำกันได้แล้ว ยังตาลาง Full Name และ Duration ไม้รู้จะวางCode ไม้ให้มันที่ป้อนลงช้ำกัน
ช้วยแก้ไขให้ด้วย
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Fri Jun 20, 2014 4:02 pm
by snasui
Code ใด
ที่ปรับมาเองแล้วและยังไม่ตรงกับที่ต้องการครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Fri Jun 20, 2014 4:16 pm
by nilatxay
Code: Select all
ws.Cells(irow, 10).Value = Me.TextBox9.Value
ws.Cells(irow, 11).Value = Me.TextBox10.Value
แล้วผมเพี่ม textbox12 ต้องการให้ข้อมูลป้อนลงในirow 10
textbox13 ต้องการให้ข้อมูลป้อนลงในirow 11
ต้องการให้เป็นเหมือนกันกับ irow 9 ที่สร้าง objAll(i) แต่ผมเพี่ม textbox เพี่มขื้นอีก
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Fri Jun 20, 2014 4:26 pm
by snasui
การแก้ปัญหามีหลายวิธีและไม่ง่ายครับ
วิธีแรก ให้บันทึกลงไปในเซลล์ปลายทางทุกรายการแล้วค่อยไปลบรายการที่ซ้ำออกทีหลัง
วิธีที่สอง ให้ตรวจสอบรายการที่ซ้ำใน UserForm เลยแล้วแจ้งว่าซ้ำ หรือ ลบรายการที่ซ้ำทิ้งไป หรือ ให้บันทึกเฉพาะรายการที่ไม่ซ้ำเท่านั้น
ไม่ว่าวิธีใดให้เขียนมาเองก่อน ติดแล้วค่อยถามกันต่อครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Fri Jun 20, 2014 5:06 pm
by nilatxay
ขอโทดครับบางทีผมอธิบายผิด
ผมต้องการให้เป็นแบบนี้ครับ
ตาลา Date, Document No:, Customer Number:, Bill To, Address, Mobile, Email Date ป้อนลงครั้งเดียวแล้วให้ข้อมูลลงไปตาม ตาลาง Passport No., Full Name, Duration.
ตัวอย่าง
Date: 20-jun-14
Document No: iJOBs-WP-001
Customer: COMA-012
Bill to: Construction Machinery Coration
Address: 125 Minh Khai-Ha Noi
Mobile: 020 91564323
Email Date: 15/06/2014
Passport No. Full Name Duration
B8530623 MR. BUI VAN THUOC 12M
B9063287 MR. CAO DUE THE 24M
แต่เวลาป้อนลงตัวจิง Full Name:MR. BUI VAN THUOC Duration:12M ลงช้ำมาสองครั้ง
ความเป็นจริง ตาลาง Passport No, Full Name, Duration จะมีมากกว่าสองคนขื้นไปครับ
ช่วยปรับcode ให้ด้วย
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Fri Jun 20, 2014 10:46 pm
by snasui
ผมทดสอบแล้วจากที่แจ้งมาว่า
nilatxay wrote:แต่เวลาป้อนลงตัวจิง Full Name:MR. BUI VAN THUOC Duration:12M ลงช้ำมาสองครั้ง
ไม่พบว่ามีการบันทึก ไม่ใช่มีการบันทึก 2 ครั้งตามที่แจ้งมาครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sat Jun 21, 2014 9:20 am
by nilatxay
ภ้าผมต้องการให้ข้อมูลเวลาป้อนลงต่อกันลงมา
เวลาป้อนข้อมมูลลง Form ในตาราง Passport No., ตารางFull Name, ตารางDuration
ภ้าผมป้อนสามPassport สามFull Name และก่อ สามDuration แล้วให้ข้อมูลลงไปใน ตารางexcel
ส่วนตาราง Date, Document No:, Customer Number:, Bill To, Address, Mobile, Email Date ก่อลงไปสามครั้งพ้อมกัน ในเวลามีข้อมูล passport no full Name, duration
ช่วยด้วยครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sat Jun 21, 2014 9:54 am
by snasui
ตัวอย่างการปรับ Code ตามด้านล่างครับ
Code: Select all
Private Sub Save_Click()
Dim irow As Long
Dim ws As Worksheet
Dim objP As Variant
Dim objF As Variant
Dim objD As Variant
Dim i As Integer
Set ws = Worksheets("tracking")
objP = Array(Me.TextBox8, Me.TextBox11, Me.TextBox14, _
Me.TextBox17, Me.TextBox23, Me.TextBox26)
objF = Array(Me.TextBox9, Me.TextBox12, Me.TextBox15, _
Me.TextBox18, Me.TextBox24, Me.TextBox27)
objD = Array(Me.TextBox10, Me.TextBox13, Me.TextBox16, _
Me.TextBox19, Me.TextBox25, Me.TextBox28)
If Me.TextBox1.Value <> "" Then
Me.TextBox1 = Application.Trim(Me.TextBox1.Text)
Me.TextBox7 = Application.Trim(Me.TextBox7.Text)
'Find first empty row in database
irow = ws.Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0).Row
'Copy the Data To The Databse
For i = o To UBound(objP)
If objP(i).Text <> "" Then
ws.Cells(irow, 2).Value = Me.TextBox1.Value
ws.Cells(irow, 3).Value = Me.TextBox2.Value
ws.Cells(irow, 4).Value = Me.TextBox3.Value
ws.Cells(irow, 5).Value = Me.TextBox4.Value
ws.Cells(irow, 6).Value = Me.TextBox5.Value
ws.Cells(irow, 7).Value = Me.TextBox6.Value
ws.Cells(irow, 8).Value = Me.TextBox7.Value
ws.Cells(irow, 9).Value = objP(i).Value
ws.Cells(irow, 10).Value = objF(i).Value
ws.Cells(irow, 11).Value = objD(i).Value
irow = irow + 1
End If
Next i
Else
MsgBox "Please check Data", vbCritical
End If
End Sub
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sat Jun 21, 2014 8:40 pm
by nilatxay
ขอบคุณครับ
ภ้า Document No(TextBox2): ผมต้องการให้มันรันตัวเลขขื้นอัตโนมัติต่อจาก iJOBs-WP- เป็น001 002 003 ให้เป็นตัวเลข ขื้นเอง ในเวลาที่สร้างฟอร์มใหม่ครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sat Jun 21, 2014 8:46 pm
by snasui
เขียนมาเองก่อนครับ ติดแล้วค่อยถามกันต่อ ไม่ควรถามต่อโดยไม่ได้ทดลองเขียนมาเองก่อนครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sat Jun 21, 2014 9:17 pm
by nilatxay
Code: Select all
Private Sub UserForm_Initialize()
TextBox2.Value = ("iJOBs-WP-001")
End Sub
เพี่มเตีมให้ด้วยครับ
ผมต้องการให้มันรันตัวเลขขื้นอัตโนมัติ ต่อจาก 001 002 003 ไปเลื่อยฯ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sat Jun 21, 2014 9:40 pm
by snasui
ให้เขียน Code ตามหลักการนี้ครับ
- ดึงค่าสุดท้ายในคอลัมน์ C มาให้ได้ก่อน
- นำค่าในข้อ 1 มาดัดเอาค่าด้านหลังมา 3 อักขระแล้วบวกด้วย 1
- ตัดค่าด้านหน้าทั้งหมดยกเว้น 3 อักขระสุดท้ายมาเชื่อมกับข้อ 2
- นำไปกำหนดค่าให้กับ TextBox2
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sat Jun 21, 2014 10:57 pm
by nilatxay
ดึงค่าสุดท้ายในคอลัมน์ C มาได้แล้วครับ
ยังเพียงแต่ กำนดเอาค่าขื้นตั้น iJOBs-WP-
Code: Select all
Private Sub UserForm_Initialize()
TextBox2.Value = Format(Application.Max(Sheets("Tracking").Range("c:c")) + 1, "000")
End Sub
ช่วยปรับให้ด้วยครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sun Jun 22, 2014 7:37 am
by snasui
nilatxay wrote:ดึงค่าสุดท้ายในคอลัมน์ C มาได้แล้วครับ
ยังเพียงแต่ กำนดเอาค่าขื้นตั้น iJOBs-WP-
Code: Select all
Private Sub UserForm_Initialize()
TextBox2.Value = Format(Application.Max(Sheets("Tracking").Range("c:c")) + 1, "000")
End Sub
ช่วยปรับให้ด้วยครับ
ค่าในคอลัมน์ C เป็น Text คุณจะหาค่า Max เช่นเดียวกับหาค่า Max ของตัวเลขไม่ได้ครับ
ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Private Sub UserForm_Initialize()
Dim t As String
TextBox1.Value = Date
TextBox7.Value = Date
t = Sheets("Tracking").Range("c" & Rows.Count).End(xlUp).Value
TextBox2.Value = "iJOBs-WP-"
TextBox2.Value = TextBox2.Value & Format(Replace(t, TextBox2.Value, "") + 1, "000")
a = "code!B6:b20"
End Su
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sun Jun 22, 2014 8:36 pm
by nilatxay
ได้แล้วครับ
แต่ว่า ทำไปทำมา เวลาจะใช้งาน มันฟ้อง
run-time error 13:
Type mismatch
Code: Select all
Private Sub Save_Click()
Dim irow As String
Dim ws As Worksheet
Dim objP As Variant
Dim objF As Variant
Dim objD As Variant
Dim i As Integer
Set ws = Worksheets("tracking")
objP = Array(Me.TextBox8, Me.TextBox11, Me.TextBox14, _
Me.TextBox17, Me.TextBox20, Me.TextBox23, Me.TextBox26, _
Me.TextBox29, Me.TextBox32, Me.TextBox35, Me.TextBox38, _
Me.TextBox41, Me.TextBox44, Me.TextBox47, Me.TextBox50, _
Me.TextBox53, Me.TextBox56, Me.TextBox59)
objF = Array(Me.TextBox9, Me.TextBox12, Me.TextBox15, _
Me.TextBox18, Me.TextBox21, Me.TextBox24, Me.TextBox27, _
Me.TextBox30, Me.TextBox33, Me.TextBox36, Me.TextBox39, _
Me.TextBox42, Me.TextBox45, Me.TextBox48, Me.TextBox51, _
Me.TextBox54, Me.TextBox57, Me.TextBox60)
objD = Array(Me.TextBox10, Me.TextBox13, Me.TextBox16, _
Me.TextBox19, Me.TextBox22, Me.TextBox25, Me.TextBox28, _
Me.TextBox31, Me.TextBox34, Me.TextBox37, Me.TextBox40, _
Me.TextBox43, Me.TextBox46, Me.TextBox49, Me.TextBox52, _
Me.TextBox55, Me.TextBox58, Me.TextBox61)
If Me.TextBox1.Value <> "" Then
Me.TextBox1 = Application.Trim(Me.TextBox1.Text)
Me.TextBox7 = Application.Trim(Me.TextBox7.Text)
'Find first empty row in database
irow = ws.Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0).Row
'Copy the Data To The Databse
For i = o To UBound(objP)
If objP(i).Text <> "" Then
ws.Cells(irow, 2).Value = Me.TextBox1.Value
ws.Cells(irow, 3).Value = Me.TextBox2.Value
ws.Cells(irow, 4).Value = Me.TextBox3.Value
ws.Cells(irow, 5).Value = Me.TextBox4.Value
ws.Cells(irow, 6).Value = Me.TextBox5.Value
ws.Cells(irow, 7).Value = Me.TextBox6.Value
ws.Cells(irow, 8).Value = Me.TextBox7.Value
ws.Cells(irow, 9).Value = Me.TextBox62.Value
ws.Cells(irow, 10).Value = objP(i).Value
ws.Cells(irow, 11).Value = objF(i).Value
ws.Cells(irow, 12).Value = objD(i).Value
irow = irow + 1
End If
Next i
Else
MsgBox "Please check Data", vbCritical
End If
End Sub
Private Sub Com1_Click()
Unload UserForm1
End Sub
Private Sub UserForm_Initialize()
TextBox1.Value = Date
TextBox7.Value = Date
Dim t As String
TextBox1.Value = Date
TextBox7.Value = Date
t = Sheets("Tracking").Range("c" & Rows.Count).End(xlUp).Value
TextBox2.Value = "iJOBs-WP-"
TextBox2.Value = TextBox2.Value & Format(Replace(t, TextBox2.Value, "") + 1, "000")
End Sub
ช่วยดูให้หนอยครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Sun Jun 22, 2014 8:50 pm
by snasui
Error ก็ถือเป็นปกติครับ
Code ตัวอย่างที่ผมให้ไปนั้น ในคอลัมน์ C จะต้องมีการบันทึกรายการมาก่อนแล้วอย่างน้อย 1 รายการ หากไม่เคยบันทึกรายการใดเลยคุณต้องปรับ Code สำหรับแสดง
Document No: ลองปรับมาเองดูก่อน ติดตรงไหนค่อยถามกันต่อครับ
Re: ช่วยปับฟอร์มไม้ให้ข้อมูลลงช้ำกัน
Posted: Tue Jul 01, 2014 9:22 pm
by nilatxay
ได้แล้วครับ ขอบใจหลายฯฯฯครับ