Page 1 of 1
ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Sun Feb 11, 2018 1:38 pm
by Wara
สวัสดีครับอาจารย์ทุกท่านวันนี้ผมมีเรื่องมาปรึกษา ผมลองศึกษาการเขียน VBA จากกระทู้ของเพื่อนและอาจารย์ตอนนี้ผมติดปัญกาโค้ยอยู่ตัวนึงครับผมพยามแก้มาหลายวันแล้วซื้อหนังสือมาอ่านก็ทำไม่ได้ โค้ดรันได้ปรกติแต่ไม่ตรงกับความต้องการ ความต้องการของผมคือ
1.เมื่อพิมพ์คำค้นหาใน txtbox ให้ข้อมูไปโชว์ที่ ListBox
ตอนนี้ข้อมูลโชว์ครับแต่ขึ้นแถวเดียวครับ รบกวนอาจารย์ช่วยดูและปรับโค้ดให้หน่อยครับ
ผมแนบไฟล์ มาด้วยครับ
Code: Select all
Private Sub TextBox1_Change()
Dim i As Range, rAll As Range
If TextBox1.Text <> "" Then
ListBox1.Clear
With Sheets("hit91")
Set rAll = .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
End With
For Each i In rAll
A = Len(TextBox1.Text)
If Left(i.Value, A) = Left(TextBox1.Text, A) Then
ListBox1.AddItem i.Value
End If
Next i
End If
End Sub
Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Sun Feb 11, 2018 2:35 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Dim r As Range, rAll As Range, j As Integer
If TextBox1.Text <> "" Then
ListBox1.Clear
With Sheets("hit91")
Set rAll = .Range("A2:I55", .Range("A" & .Rows.Count).End(xlUp))
End With
For Each r In rAll
A = Len(TextBox1.Text)
If Left(r.Value, A) = Left(TextBox1.Text, A) Then
With ListBox1
.ColumnWidths = "50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt"
.AddItem
.List(j, 0) = r.Value
.List(j, 1) = r.Offset(0, 1).Value
.List(j, 2) = r.Offset(0, 2).Value
'...Other code
j = j + 1
End With
End If
Next r
End If
Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Sun Feb 11, 2018 2:56 pm
by Wara
ได้แล้วครับผม
ขอบคุณครับ
Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Sun Feb 11, 2018 3:39 pm
by Wara
อาจารย์ครับผมรบกวนอีกเรื่องครับช่วยแนะนำหนังสือเกี่ยวกับ VBA ให้หน่อยครับ
เพราะหนังสือที่ผมซื้อมายังไม่ค่อยตรงความต้องการเท่าไหร่ครับ อยากได้ประมาณ
การประกาศตัวแปร เครื่องมือ และคำสั่งต่างๆ ค้นหาใช้คำสั่งอะไร ค้นหาและแก้ไขใช้คำสั่งอะไร ประมาณนี้ครับ ผมเริ่มศึกษาการเขียน VBA บางครั้งไม่เข้าใจครับ และหาคำตอบไม่ได้ครับ
ขอบคุณครับ
Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Sun Feb 11, 2018 3:45 pm
by snasui

ผมไม่ได้อ่านหนังสือไทยก็เลยไม่สามารถแนะนำให้ได้ ถ้าเป็นหนังสือภาษาอังกฤษลองศึกษาของ
John Walkenbach ครับ
ในหนังสืออาจจะมีไม่ครบทุกเรื่องเนื่องจากมีรายละเอียดมาก หากเป็นการเขียนโปรแกรม หนังสือฝรั่งโดยมากจะละเอียดกว่าหนังสือไทย และหากมีเรื่องใดที่หาคำตอบไม่ได้ให้ลองเขียน Code มาก่อนแล้วสอบถามจากฟอรัมนี้ครับ
Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Sun Feb 11, 2018 3:51 pm
by Wara
ขอบคุณครับ
Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Thu Feb 15, 2018 4:33 pm
by Wara
สวัสดีครับอาจารย์ผมมีเรื่องมาปรึกษาต่อครับผมได้ทำ Userfom ขึ้นมาเพื่อใส่ password พอใส่ Password แล้วก็จะมี Userfom 2 ขึ้นมาเพื่อให้แก้ไขหรือเพิ่มข้อมูลโดยที่ผมจะซ่อน sheet data เเละผมลองเขียโค้ดต่อว่าเมื่อกรอกเสร็จแล้วให้บันทึกวันเวลาที่เข้าใช้ไปใน sheet username และมีผมที่เข้าไปดูข้อมูลได้คนเดียวในส่วนที่กล่ามาผมทำได้หมดแล้วแต่ไม่ทราบว่าถูกต้องหรือไม่ รบกวนอาจารย์ช่วยแนะนำให้ผมหน่อย ในส่วนที่ผมยังทำไม่ได้คือ
1.เมื่อกรอก passwordแล้วให้ขึ้น"******" ผมเข้าไปดูหลายตัวอย่างแล้วแต่ยังทำไม่ได้
2.คนที่จะเข้ามาแก้ข้อมูลและบันทึกได้มีหลายคนผมอยากให้มี password ของใครของมันเพื่อที่ผมจะเข้ามาดูว่าใครเข้ามาแก้ไขตอนไหนในส่วนนี้ผมลองหลายวิธีแล้วยังไม่ได้เลยครับ
Code: Select all
Private Sub CommandButton1_Click()
Dim username As String
Dim i As Integer
Dim irow As Long
Dim ws As Worksheet
username = TextBox1.Text
If username = "1234" Then
MsgBox "ยินดีต้อนรับเข้าสู่ระบบคุณภาพ", vbInformation
Unload Me 'unload this
UserForm2.Show
Else
i = i + 1
If i < 3 Then
MsgBox "Username ไม่ถูกต้อง", vbCritical
'now close the workbook
Else
Application.DisplayAlerts = False
Application.Quit
End If
End If
Set ws = Worksheets("username")
'find first empty row in username
irow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
'copy the data to the username
ws.Cells(irow, 1).Value = Date
ws.Cells(irow, 2).Value = Time
ws.Cells(irow, 3).Value = Me.TextBox1.Value
End Sub
ส่วนอันนี้คือโค๊ตที่ผมลองแกะออกมา
รบกวนช่วยตรวจสอบและชี้แนะด้วยครับ
password 1234
ขอบคุณครับ
Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Thu Feb 15, 2018 5:50 pm
by snasui

วิธีการกำหนด Password ให้แสดงเป็นดอกจัน ดูตามภาพด้านล่างครับ
ในส่วนของการแก้ไขหลายคนและมีหลาย Password จะต้องมีชีตสำหรับเป็น Table ในการเก็บ Password และ Username ซึ่งผู้ใช้จะต้องกรอก หากพบว่าตรงก็ค่อยเข้าระบบได้และให้เก็บ Username และ Password ไว้ในตัวแปรซึ่งจะนำไปบันทึกไว้เป็นประวัติว่าผู้ใช้เป็นใคร ในส่วนนี้ลองทำมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ
Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ
Posted: Thu Feb 15, 2018 5:57 pm
by Wara
ครับผมขอบคุณครับ