: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

การ Delete ทีละบันทัดแบบมีเงื่อนไข

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

การ Delete ทีละบันทัดแบบมีเงื่อนไข

#1

Post by Leng »

ผมต้องการกำหนด ถ้าพิม "5555" ในช่อง Barcode ให้ลบทีละบันทัด ครับ

Code: Select all

If MsgBox(" Finish this carton ?", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
Sheets("in").Select
Range("A3:D1048576").Select
Do While ActiveCell <> ""
ActiveCell.Offset(0, 0).EntireRow.Delete
ActiveCell.Offset(1, 0).Select
Loop
End If
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#2

Post by snasui »

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

Code: Select all

'Other code...
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
    Set rngVlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
End With
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
End With
If Me.TextBox5.Text = "" Then Exit Sub
If Me.TextBox5.Text = "5555" Then
    Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
End If
'Other code...
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#3

Post by Leng »

สอบถามเพิ่มครับเวลา scan "10020" ผมต้องการให้ ขึ้น YES/NO ครับแต่ปัญหาคือ
-เวลา scan โค๊ด อื่นที่ไม่ใช่ 10020 ก็จะขึ้น Yes/No ด้วยครับ ผมไม่อยากให้ขึ้น Yes/No ครับผมต้องแก้ยังไงครับ
- เวลา scan โค๊ด 10020 ผมไม่อยากให้ขึ้น MsgBox "Not found." ครับผมต้องทำยังไงครับ

Code: Select all

Private Sub TextBox5_AfterUpdate()
If MsgBox(" Finish this carton ?", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
    Set rngVlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
End With
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
End With
If Me.TextBox5.Text = "" Then Exit Sub
If Me.TextBox5.Text = "10020" Then
    Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
    End If
   End If
Dim SoundFile As String, rc As Long
SoundFile = "C:\Users\Administrator\Downloads\A_Drum.wav"
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
Set rngVlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
If Me.TextBox5.Text = "" Then Exit Sub
If WorksheetFunction.CountIf(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:D"), Me.TextBox5.Value) = 0 Then
'Me.TextBox5.Value = ""
MsgBox "Not found."
Exit Sub
End If
    Me.TextBox6.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 2, 0)
    Me.TextBox7.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 3, 0)
    Me.TextBox8.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 4, 0)
End With
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
   End With
    With Worksheets("IN")
        .Cells(emptyrow, 1).Value = TextBox1.Value
        .Cells(emptyrow, 2).Value = TextBox2.Value
        .Cells(emptyrow, 3).Value = TextBox4.Value
        .Cells(emptyrow, 4).Value = ComboBox1.Value
        .Cells(emptyrow, 5).Value = TextBox5.Value
        .Cells(emptyrow, 6).Value = TextBox6.Value
        .Cells(emptyrow, 7).Value = TextBox7.Value
        .Cells(emptyrow, 8).Value = TextBox8.Value
        .Cells(emptyrow, 9).Value = TextBox9.Value
    End With
End Sub
You do not have the required permissions to view the files attached to this post.
User avatar
logic
Gold
Gold
Posts: 1511
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#4

Post by logic »

ต้องเขียน if ดักการแสดงบรรทัดนี้นะครับ ถ้าไม่ดักมันก็ขึ้นทุกรอบ
Leng wrote: Tue Jul 31, 2018 9:52 pm

Code: Select all

