Hỏi về hidecolumnheads trong listview

Liên hệ QC

thuyyeu99

Trùm Nhiều Chuyện
Tham gia
6/6/08
Bài viết
1,729
Được thích
875
các anh chị cho em hỏi có cách nào gõ tiếng việt trong mục hidecolumnheads trong listview không.

cám ơn các anh chị quan tâm
 
HideColumnHeader chỉ có False và true làm gì có tiếng việt. Nếu không nhầm thì bạn muốn chỉnh tiếng Việt trong column Header. Vao Properties chọn Customs rồi gõ Tếng Việt
 
Upvote 0
Vậy trong ListBox gõ tên mặc định cho Header được không ? (tự vì mình có rất nhiều mãng mà mỗi mãng tiêu đề khác nhau)
 
Lần chỉnh sửa cuối:
Upvote 0
thuyyeu99
trong thẻ font bạn chon font có hổ trợ tiếng Việt là được. Nhưng columnhead là nét ưu việt của Listview sau lại hide nó đi? Trong Listbox thì dòng tiêu đề cột là columnhead. Vậy bạn muốn nó hiển thị ra sao thì gõ cụ thể vào dòng ngày. Trong Listview thì bạn có thể thay đổi tiêu đề tùy ý.
 
Lần chỉnh sửa cuối:
Upvote 0
thuyyeu99
trong thẻ font bạn chon font có hổ trợ tiếng Việt là được. Nhưng columnhead là nét ưu việt của Listview sau lại hide nó đi? Trong Listbox thì dòng tiêu đề cột là columnhead. Vậy bạn muốn nó hiển thị ra sao thì gõ cụ thể vào dòng ngày. Trong Listview thì bạn có thể thay đổi tiêu đề tùy ý.


Em có làm thử Listview nhưng nó không hiển thị được fónt chữ Unicode chỉ hiện thị được phong chư ABC thôi. có cách nào cho nó hiện được fónt unicode không (em đã chỉnh fonts time new roman trong Listview nhưng nó không hiển thị được)
 
Upvote 0
Trên VBA đâu có hỗ trợ font Unicode. Nếu dùng Font Unicode thì không riêng tiêu đề mà cả trong List cũng không hiển thị được. Nếu dữ liệu là font Unicode thì sủ dụng hàm để chuyển về font tiếng Việt khác có hỗ trợ trên Listview.
 
Lần chỉnh sửa cuối:
Upvote 0
Trên VBA đâu có hỗ trợ font Unicode. Nếu dùng Font Unicode thì không riêng tiêu đề mà cả trong List cũng không hiển thị được. Nếu dữ liệu là font Unicode thì sủ dụng hàm để chuyển về font tiếng Việt khác có hỗ trợ trên Listview.

ý của anh là mình phải chuyển dữ liệu góc trên Ễccll thành font ABC đúng không hay có cách nào dữ liệu trên excell vẫn là UNI nhưng có cách nào khi load vào LV minh convert nó qua ABC không
 
Upvote 0
ý của anh là mình phải chuyển dữ liệu góc trên Ễccll thành font ABC đúng không hay có cách nào dữ liệu trên excell vẫn là UNI nhưng có cách nào khi load vào LV minh convert nó qua ABC không
Không phải vậy, trên Excel thì cứ tôn trọng để nguyên vậy, chỉ đổi khi nạp vào listview thôi như phương án 2 của bạn. Bạn gủi File ví dụ lên mình làm để bạn xem chứ viết bằng lời thế này khó quá và gửi cho cái hàm convert font mình sưu tầm trên diễn đàn khá ngắn gọn

Hàm chuyển font UNI sang TCVN3 như sau:

