Announcement

Collapse

ยินดีต้อนรับสู่ Excel Expert Training Forum

กฏกติกาของฟอรัม: แจ้งชื่อและนามสกุลจริงในการสมัครสมาชิก - ตั้งชื่อกระทู้ให้ตรงกับปัญหาที่ถาม - เขียนอธิบายคำถามทั้งในตัวกระทู้และในแฟ้มแนบ - ห้ามใช้คำว่า อ่ะ คับ คำผวน - ตั้งชื่อแฟ้มเป็นภาษาอังกฤษให้สื่อถึงปัญหา - อย่าระบุชื่อให้คนใดเป็นผู้ตอบ - งดให้ความร่วมมือหรือช่วยกระทู้ที่ละเมิดกฏของฟอรัม
See more
See less

ถ้าจะนับตัวอักษรแบบรีลไทม์ในขณะที่กำลังพิมพ์ได้หรือไม่

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • mitrapap
    replied
    เนียนๆตามอาจารย์ไปได้สมบูรณ์ละครับ ขอบคุณมากๆครับผม
    Attached Files

    Leave a comment:


  • อรวีร์
    commented on 's reply
    จาก Code จะเห็นว่าเมื่อ SelectionChange แล้ว ActiveCell ไปที่ C7 หรือ C9 จะแสดง TextBox1 ที่ Cell นั้นๆพร้อมปรับขนาด+ตำแหน่งให้ครอบทับ Cell นั้นพอดี และกำหนด MaxLength ตามต้องการ
    ถ้า ActiveCell อยู่ที่อื่น จะซ่อน TextBox1

  • อรวีร์
    replied
    อรวีร์ใช้วิธี Insert TextBox จาก ActiveX Controls มันจะถูกตั้งชื่อเองเป็น TextBox1
    มันจะเข้าสู่ Design Mode เอง
    เรา Click ปุ่มขวาที่ TextBox1 นั้น แล้วเลือก Properties เพื่อกำหนดคุณสมบัติพวกสี เส้นกรอบ..
    สิ่งสำคัญควรกำหนด Selection Margin เป็น False
    เสร็จแล้ว Click ปุ่มขวาที่ TextBox1 อีกครั้งเลือก View Code แล้วเขียน Code ดังนี้

    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
    Case 38
    ActiveCell.Offset(-1, 0).Select
    Case 40, 13
    ActiveCell.Offset(1, 0).Select
    End Select
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If TextBox1.Visible Then TextBox1.Visible = False
    If Target.Count > 1 Then Exit Sub
    Select Case Target.Address
    Case "$C$7": Show_Textbox1 5
    Case "$C$9": Show_Textbox1 10
    End Select
    End Sub

    Sub Show_Textbox1(mx)
    With TextBox1
    .Left = ActiveCell.Left
    .Top = ActiveCell.Top
    .Width = ActiveCell.Width
    .Height = ActiveCell.Height
    .LinkedCell = ActiveCell.Address
    .Activate
    .MaxLength = mx
    .Visible = True
    End With
    End Sub

    Leave a comment:


  • mitrapap
    replied
    ขอบคุณครับ ของผมบางครั้งก็เปิดได้ บางครั้งก็ไม่ได้ ยังไม่พบว่าเกิดจากอะไร
    แต่อยากจะบอกว่า ของคุณอรวีร์นี่"เนียน"จริงๆนะครับ แทบจับไม่ได้เลยว่าเกิดอะไรในขณะที่พิมพ์ข้อมูลบ้าง ผมไปดัดแปลงโค้ดเล็กน้อยและเปลี่ยนตำแหน่งเซลก็เข้ากับงานผมได้ดี ผมได้ใช้งานทั้งแบบของคุณ Vajaraphol และของคุณอรวีร์เลยครับ แต่ถ้าคุณอรวีร์มีเวลา รบกวนเฉลยเป็นสเต็ป 1, 2, 3 ... ให้สักนิดนะครับ ตอนนี้เอาไปดัดแปลงได้ แต่ยังวนหาทางตั้งแต่เริ่มไม่พบครับผม

    Leave a comment:


  • อรวีร์
    commented on 's reply
    ลอง copy ที่อยู่นี้ https://www.excelexperttraining.com/.../fetch?id=1434
    ไปวางในช่อง url ของ IE ดูค่ะ แล้วเลือก save as..

  • Vajaraphol
    replied
    ผมเปิดได้ปกตินะครับ ใช้ google chrome
    Attached Files

    Leave a comment:


  • mitrapap
    replied
    ผมเปิดไฟล์ของแนบไม่ได้ครับ เป็นทั้ง firefox และ chrome กลายเป็นเลข 1 (หรือตัว I)อันเดียวครับผม
    Attached Files

    Leave a comment:


  • อรวีร์
    commented on 's reply
    ลืมไป ย้าย .Visible = True ไปไว้ก่อนบรรทัด End With ดีกว่าค่ะ

  • อรวีร์
    replied
    นำของคุณ Vajaraphol มาต่อยอดค่ะ ทำเสมือนจำกัดจำนวนตัวอักษรขณะ key ใน Cell
    Attached Files

    Leave a comment:


  • mitrapap
    replied
    อยู่ที่แนวคิดจริงๆครับ ขอบคุณท่าน Vajaraphol มากๆครับผม
    Attached Files

    Leave a comment:


  • Vajaraphol
    replied
    Private Sub TextBox1_Change()
    Range("A1").Value = "Length " & Len(TextBox1.Text) & " / 30"
    End Sub

    สร้าง textbox1 สำหรับกรอกข้อมูล แค่นี้ก็ได้แล้วครับ

    Leave a comment:


  • Vajaraphol
    replied
    ใน spreadsheet ไม่ได้แน่
    แต่ถ้าใช้วิธีพิมพ์ text ใน textbox แล้วใช้ VBA นับ น่าจะทำได้ครับ
    เดี๋ยวหาเวลาลองก่อน

    Leave a comment:


  • ถ้าจะนับตัวอักษรแบบรีลไทม์ในขณะที่กำลังพิมพ์ได้หรือไม่

    ผมมีเซลที่ต้องให้ยูสเซอร์กรอกคอมเม้นท์ โดยกำหนดจำนวนตัวอักษรสูงสุดเอาไว้ ซึ่งเป็นการควบคุมการใช้ข้อความให้กระทัดรัดด้วย แต่ยูสเซอร์คอมเม้นท์กลับมาว่า อยากให้ผมทำตัวนับข้อความที่นับไปพร้อมๆกับการพิมพ์ไปเลย ไม่ใช่มานับตอนที่พิมพ์เสร็จแล้ว(ผมใช้สูตร len) เพราะบางทีต้องเสียเวลากับการคิดประโยคใหม่หลายๆครั้งจนกว่าจะพอดี เป็นไปได้หรือไม่ครับ ขอบคุณครับผม
Working...
X