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
:D ตัวอย่าง 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
:D ผมไม่ได้อ่านหนังสือไทยก็เลยไม่สามารถแนะนำให้ได้ ถ้าเป็นหนังสือภาษาอังกฤษลองศึกษาของ 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
:D วิธีการกำหนด Password ให้แสดงเป็นดอกจัน ดูตามภาพด้านล่างครับ

ในส่วนของการแก้ไขหลายคนและมีหลาย Password จะต้องมีชีตสำหรับเป็น Table ในการเก็บ Password และ Username ซึ่งผู้ใช้จะต้องกรอก หากพบว่าตรงก็ค่อยเข้าระบบได้และให้เก็บ Username และ Password ไว้ในตัวแปรซึ่งจะนำไปบันทึกไว้เป็นประวัติว่าผู้ใช้เป็นใคร ในส่วนนี้ลองทำมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ

Re: ช่วยด้วยครับอยากให้รายการใน ListBox โชว์ให้ครบครับ

Posted: Thu Feb 15, 2018 5:57 pm
by Wara
ครับผมขอบคุณครับ