If MsgBox(" Finish this carton ?", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
ถ้าเป็นผมจะเขียนไว้ในโค้ดนี้

Code: Select all

If Me.TextBox5.Text = "10020" Then
    Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
     If MsgBox(" Finish this carton ?", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
     '....
     End If    
End If
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#5

Post by Leng »

ผมได้ลองนำCode มาใส่แต่ก็ยังไม่ได้ครับ

Code: Select all

'other
If Me.TextBox5.Text = "10020" Then
    Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
     If MsgBox(" Finish this carton ?", vbYesNo + vbQuestion + vbDefaultButton2, " Close and Save ") = 6 Then
     '....
     End If
End If
'other
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#6

Post by snasui »

:D ผมทดสอบแล้ว Code นั้นทำงานได้ครับ คือคีย์ 10020 มันจะมีการลบบรรทัดและขึ้นข้อความมาถาม
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#7

Post by Leng »

ได้ละครับขอบพระคุณมากครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#8

Post by Leng »

อาจารย์ครับตอนแรกใช้งานได้แล้วแต่พอเริ่มทำเรื่อยๆเพิ่มโค๊ดอื่นเรื่อย ทำไมเวลา scan 10021 ข้อมูลไม่ลบครับ
โค๊ดที่ error ครับ

Code: Select all

Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete

Code: Select all

Private Sub TextBox2_AfterUpdate()
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
    Set rngVlp = .Range("E2", .Range("F" & .Rows.Count))
If Me.TextBox2.Text = "" Then Exit Sub
If WorksheetFunction.CountIf(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("E:F"), Me.TextBox2.Value) = 0 Then
Call Sample2
'Me.TextBox2.Value = ""
MsgBox "Not found."
Exit Sub
End If
    Me.TextBox10 = Application.VLookup(CLng(Me.TextBox2.Text), rngVlp, 2, 0)
End With
End Sub

Private Sub TextBox5_AfterUpdate()
With Workbooks("DataX.xlsx").Worksheets("Sheet1")
Set rngVlp = .Range("a2", .Range("d" & .Rows.Count).End(xlUp))
End With

With ThisWorkbook.Worksheets("IN")
emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
End With

If Me.TextBox5.Text = "10021" Then
Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
  Me.TextBox11.Text = Application.WorksheetFunction.Sum(Range("H3:H1048576"))
End If

If Me.TextBox5.Text = "" Then Exit Sub
If WorksheetFunction.CountIfs(Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("A:A"), Me.TextBox5.Value, _
Workbooks("DataX.xlsx").Worksheets("Sheet1").Range("E:E"), Me.TextBox2.Value) = 0 Then
Call Sample2
'Me.TextBox5.Value = ""
MsgBox "Please Check Information"
    Exit Sub

End If
    Me.TextBox6.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 2, 0)
    Me.TextBox7.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 3, 0)
    Me.TextBox8.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 4, 0)
    Me.TextBox6.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 2, 0)
    Me.TextBox7.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 3, 0)
    Me.TextBox8.Text = Application.VLookup(CLng(Me.TextBox5.Text), rngVlp, 4, 0)
With ThisWorkbook.Worksheets("IN")
    emptyrow = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
   End With
    With Worksheets("IN")
        .Cells(emptyrow, 1).Value = TextBox1.Value
        .Cells(emptyrow, 2).Value = TextBox2.Value
        .Cells(emptyrow, 3).Value = ComboBox1.Value
        .Cells(emptyrow, 4).Value = TextBox5.Value
        .Cells(emptyrow, 5).Value = TextBox6.Value
        .Cells(emptyrow, 6).Value = TextBox7.Value
        .Cells(emptyrow, 7).Value = TextBox8.Value
        .Cells(emptyrow, 8).Value = TextBox9.Value
    End With
    
    Me.TextBox11.Text = Application.WorksheetFunction.Sum(Range("H3:H1048576"))
Dim total As Long
'Me.TextBox5.Value = ""
total = WorksheetFunction.Sum(Range("H3:H1048576"))
Range("A1").Value = total
Range("C1") = TextBox10.Value
If Range("A1").Value > Range("C1") Then
Call Sample2
MsgBox "TOTAL NUMBER ERROR"
End If
        Dim lsRow As Long
    With Sheets("IN")
        lsRow = .Range("a" & .Rows.Count).End(xlUp).Row
    End With
     ListBox1.RowSource = Sheets("IN").Range("A3:H" & lsRow).Address(external:=True)
    With ListBox1
        .ListIndex = .ListCount - 1
        .Selected(.ListCount - 1) = True
    End With
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: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#9

Post by snasui »