Mã:
Const CodUni = "225  224  7843 227  7841 259  7855 7857 7859 7861 7863 226  7845 7847 7849 7851 7853 233  232  7867 7869 7865 234  7871 7873 7875 7877 7879 237  236  7881 297  7883 243  242  7887 245  7885 244  7889 7891 7893 7895 7897 417  7899 7901 7903 7905 7907 250  249  7911 361  7909 432  7913 7915 7917 7919 7921 253  7923 7927 7929 7925 273  193  193  192  192  7842 7842 195  195  7840 7840 258  258  7854 7854 7856 7856 7858 7858 7860 7860 7862 7862 194  194  7844 7844 7846 7846 7848 7848 7850 7850 7852 7852 201  201  200  200  7866 7866 7868 7868 7864 7864 202  202  7870 7870 7872 7872 7874 7874 7876 7876 7878 7878 205  204  7880 296  7882 211  211  210  210  7886 7886 213  213  7884 7884 212  212  7888 7888 7890 7890 7892 7892 7894 7894 7896 7896 416  7898 7898 7900 7900 7902 7902 7904 7904 7906 7906 218  218  217  217  7910 7910 360  360  7908 7908 431  7912 7912 7914 7914 7916 7916 7918 7918 7920 7920 221  221  7922 7922 7926 7926 7928 7928 7924 272  "
Const StrVn3 = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòô­øõö÷ùýúûüþ®¸¸µµ¶¶··¹¹¡¡¾¾»»¼¼½½ÆÆ¢¢ÊÊÇÇÈÈÉÉËËÐÐÌÌÎÎÏÏÑÑ££ÕÕÒÒÓÓÔÔÖÖÝ×ØÜÞããßßááââä䤤èèååææççéé¥ííêêëëììîîóóïïññòòôô¦øøõõöö÷÷ùùýýúúûûüüþ§"
Option Explicit
Function UniVn3(text As String) As String
For i = 1 To Len(text)
  kytu = Mid(text, i, 1)
  codkytu = AscW(kytu) & String(5 - Len(CStr(AscW(kytu))), " ")
  vitri = (InStr(1, CodUni, codkytu, 0) + 4) / 5
  If vitri >= 1 Then
    newtext = newtext & Mid(StrVn3, vitri, 1)
  Else
    newtext = newtext & kytu
  End If
Next
UniVn3 = newtext
End Function
 
Lần chỉnh sửa cuối:
Upvote 0
em mới tập làm LV nên nhờ anh sealand chỉ em cách đưa dữ liệu từ LV vào TextB khi minh nhấn dupbo click và nhấn nút gán thì nó sẽ chép dữ liệu vào trong Texb. có gì anh cứ thêm đoạn code cách 2 như anh nói giùm em

cám ơn anh
 

File đính kèm

Upvote 0
Không phải vậy, trên Excel thì cứ tôn trọng để nguyên vậy, chỉ đổi khi nạp vào listview thôi như phương án 2 của bạn. Bạn gủi File ví dụ lên mình làm để bạn xem chứ viết bằng lời thế này khó quá và gửi cho cái hàm convert font mình sưu tầm trên diễn đàn khá ngắn gọn

Hàm chuyển font UNI sang TCVN3 như sau:

Mã:
Const CodUni = "225  224  7843 227  7841 259  7855 7857 7859 7861 7863 226  7845 7847 7849 7851 7853 233  232  7867 7869 7865 234  7871 7873 7875 7877 7879 237  236  7881 297  7883 243  242  7887 245  7885 244  7889 7891 7893 7895 7897 417  7899 7901 7903 7905 7907 250  249  7911 361  7909 432  7913 7915 7917 7919 7921 253  7923 7927 7929 7925 273  193  193  192  192  7842 7842 195  195  7840 7840 258  258  7854 7854 7856 7856 7858 7858 7860 7860 7862 7862 194  194  7844 7844 7846 7846 7848 7848 7850 7850 7852 7852 201  201  200  200  7866 7866 7868 7868 7864 7864 202  202  7870 7870 7872 7872 7874 7874 7876 7876 7878 7878 205  204  7880 296  7882 211  211  210  210  7886 7886 213  213  7884 7884 212  212  7888 7888 7890 7890 7892 7892 7894 7894 7896 7896 416  7898 7898 7900 7900 7902 7902 7904 7904 7906 7906 218  218  217  217  7910 7910 360  360  7908 7908 431  7912 7912 7914 7914 7916 7916 7918 7918 7920 7920 221  221  7922 7922 7926 7926 7928 7928 7924 272  "
Const StrVn3 = "¸µ¶·¹¨¾»¼½Æ©ÊÇÈÉËÐÌÎÏѪÕÒÓÔÖÝ×ØÜÞãßáâä«èåæçé¬íêëìîóïñòô­øõö÷ùýúûüþ®¸¸µµ¶¶··¹¹¡¡¾¾»»¼¼½½ÆÆ¢¢ÊÊÇÇÈÈÉÉËËÐÐÌÌÎÎÏÏÑÑ££ÕÕÒÒÓÓÔÔÖÖÝ×ØÜÞããßßááââä䤤èèååææççéé¥ííêêëëììîîóóïïññòòôô¦øøõõöö÷÷ùùýýúúûûüüþ§"
Option Explicit
Function UniVn3(text As String) As String
For i = 1 To Len(text)
  kytu = Mid(text, i, 1)
  codkytu = AscW(kytu) & String(5 - Len(CStr(AscW(kytu))), " ")
  vitri = (InStr(1, CodUni, codkytu, 0) + 4) / 5
  If vitri >= 1 Then
    newtext = newtext & Mid(StrVn3, vitri, 1)
  Else
    newtext = newtext & kytu
  End If
