Định dạng trong listBox (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

sonthanhnguyen0601

Thành viên mới
Tham gia
4/3/07
Bài viết
1
Được thích
0
Xin cho mình hỏi một tí . làm sao có thể định dạng theo kiêu số (VD : 1000 la 1,000) . Trên listbox mình mò hoài vẫn không ra. Xin các anh chị nào biết giúp dùm em a.
 

File đính kèm

  • help.JPG
    help.JPG
    119.6 KB · Đọc: 405
ban lam thu xem:
Private Sub gtsauthue_Change()
Me.gtsauthue = Format(Me.gtsauthue, "#,##0")


End Sub
 
Upvote 0
Bạn thử như sau:

Lưu ý việc canh phải trái trong Listbox tất cả các cột chung nhau


Ngoài cách của anh Sealand ra, cách nhanh nhất là gán rowsource cho ListBox, thì không cần phải dùng thủ tục nào cả, chỉ cần định dạng sẳn trong sheet như thế nào, thì listbox sẽ ra như thế đó.

(Mượn File của anh Sealand)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Ngoài cách của anh Sealand ra, cách nhanh nhất là gán rowsource cho ListBox, thì không cần phải dùng thủ tục nào cả, chỉ cần định dạng sẳn trong sheet như thế nào, thì listbox sẽ ra như thế đó.

Bạn Nghĩa ơi, mình làm theo cách của bạn nhưng sao bị báo lỗi là Run-time error '70': Permission denied nhỉ.
Bạn giúp mình với

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn Nghĩa xem file đính kèm giúp mình nhé. Nhân tiện mình muốn nhờ bạn xem có cách gì để trên listbox mình có thể định dạng cột số liệu thì canh phải còn cột chỉ tiêu thì canh trái được không. Và nếu mình muốn một số dòng được tô đậm thì có thể làm được không. Mình cảm ơn bạn nhé

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn Nghĩa xem file đính kèm giúp mình nhé. Nhân tiện mình muốn nhờ bạn xem có cách gì để trên listbox mình có thể định dạng cột số liệu thì canh phải còn cột chỉ tiêu thì canh trái được không. Và nếu mình muốn một số dòng được tô đậm thì có thể làm được không. Mình cảm ơn bạn nhé
Tôi nghi lắm mà! Khi bạn dùng RowSource thì làm ơn xóa cái này đi cái!

Private Sub UserForm_Initialize()
ListBox1.List = Sheet1.[AE126:AK246].Value
End Sub

Không thể "ngốn" 1 lúc 2 cái vô miệng được đâu!

ListBox chỉ canh trái, canh phải, canh giữa cho tất cả các cột, không thể thế này thế kia nha bạn. Đồng thời cũng chỉ có 1 màu nền và một màu chữ thôi.
 
Upvote 0
Có 1 cách làm giống như vậy đó là dùng mẹo để hiển thị, mẹo đó như thế này:

-Ta canh trái cho Listbox, cột nào cần canh phải thì ta bù cho nó khoảng trống bên phải về bên trái. Ví dụ cho dễ hiểu, cột có độ rộng 10 ký tự, nếu dữ liệu có 2 ký tự thì ta chèn cho nó 8 khoảng trống về bên trái.

-Nếu chỉ chèn như vậy vẫn chưa được vì các ký tự có độ rông khác nhau. Nhưng có font chữ Courier là có độ rộng bằng nhau. Ta set font cho Listbox là font này


Thử xem ví dụ nha
 

File đính kèm

Upvote 0
Có 1 cách làm giống như vậy đó là dùng mẹo để hiển thị, mẹo đó như thế này:

-Ta canh trái cho Listbox, cột nào cần canh phải thì ta bù cho nó khoảng trống bên phải về bên trái. Ví dụ cho dễ hiểu, cột có độ rộng 10 ký tự, nếu dữ liệu có 2 ký tự thì ta chèn cho nó 8 khoảng trống về bên trái.

-Nếu chỉ chèn như vậy vẫn chưa được vì các ký tự có độ rông khác nhau. Nhưng có font chữ Courier là có độ rộng bằng nhau. Ta set font cho Listbox là font này


Thử xem ví dụ nha

Cho em hỏi, em muốn chèn vô 1 cột nữa (cột thứ 3).
Trên listbox, em chỉnh độ rộng ColumnWidths các cột không được. Nhờ anh giúp đỡ


[GPECODE=vba]Private Sub UserForm_Initialize()
Dim Tm, i, Cw
Cw = Replace(Split(Me.ListBox1.ColumnWidths, ";")(2), "pt", "") * 1
Tm = Sheet1.[A2:D27]
For i = 1 To UBound(Tm, 1)
Tm(i, 2) = Trim(Tm(i, 2))
Tm(i, 4) = Right(String(100, " ") & Format(Tm(i, 4), "#,##0"), Cw)
Next
Me.ListBox1.List() = Tm
End Sub


[/GPECODE]
 
Upvote 0
Cho em hỏi, em muốn chèn vô 1 cột nữa (cột thứ 3).
Trên listbox, em chỉnh độ rộng ColumnWidths các cột không được. Nhờ anh giúp đỡ


[GPECODE=vba]Private Sub UserForm_Initialize()
Dim Tm, i, Cw
Cw = Replace(Split(Me.ListBox1.ColumnWidths, ";")(2), "pt", "") * 1
Tm = Sheet1.[A2:D27]
For i = 1 To UBound(Tm, 1)
Tm(i, 2) = Trim(Tm(i, 2))
Tm(i, 4) = Right(String(100, " ") & Format(Tm(i, 4), "#,##0"), Cw)
Next
Me.ListBox1.List() = Tm
End Sub
[/GPECODE]
Sao không chỉnh hẳn trong ListBox khi thiết kế luôn đi, chỉnh trong code làm chi bạn?
 
Upvote 0
Bạn đưa file ví dụ lên đi, giải thích khó hơn làm ví dụ
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Việc không hiển thị được cột 4 là vì bạn để độ rộng cột 4 lớn quá.
Bạn xem lại file nha
 

File đính kèm

Upvote 0
Bạn kiểm tra code trong lúc loát form đó.
Cột 4 của mảng nạp vào list...bạn nối định dạng kiểu gì vậy??? nối gì mà right ở đây? chỉ cần định dạng cột này có ngăn cách phần ngàn là được rồi...

Chỉnh độ rộng cột 3 của listbox lên 300pt đi...
Em đã chỉnh cột 3 lên 300pt,
Nối định dạng Right ở đây là định dạng số, canh đều về 1 bên như ở bài #9 của topic này
 
Upvote 0
Bạn kiểm tra code trong lúc loát form đó.
Cột 4 của mảng nạp vào list...bạn nối định dạng kiểu gì vậy??? nối gì mà right ở đây? chỉ cần định dạng cột này có ngăn cách phần ngàn là được rồi...

Chỉnh độ rộng cột 3 của listbox lên 300pt đi...

Câu trả lời không hiểu mục đích.
 
Upvote 0
Với mình thì thà lấy 1 khoảng trống nào đó trên trang tính làm nguồn cho ListBox còn hơn mấy thủ thuật cao siêu này!

Mấy thủ thuật này mình cho là chỉ mang tính học thuật; Chả thực tế là mấy!
 
Upvote 0
Với mình thì thà lấy 1 khoảng trống nào đó trên trang tính làm nguồn cho ListBox còn hơn mấy thủ thuật cao siêu này!

Mấy thủ thuật này mình cho là chỉ mang tính học thuật; Chả thực tế là mấy!

Lại thêm cả bác Chanh có ý kiến thế này. Em nói thật, đây là thủ thuật em học lỏm được của cao thủ VB code bên VB 4rum đấy. Dù nó mang tính gì đi chăng nữa thì nó cũng giúp cho người dùng như dân kế toán bọn em khỏi nhầm lẫn khi đọc số trên Listbox. Mà nó hữu dụng thì em dùng và chia sẻ cùng anh em thôi.
Nói thật, em cũng mong ai sử lý được cách canh dữ liệu trên Listbox tùy ý từng cột cho em học hỏi với.
 
Upvote 0
Chủ iếu là nhắn với chủ đề tài thôi.

Vì mình cho là chủ đề tài chưa đủ nguồn nội lực để tiếp thụ những trò này!
 
Upvote 0
Lại thêm cả bác Chanh có ý kiến thế này. Em nói thật, đây là thủ thuật em học lỏm được của cao thủ VB code bên VB 4rum đấy. Dù nó mang tính gì đi chăng nữa thì nó cũng giúp cho người dùng như dân kế toán bọn em khỏi nhầm lẫn khi đọc số trên Listbox. Mà nó hữu dụng thì em dùng và chia sẻ cùng anh em thôi.
Nói thật, em cũng mong ai sử lý được cách canh dữ liệu trên Listbox tùy ý từng cột cho em học hỏi với.
Mình thì mới bắt đầu tự tập tành VBA nhưng mình có ý này không biết có được không (chưa test) mong anh em chỉ giáo. VD mình muốn tạo listbox 5 cột thì tại sao mình không tạo 5 listbox cạnh nhau (dữ liệu lấy cùng 01 bảng trên sheet nhưng chia ra 5 phần là 05 cột). Khi đó list hiển thị "có lẽ" sẽ khớp dòng với nhau ở 5 listbox.
 
Upvote 0
Cho mình hỏi xíu ạ !!
Trong code của bạn chỉ định dạng được cột 3, mình muốn định dạng thêm cột 4,5,6 thì mình sửa code như thế nào ạ !!!
cảm ơn bạn !!!
Mã:
Option Explicit
Private Sub UserForm_Initialize()
Dim Tm, i
Tm = Sheet1.[A2:C27]
For i = 1 To UBound(Tm, 1)
Tm(i, 3) = Format(Tm(i, 3), "#,##0")
Next
Me.ListBox1.List() = Tm
End Sub

Bạn thử như sau:

Lưu ý việc canh phải trái trong Listbox tất cả các cột chung nhau
 

File đính kèm

Upvote 0
Cho mình hỏi xíu ạ !!
Trong code của bạn chỉ định dạng được cột 3, mình muốn định dạng thêm cột 4,5,6 thì mình sửa code như thế nào ạ !!!
Mã:
Private Sub UserForm_Initialize()
Dim Tm, i, c As Long
    Tm = Sheet1.[A2:F27]
    For i = 1 To UBound(Tm, 1)
        For c = 3 To 6
            Tm(i, c) = Format(Tm(i, c), "#,##0")
        Next c
    Next i
    Me.ListBox1.List() = Tm
End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom