Page 1 of 1

สอบถามการบันทึกชื่อสินค้าเรียงลำดับลงมาเรื่อยๆ ด้วย VBA

Posted: Tue Mar 26, 2019 10:46 pm
by kio2002
เรียน สมาชิกทุกท่าน
ผมต้องการกดปุ่มบันทึกชื่อสินค้า ให้ไปวางที่ชีท "ใบเสนอราคา" โดยเริ่มวางค่าที่เซลล์ D13 เป็นเซลล์แรก
และกดปุ่มบันทึกอีกครั้ง ให้เริ่มวางค่าที่เซลล์ D14 ลงมาเรื่อยๆ จนเจอเส้นประที่แถว29 ให้แสดง msgbox แจ้งเตือน

ปัญหาที่ติดขัด กดปุ่มบันทึกชื่อสินค้า แล้วไม่เรียงลงมาเรื่อยๆ

Code: Select all

Sub Button2_Click()
    Dim r As Long
        If Sheets("ใบเสนอราคา").Range("d29").Value <> "" Then
            MsgBox "ช่องบันทึกรายการสินค้าเต็ม"
            Exit Sub
        End If
    With Sheets("ใบเสนอราคา")
        For r = 1 To 1
        .Range("d13").End(xlUp).Offset(1, 0).Value = Sheets("form").Range("O10")
        .Range("b13").End(xlUp).Offset(1, 0).Value = Sheets("form").Range("a7")
        .Range("g13").End(xlUp).Offset(1, 0).Value = Sheets("form").Range("f7")
        .Range("h13").End(xlUp).Offset(1, 0).Value = Sheets("form").Range("p10")
        .Range("i13").End(xlUp).Offset(1, 0).Value = Sheets("form").Range("h7")
        Next r
        
        For i = 1 To .Range("B13", .Range("B" & .Rows.Count) _
            .End(xlUp).Offset(0, 0)).Rows.Count
                .Range("a13").Cells(i).Value = i
        Next i
        End With
End Sub

Re: สอบถามการบันทึกชื่อสินค้าเรียงลำดับลงมาเรื่อยๆ ด้วย VBA

Posted: Tue Mar 26, 2019 11:14 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Dim r As Long, lstRow As Long
If Sheets("ใบเสนอราคา").Range("d28").Value <> "" Then
    MsgBox "ช่องบันทึกรายการสินค้าเต็ม"
    Exit Sub
End If
With Sheets("ใบเสนอราคา")
    lstRow = .Range("d" & .Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("d" & lstRow).Value = Sheets("form").Range("O10")
    .Range("b" & lstRow).Value = Sheets("form").Range("a7")
    .Range("g" & lstRow).Value = Sheets("form").Range("f7")
    .Range("h" & lstRow).Value = Sheets("form").Range("p10")
    .Range("i" & lstRow).Value = Sheets("form").Range("h7")

    For i = 1 To .Range("B13", .Range("B" & .Rows.Count) _
        .End(xlUp).Offset(0, 0)).Rows.Count
            .Range("a13").Cells(i).Value = i
    Next i
End With

Re: สอบถามการบันทึกชื่อสินค้าเรียงลำดับลงมาเรื่อยๆ ด้วย VBA

Posted: Wed Mar 27, 2019 7:53 pm
by kio2002
เรียน อาจารย์ snasui
ผมได้นำ code ไปใช้กับแบบฟอร์มจริงของผมแล้วครับ
กดปุ่มบันทึกสินค้าแล้ว มันไปบันทึกเริ่มต้นที่แถว36 ตามที่ผมต้องการให้เริ่มที่แถว13 ครับ
รบกวนอาจารย์อีกครั้งครับ ผมได้แนบแบบฟอร์มใช้จริงมาให้แล้วครับ

Re: สอบถามการบันทึกชื่อสินค้าเรียงลำดับลงมาเรื่อยๆ ด้วย VBA

Posted: Wed Mar 27, 2019 8:13 pm
by puriwutpokin
kio2002 wrote: Wed Mar 27, 2019 7:53 pm เรียน อาจารย์ snasui
ผมได้นำ code ไปใช้กับแบบฟอร์มจริงของผมแล้วครับ
กดปุ่มบันทึกสินค้าแล้ว มันไปบันทึกเริ่มต้นที่แถว36 ตามที่ผมต้องการให้เริ่มที่แถว13 ครับ
รบกวนอาจารย์อีกครั้งครับ ผมได้แนบแบบฟอร์มใช้จริงมาให้แล้วครับ
เปลี่ยนจาก d เป็น b ดูครับ :D

Code: Select all

    lstRow = .Range("b" & .Rows.Count).End(xlUp).Offset(1, 0).Row

Re: สอบถามการบันทึกชื่อสินค้าเรียงลำดับลงมาเรื่อยๆ ด้วย VBA

Posted: Thu Mar 28, 2019 8:44 pm
by kio2002
puriwutpokin wrote: Wed Mar 27, 2019 8:13 pm
kio2002 wrote: Wed Mar 27, 2019 7:53 pm เรียน อาจารย์ snasui
ผมได้นำ code ไปใช้กับแบบฟอร์มจริงของผมแล้วครับ
กดปุ่มบันทึกสินค้าแล้ว มันไปบันทึกเริ่มต้นที่แถว36 ตามที่ผมต้องการให้เริ่มที่แถว13 ครับ
รบกวนอาจารย์อีกครั้งครับ ผมได้แนบแบบฟอร์มใช้จริงมาให้แล้วครับ
เปลี่ยนจาก d เป็น b ดูครับ :D

Code: Select all

    lstRow = .Range("b" & .Rows.Count).End(xlUp).Offset(1, 0).Row
ขอนำไปทดลองใช้ก่อนครับ หากติดขัดตรงไหนจะมาสอบถามใหม่
ขอบคุณครับ