Next
UniVn3 = newtext
End Function


anh làm thẳng vào ví dụ giùm em được không -+*/ chứ em không biết áp dụng làm sao !$@!!
 
Upvote 0
Cám ơn anh Sealand đúng yêu cầu của em rồi
 
Upvote 0
Bạn sửa lại hàm TableToArray để khi là số sẽ hiển thị canh phải và có phân nhóm ngàn, triệu :

Mã:
Function TableToArray(ByVal TableName As String)
   Dim arr
   Dim vRange As Range
   Dim i As Long, j As Long, m As Long, n As Long
   If Not RangeNameExists(TableName) Then Exit Function  'Neu khong ton tai thi thoat
   On Error Resume Next
   Set vRange = Range(TableName)
   i = vRange.Rows.Count
   j = vRange.Columns.Count
   ReDim arr(1 To i, 1 To j)
   For m = 1 To i
      For n = 1 To j
      If IsNumeric(vRange(m, n).Value) Then
         arr(m, n) = Format(vRange(m, n).Value, "#,##0")
      Else
         arr(m, n) = UniVn3(vRange(m, n).Value)
         End If
      Next n
   Next m
   TableToArray = arr
   Set vRange = Nothing
End Function
P/s: Mình load nhầm file, đã load mới rồi
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
ah tự đoạn code chuyen font cua em sai em thấy rồi
 
Upvote 0
Ah em còn 1 vấn đề này nữa có cách nào cho Text Box hiển thị UNI mà không chỉnh trong Propety không và em muốn chọn mã hàng thì chọn theo tên chỗ này mình sửa làm sao anh
 
Lần chỉnh sửa cuối:
Upvote 0
Ah em còn 1 vấn đề này nữa có cách nào cho TB hiển thị UNI mà không chỉnh trong Propety không anh

Phải chỉnh trong Properties chỉ có điều chỉnh khi nào mà thôi, khi nạp thì phải nạp kèm theo hàm chuyển Font (Trong ví dụ không kèm hàm vì ta lấy từ LV mà LV đẫ chuyển rồi).Có 2 cách chỉnh:
1/Khi thiết kế: Chắc bạn rõ rồi
2/Khi hoạt động (run time):
Dùng câu lệnh: Me.TextBox1.Font = "MS sans serip"

Khi chọn muốn lấy tên chứ không phải mã thì gán như sau:

xxxxxxx = LVDataSelector.SelectedItem.SubItems(1)

(Hình như mình hiểu có 1 ý nữa là khi nhập ký tự tìm thì nó tìm ở cột tên có đúng không)Nếu đúng vậy bạn sửa đoạn code dưới như sau sẽ tìm trong tên mặt hàng có cumj như text box ví dụ có số 14

Mã:
Private Sub TextCode_Change()
Dim it As ListItem
   btim = Me.TextCode.text
For i = 1 To Me.LVDataSelector.ListItems.Count
Set it = Me.LVDataSelector.ListItems.Item(i)
If InStr(1, it.SubItems(1), btim, 0) Then Exit For
Next
   bindex = i
   Me.LVDataSelector.ListItems.Item(bindex).Selected = True
   Me.LVDataSelector.ListItems.Item(bindex).EnsureVisible
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
2/Khi hoạt động (run time):
Dùng câu lệnh: Me.TextBox1.Font = "MS sans serip"

cái này thì dung ý em rồi nhưng có 1 điều nữa là khi mình chép dữ liệu vào Excel thì nó không hiểu

(Hình như mình hiểu có 1 ý nữa là khi nhập ký tự tìm thì nó tìm ở cột tên có đúng không) da dung rồi
 
Upvote 0
Chào anh SEALAND
Sẵn anh đang online, em hỏi anh luôn File bữa trước em gửi Bằng EX07.
- Muốn ListWiew lọc từ cột thứ 2, 3 thì làm thế nào. Em dung finditem không được.
- Dùng ListView để hiện dữ liệu đã nhập vào sheets (VD: theo số 005, 006, 007..) giờ em dùng SPinBotton quay lại số 005 chỉnh sửa rồi gán lại vào sheets đúng vị trí số đó Có chèn thêm dữ liệu. Thì dùng Mảng hay dùng cách thủ công nhanh hơn. Cách thủ công em làm gần được thấy thủ công quá (lặp liên tục) nên dừng lại tìm cách tối ưu. File em gửi mail qua ĐC cũ của anh rồi, E không up được lên diễn đàn.
- Anh xem dùm em mấy sự kiện đã hợp lý chưa mà sao thấy code dài quá
Cám ơn anh
 
Upvote 0
Web KT

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

Back
Top Bottom