Leng wrote: Tue Aug 14, 2018 7:26 pm อาจารย์ครับตอนแรกใช้งานได้แล้วแต่พอเริ่มทำเรื่อยๆเพิ่มโค๊ดอื่นเรื่อย ทำไมเวลา scan 10021 ข้อมูลไม่ลบครับ
โค๊ดที่ error ครับ
:D เกิดจากการเผลอไป Protect Sheet หรือตั้งใจ Protect Sheet กรณีตั้งใจ Protect ให้ Unprotect ด้วย Code เสียก่อน เมื่อทำงานเสร็จแล้วค่อย Protect ใหม่ด้วย Code กรณีไม่ได้ตั้งใจ Protect ให้คลิกขวาที่ Sheet IN เลือก Unprotect Sheet เพื่อยกเลิกการ Protect ครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#10

Post by Leng »

ผมต้องแก้ไขcode ยังไง ถึงจะใช้งานได้ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#11

Post by snasui »

:D ดูตัวอย่างที่นี่ครับ https://www.snasui.com/viewtopic.php?t=8621#p54040
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#12

Post by Leng »

อาจารย์ครับผมได้นำโค๊ดที่ใช้ได้ มาลองเทียบกับโค๊ดที่ใช้ไม่ได้ แต่ก็เหมือนกันเกือบหมดครับแต่ทำไมไฟล์ที่ผมส่งให้อาจารย์ถึงใช้ไม่ได้ทั้งๆที่โค๊ดก็เหมือนกับโค๊ดที่ผมใช้ได้
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#13

Post by snasui »

:D ผมตอบไปแล้วตามโพสต์ #9 :aru: กรุณาอ่านอย่างละเอียด สงสัยประโยคไหนให้ยกมาถามครับ
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#14

Post by Leng »

Code: Select all

Dim i&
With ActiveSheet
If Me.TextBox5.Text = "10021" Then
 i = Worksheets("IN").Cells(emptyrow - 1, 1).EntireRow.Delete
End If
Me.TextBox11.Text = Application.WorksheetFunction.Sum(Range("H3:H1048576"))
รบกวนอาจารย์ช่วยดูหน่อยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#15

Post by snasui »

:D ประเด็นคือไฟล์นี้มีการ Protect อยู่ ให้ปลดการ Protect เสียก่อนเป็นอันดับแรก ได้ปลดการ Protect ตามที่ผมแจ้งไปแล้วหรือไม่ครับ :?:
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#16

Post by Leng »

ได้ละครับแต่ติดปัญหาคือทำไมเวลา scan แล้ว listbox ต้องขยับเล็กลงตลอดครับ เราสามารถตั้งอะไรได้ไหม
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#17

Post by snasui »

:D Object ต่าง ๆ ถ้าหากเราไม่เขียนการเปลี่ยนขนาดไว้ โปรแกรมไม่ควรจะเปลี่ยนขนาดได้เองครับ ไม่ทราบว่าเล็กลงขนาดไหน อย่างไร เล็กลงเรื่อย ๆ หรือว่าหยุดที่ขนาดที่เท่าไรครับ :?:
Leng
Member
Member
Posts: 225
Joined: Tue Jun 26, 2018 5:19 pm

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#18

Post by Leng »

scan ทุกครั้ง listbox จะขยับเล็กลงตลอดครับโดยจนบันจบกับบันทัดสุดท้ายที่ scan ทึงมีtabเลื่อนขึ้นมาโชว์ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#19

Post by snasui »

:shock: ลักษณะเช่นนั้นไม่สามารถเดาสาเหตุได้ครับ :|
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การ Delete ทีละบันทัดแบบมีเงื่อนไข

#20

Post by snasui »

snasui wrote: Tue Aug 14, 2018 8:51 pm :shock: ลักษณะเช่นนั้นไม่สามารถเดาสาเหตุได้ครับ :|
:D ลองดูว่าปรับค่าตามภาพให้เป็น False แล้วช่วยได้หรือไม่ครับ
You do not have the required permissions to view the files attached to this post.
Post Reply