Hộp thoại nhập dữ liệu

Liên hệ QC

truonggiang73

Thành viên hoạt động
Tham gia
27/6/09
Bài viết
113
Được thích
35
Tôi đang muốn lập hộp thoại để nhập số liệu vào bảng tổng hợp từ các bảng thu mua chi tiết. Bảng thu mua này ghi theo thực tế phát sinh nên không theo thứ tự vì vậy nên rất khó khăn khi tổng hợp số liệu, hay sai ngày tháng và nhầm dòng.
Tôi nhờ mọi người giúp đỡ với. (Có File gửi kèm)
Xin cảm ơn rất nhiều.!$@!!...--=--
 

File đính kèm

Tôi đọc bài bạn mà tôi chẳng biết bạn viết gì vì Font của bạn là TCVN hay sao đó, thôi để tôi chuyển Font lại cho mọi người dễ nhìn và tôi đã xóa hàng trăm cái Name bị lỗi (chắc máy bạn cũng đã có virus rồi đấy).
 
Upvote 0
Tôi đọc bài bạn mà tôi chẳng biết bạn viết gì vì Font của bạn là TCVN hay sao đó..
Cảm ơn Minhthien321, có lẽ máy bị VIRUS nặng vì tôi vẫn tải BK về và BK diệt được nhiều VR, tắt máy KĐ lại diệt vẫn còn nhiều, ngay cả các tệp của BK vẫn bị nhiễm.
Tôi đã tải lại file của bạn nhưng không thể đọc được vì sai Font hoặc gì đó ...Tôi dùng TCVN3 của Vietkey, Font VNTime-14 trong các file, chuyển sang UNICODE gõ thì chữ không đọc được, nhờ các bạn hướng dẫn cho cách dùng để sử dụng thông dụng trên mạng với.
Tên trong EX tôi không để ý đến và tôi cũng không đặt tên nào cả. Cứ mỗi lần cài lại OFFICE thì tôi phải xóa hàng trăm tên vô nghĩa hình như trong lĩnh vực xây dựng và có sẵn trong bộ cài, lần này cài xong tôi chưa xoá.
Về Form nhập số liệu nhờ các bạn cố gắng giúp giùm với nha.
Cám ơn rất nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Để rảnh rảnh tôi sẽ nghiên cứu File của BÁC, bây giờ BÁC có thể nhờ Anh SEALAND giúp đỡ vì đó là CODE của Anh ấy. Nhưng sẽ hơi lâu đấy BÁC à.
À, BÁC gõ theo kiểu Telex hay VNI vậy? BÁC đang xài bộ gõ gì? Nếu là bộ UniKey thì khi chuyển qua Font Unicode BÁC chọn "Unicode dựng sẳn" để gõ BÁC nhé!
Thân ái.
 
Upvote 0
Để rảnh rảnh tôi sẽ nghiên cứu File của BÁC, bây giờ BÁC có thể nhờ Anh SEALAND giúp đỡ vì đó là CODE của Anh ấy. Nhưng sẽ hơi lâu đấy BÁC à.
À, BÁC gõ theo kiểu Telex hay VNI vậy? BÁC đang xài bộ gõ gì? Nếu là bộ UniKey thì khi chuyển qua Font Unicode BÁC chọn "Unicode dựng sẳn" để gõ BÁC nhé!
Thân ái.
Anh Minh Thiên à, hiện tôi đang dùng và chỉ biết dùng Vietkey, có sử dụng để trao đổi trên mạng được không ?
Còn về phần tôi nhờ thực sự là rất cần, trước đây tôi cũng đã hỏi về vấn đề này và được Anh SEALAND giúp đỡ nhưng do tôi hỏi không có hệ thống nên trong quá trình sử dụng thấy phải cải tiến thêm nữa như đã trình bày ở trên. Anh cùng mọi người giúp đỡ nhé. Với tôi những kiến thức như anh SEALAND đã làm giúp quá mới mẻ nên chỉ đưa toàn bộ ra để hỏi thôi chứ không có ý gì khác đâu.
Thân chào anh cùng...
 
Upvote 0
Xin chào anh em, mình Sealand xin có mặt.
Hôm nay,mình xin nhắc lại: "Luôn sẵn sàng trong phạm vi có thể". Chắc trong thời gian lâu vậy, hôm nay mới lại có ý kiến bạn cũng đã xem xét nhiều. Vậy thì mắc ở đâu thì bạn phải nói cụ thể xem nào. Về tổng thể mình viết 1 ví dụ bạn tham khảo, sau đó tháo gỡ những vướng mắc thì sản phẩm Made in "Tự Tôi" sắp có rồi.
Form của bạn có 1 số điểm cần hoàn thiện hợp lý hơn 1 chút. Các Code không có nội dung thì xóa nó đi cho gọn gàng. Hôm nay đã khuya rồi, chúng ta sẽ gặp lại sau 1 chút.
P/s: Nếu không lầm thì trước đây bạn sử dụng Nick khác
 
Lần chỉnh sửa cuối:
Upvote 0
Chào anh Sealand, mong tin anh mãi nhưng không biết cách nào để gặp anh. Em chỉ dùng nick này thôi, anh xem ở phần cảm ơn sẽ rõ. Đợt trước anh giúp đến 3 lần nhưng do em cứ phải bổ sung nên làm mất công mọi người quá. Có thời gian nhờ anh hoàn thiện giùm cho nhé.
Cảm ơn anh cùng các bạn đã quan tâm.
 
Upvote 0
Bạn kiểm tra xem nhé, gần 2 giờ rồi Bye nhé.
Mình mạn phép sửa sang form của bạn cho màu me 1 chút
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn kiểm tra xem nhé, gần 2 giờ rồi Bye nhé.
Mình mạn phép sửa sang form của bạn cho màu me 1 chút
Cảm ơn anh SEALAND, rất ấn tượng, sử dụng tốt. Bây chừ chỉ còn biết "Cảm ơn" anh cùng mọi người và --=--...--=--
Vì chưa hiểu về VBA nên hỏi anh mấy ý sau :
1- With Range("a1:a500")
Set c = .Find(soho, LookIn:=xlValues) : Có phải Tọa độ của c là row = "soho" trong vùng "a1:a500". Tại sao không phải là vùng "a7:a500" khi đó Soho mới = số dòng? Còn LookIn:=xlValues có ý nghĩa gì ?
2- c.Offset(, k) : Vị trí con trỏ tại giá trị Soho là row = Soho, col = k (Chỉ trượt cột sang phải k cột so với c) ? Nếu thêm số 0 vào : c.Offset(0, k) thì bị lỗi. Nhờ anh giải thích giùm cho.
3- Vì chưa biết và lười suy nghĩ nên chỉ hỏi thôi. Sau khi đọc bài có từ "Made in tự tôi" nên có cải thiện lại form cũ. Tuy sản phẩm của anh hơn hẳn nhưng "hỏi để học" nên nhờ anh giải thích giúp cho tại sao? và làm cách nào để Label17 tự thay đổi sau khi nhập Soho chứ không chờ ấn lệnh "Chấp nhận" mới thay đổi.+-+-+-+ Có File gửi kèm.
Nhờ anh giúp nhé . (Miếng khi đói bằng gói khi no mà) hì hì...

From Sa_DQ:
Về phương thức FIND() bạn có thể tham khảo thêm ở đây: http://giaiphapexcel.com/forum/showthread.php?t=15116
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
1/Không phải như bạn nghĩ, bạn để ý c là 1 ô do lệnh Find tìm thấy có Text là số hộ. Bạn có thể kiểm tra toạ độ ô bằng Msgbox c.Address.
-Đúng ra vùng "a7:a500" mới đúng, đoạn trên bạn chép từ bảng cũ không có Title nên nó dịch lên.
- LookIn:=xlValues: Là Option của lệnh Find yêu cầu tìm trong giá trị (Ngoài ra, nó còn tìm trong công thức)
2/ c.Offset(, k): Tìm các vị trí tính từ ô c lệnh này cũng có thể viết c.Offset(0, k) (0: Không dịch dòng tức là trùng với dòng của ô c, k là dịch số cột nếu k âm dịch sang trái, k>0 dịch sang phải)
3/ Để Label cập nhật tức thì ta gán lệnh đổi vào sự kiện ô số hộ thay đổi (Change)
Mã:
Private Sub TextBox3_Change()
With Sheet1.Range("a7:a500")
    Set c = .Find(TextBox3, LookIn:=xlValues)
    If Not c Is Nothing Then
    MsgBox c.Address
Me.Label7.Caption = c.Offset(, 1)
End If
        End With

End Sub
Bạn cứ mạnh dạn thử đi, quen ngay ấy ma.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn cứ mạnh dạn thử đi, quen ngay ấy ma.

Đã có chút khái niệm về code nhưng còn một số đoạn chưa hiểu nhờ anh giải thích và bổ sung thêm nhá : (Chi tiết phần còn lại mong mọi người "hiểu" nội dung đã có tại bản dịch của Anh Minh Thiên 321 rồi).
From Sa_DQ:
Bạn phải sửa lại font chữ của bài này, nếu không sẽ bị xóa vào chiều này. (Khi đó sẽ ảnh hưởng đến các bài liên quan cũng sẽ bị xóa theo!)

Xin đề nghị với các bạn: Đừng bao giờ trả lời cho những bài phạm quy; Mà chỉ nên yêu cầu sửa lại bài phạm quy, nếu sửa được!) Rất cảm ơn!
 
Lần chỉnh sửa cuối:
Upvote 0
Trước hêt mong thông cảm cho mình, khả năng viết bài của mình kém lắm nên lủng củng và khó hiểu:
1- c.EntireRow.Select : Chän c¶ dßng cã chøa « c


2- ten = Split(c.Offset(, 1), "-") : M×nh trÝch 1 ®o¹n trong ch­¬ng tr×nh anh H­uíng giíi thiÖu gÇn ®©y:
[FONT=&quot] Split

M« t¶:
Split(expression[, delimiter[, limit[, compare]]]) T¸ch chuçi expression thµnh c¸c chuçi con víi dÊu ph©n c¸ch delimiter

Tham sè:
expression Chuçi cÇn t¸ch
delimiter DÊu ph©n c¸ch gi÷a c¸c tõ trong chuçi cÇn t¸ch
limit Sè tõ cÇn t¸ch, tÝnh tõ tr¸i sang
compare ChØ râ kiÓu d÷ liÖu ®Ó so s¸nh trong qu¸ tr×nh t×m kiÕm

Ghi chó:
Dïng cho tham sè compare
vbUseCompareOption = -1 ChÕ ®é tïy chän, VB sÏ tù ®éng lùa läai d÷ liÖu thÝch hîp
vbBinaryCompare = 0 So s¸nh nhÞ ph©n
vbTextCompare = 1 So s¸nh chuçi
vbDatabaseCompare = 2
[/FONT][FONT=&quot]So s¸nh d÷ liÖu[/FONT]

***************************************************************
3- UBound(ten): T×m chØ sè lín nhÊt cña m¶ng
Controls("ten" & i) = ten(i) :
VÝ dô i=2
§iÒu khiÓn cã tªn ten2 b»ng phÇn tö thø 2 cña m¶ng ten
***************************************************************
4- Public Sub TextBox2_Change()
Dim ten As Variant
soho = TextBox2
With Sheet2.Range("a7:a500"). ‘Trong tr­êng hîp nµy lµ Sheet”TH” ?
Set c = .Find(soho, LookIn:=xlValues)
If c Is Nothing Then
Unload Me
MsgBox "Ban bo sung so ho"
‘ §
ưa con trá vÒ vÞ trÝ EOF.
End If
End With
Bæ sung phÇn ch÷ ®á vµo trong tr
ưêng hîp kh«ng t×m thÊy c. NÕu kh«ng bæ sung th× nhËp Soho >= 28 bÞ lçi lÖnh.

Hoan h«, m×nh nãi cø m¹nh d¹n lµm sÏ hoµn thiÖn mµ, b¹n xem tiÕp ®o¹n nµy Sheet2.Range("a7:a500"). lµm sao ®Õn dßng d÷ liÖu cuèi th«i chø kh«ng cè ®Þnh, kÓ c¶ sè hé lªn 1000 còng v« t­.
**************************************************************
5- Code nhÇm lÉn gi÷a Soho = 1 thµnh =10 nh
ưng em kh«ng t×m được lçi.
§©y lµ viÖc bæ xung option cña lÖnh find (so khíp toµn « chø kh«ng ph¶i 1 phÇn) B¹n nghiªn cøu tiÕp.
**************************************************************
6- Public Sub UserForm_Initialize() : Sù kiÖn Initialize() Khëi t¹o tr­íc khi më Form

7- Em thay tõ Private b»ng PUBLIC vµ ®­­a file vÒ d¹ng Addin ®Ó dïng mçi khi khëi ®éng EX thÊy rÊt tiÖn.
Tõ kho¸ Public dïng ®Ó khai b¸o c¸c biÕn hay sub, hµm dïng chung ®îi cã s¸ch cña anh H­íng b¹n thao kh¶o kü h¬n.
***

 
Lần chỉnh sửa cuối:
Upvote 0
Xin lỗi các ANH CHỊ, máy của mình không có Font TCVN (mình chưa cài) nên bài bên dưới khó thấy quá, cũng có thể các ANH CHỊ nào như mình (biết đâu người nước ngoài) cũng sẽ không đọc được, mạn phép cho mình chuyển qua Font Unicode bài của Anh Sealand:

1- c.EntireRow.Select : Chọn cả dòng có chứa ô c
2- ten = Split(c.Offset(, 1), "-") : Mình trích 1 đoạn trong chương trình anh Hưuớng giới thiệu gần đây:
Split
Mô tả:
Split(expression[, delimiter[, limit[, compare]]]) Tách chuỗi expression thành các chuỗi con với dấu phân cách delimiter
Tham số:
expression Chuỗi cần tách
delimiter Dấu phân cách giữa các từ trong chuỗi cần tách
limit Số từ cần tách, tính từ trái sang
compare Chỉ rõ kiểu dữ liệu để so sánh trong quá trình tìm kiếm
Ghi chú:
Dùng cho tham số compare
vbUseCompareOption = -1 Chế độ tùy chọn, VB sẽ tự động lựa lọai dữ liệu thích hợp
vbBinaryCompare = 0 So sánh nhị phân
vbTextCompare = 1 So sánh chuỗi
vbDatabaseCompare = 2 So sánh dữ liệu
************************************************** *************
3- UBound(ten): Tìm chỉ số lớn nhất của mảng
Controls("ten" & i) = ten(i) :
Ví dụ i=2
Điều khiển có tên ten2 bằng phần tử thứ 2 của mảng ten
************************************************** *************
4- Public Sub TextBox2_Change()
Dim ten As Variant
soho = TextBox2
With Sheet2.Range("a7:a500"). ‘Trong trường hợp này là Sheet”TH” ?
Set c = .Find(soho, LookIn:=xlValues)
If c Is Nothing Then
Unload Me
MsgBox "Ban bo sung so ho"
‘ Đua con trỏ về vị trí EOF.
End If
End With
Bổ sung phần chữ đỏ vào trong truờng hợp không tìm thấy c. Nếu không bổ sung thì nhập Soho >= 28 bị lỗi lệnh.
Hoan hô, mình nói cứ mạnh dạn làm sẽ hoàn thiện mà, bạn xem tiếp đoạn này Sheet2.Range("a7:a500"). làm sao đến dòng dữ liệu cuối thôi chứ không cố định, kể cả số hộ lên 1000 cũng vô tư.
************************************************** ************
5- Code nhầm lẫn giữa Soho = 1 thành =10 nhung em không tìm du?c lỗi.
Đây là việc bổ xung option của lệnh find (so khớp toàn ô chứ không phải 1 phần) Bạn nghiên cứu tiếp.
************************************************** ************
6- Public Sub UserForm_Initialize() : Sự kiện Initialize() Khởi tạo trước khi mở Form
7- Em thay từ Private bằng PUBLIC và đưưa file về dạng Addin để dùng mỗi khi khởi động EX thấy rất tiện.
Từ khoá Public dùng để khai báo các biến hay sub, hàm dùng chung đợi có sách của anh Hướng bạn thao khảo kỹ hơn.
 
Upvote 0
Cho tôi chuyển lời xin lỗi đến anh Sa_DQ cùng Ban quản trị diễn đàn, về lỗi Font chữ tôi hơi bất cẩn. Do soạn trên Word và Copy lại nên bị như thế, tôi rút kinh nghiệm. Nhưng tại tại máy tôi vẫn đọc được bình thường ? Anh Sa_DQ nói là bài bị phạm quy &... hơi nặng lời thì phải.
**************
Cảm ơn anh Sealand, anh Minh Thiên, các anh giải thích quá rõ và dễ hiểu. Mong gặp lại các anh chị để ??? nhiều nữa...
TG73 xin cảm ơn và thân chào.

From Sa_DQ:
Bạn thấy trong khung trả lời nhanh của diễn đàn có câu này không?:
Bài không dấu Tiếng Việt sẽ bị xoá, phải đặt tên tựa đề rõ nghĩa và tránh dùng các từ Help me, cứu cứu, cứu em, gấp gấp,...

Thêm vào đó, diễn đàn đã cài sẵn font chuẩn của diễn đàn. (Có nghĩa là đã tạo điều kiện để chúng ta thống nhất dùng font chữ cho ai cũng đọc được; Xin nhấn mạnh ai cũng đọc được.)
& bạn nên hiểu một điều rằng không phải bạn đọc được có nghĩa là người khác phải đọc được; Bạn hiểu được là người khác phải hiểu được. . . . !
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Anh [COLOR=#000080 đã viết:
Sa_DQ[/COLOR]]...& bạn nên hiểu một điều rằng không phải bạn đọc được có nghĩa là người khác phải đọc được; Bạn hiểu được là người khác phải hiểu được. . . . !
Anh Sa_DQ nói đúng. Thôi xí xóa anh nhá. Qua một đêm ...không dài biết (học) thêm được một cái mới mà. TG 73 thân chào & chúc sức khỏe anh.
Cảm ơn anh Sa_DQ về địa chỉ lệnh Find Method.
 
Lần chỉnh sửa cuối:
Upvote 0
Hỏi thêm về Form...

Theo hướng dẫn của các anh chị trên GPE, tôi cơ bản đã hoàn thiện được FORM nhập dữ liệu. Còn một điểm tôi muốn bổ sung thêm nhưng chưa làm được :
Với những hộ nhập >1 lần/buổi, tôi đã cho bôi màu những ô đó để khi cần kiểm tra dễ nhận biết bằng cách : tại CommandButton1 bổ sung thêm ở phần code anh Sealand giúp:
...
If OptionButton1 = True Then
If c.Offset(, k + 3) > 0 Then
Range(c.Offset(, k), c.Offset(, k + 2)).Select
With Selection.Interior
.ColorIndex = 7
End With
End If
c.Offset(, k) = c.Offset(, k).Value + Val(TextBox4)
...
Để tiện theo dõi hơn nữa tôi định bổ sung thêm Commen tại mỗi ô đó diễn giải nhập lần sau "=" nhưng mãi vẫn không được. Xin chỉ giáo của các anh chị...
Tôi đã bổ sung như sau tiếp sau phần chữ đỏ (nhưng bị lỗi)
Range(c.Offset(, k)).AddComment
Range(c.Offset(, k)).Comment.Text Text:="Nhap lan sau la " & TextBox4.value
Range(c.Offset(, k+1)).AddComment
Range(c.Offset(, k+1)).Comment.Text Text:="Nhap lan sau la " & TextBox6.value

Range(c.Offset(, k+2)).AddComment
Range(c.Offset(, k+2)).Comment.Text Text:="Nhap lan sau la " & TextBox7.value
Chờ hồi âm
Thân.
 
Upvote 0
Code tô màu không hợp lý, mình sửa gọn lại và cả sáng lẫn chiều luôn

Mã:
Private Sub CommandButton1_Click()
Dim dn As Long
ng = TextBox1
soho = TextBox2
If ng = 0 Or soho = "" Then GoTo moi
With Range("a1:a500")
    Set c = .Find(soho, LookIn:=xlValues)
    If Not c Is Nothing Then
        End If
        End With
        If OptionButton1 = True Then
        k = ((ng - 1) * 4 + 2) + (ng - 1) * 4
      [COLOR=Red] dn = c.Offset(, k + 3)[/COLOR]
        c.Offset(, k) = c.Offset(, k).Value + Val(TextBox4)
        c.Offset(, k + 1) = c.Offset(, k + 1).Value + Val(TextBox6)
        c.Offset(, k + 2) = c.Offset(, k + 2).Value + Val(TextBox7)
    Else
        k = ((ng - 1) * 4 + 2) + (ng - 1) * 4
       [COLOR=Red]dn = c.Offset(, k + 7)[/COLOR]
        c.Offset(, k + 4) = c.Offset(, k + 4).Value + Val(TextBox4)
        c.Offset(, k + 5) = c.Offset(, k + 5).Value + Val(TextBox6)
        c.Offset(, k + 6) = c.Offset(, k + 6).Value + Val(TextBox7)
      [COLOR=Red] k = k + 4[/COLOR]
    End If
 [COLOR=Red] If dn > 0 And Val(TextBox4) + Val(TextBox6) + Val(TextBox7) > 0 Then _
Range(c.Offset(, k), c.Offset(, k + 2)).Interior.ColorIndex = 7[/COLOR]
moi:
luong1 = 0: luong2 = 0: luong3 = 0: luong4 = 0
    TextBox2 = "": TextBox4 = 0: TextBox6 = 0: TextBox7 = 0
    TextBox3 = ""
    TextBox2.SetFocus
End Sub
Chỉ thêm dòng màu đỏ là đủ (Mình thêm, nếu nhập cả 3 loại =0 thì không tô màu)
Hôm nay, MU gặp Asenal nên vậy thôi nhé
 
Lần chỉnh sửa cuối:
Upvote 0
2 trong 1 cả add comm luôn
Chỉ cần add vào ô cộng là đủ, mỗi lần 1 dòng có cả ngày giờ nhập luôn
Trước khi nhập, các số đã nhập thử phải xóa hết đi nếu không sẽ lỗi vì tưởng là đã có comm (Bạn chặn lỗi này sau)

Mã:
Private Sub CommandButton1_Click()
Dim dn As Long
ng = TextBox1
soho = TextBox2
If ng = 0 Or soho = "" Then GoTo moi
With Range("a1:a500")
    Set c = .Find(soho, LookIn:=xlValues)
    If Not c Is Nothing Then
        End If
        End With
        If OptionButton1 = True Then
        k = ((ng - 1) * 4 + 2) + (ng - 1) * 4
        dn = c.Offset(, k + 3)
        c.Offset(, k) = c.Offset(, k).Value + Val(TextBox4)
        c.Offset(, k + 1) = c.Offset(, k + 1).Value + Val(TextBox6)
        c.Offset(, k + 2) = c.Offset(, k + 2).Value + Val(TextBox7)
        
    Else
        k = ((ng - 1) * 4 + 2) + (ng - 1) * 4
        dn = c.Offset(, k + 7)
        c.Offset(, k + 4) = c.Offset(, k + 4).Value + Val(TextBox4)
        c.Offset(, k + 5) = c.Offset(, k + 5).Value + Val(TextBox6)
        c.Offset(, k + 6) = c.Offset(, k + 6).Value + Val(TextBox7)
        k = k + 4
    End If
    If dn > 0 And Val(TextBox4) + Val(TextBox6) + Val(TextBox7) > 0 Then _
Range(c.Offset(, k), c.Offset(, k + 2)).Interior.ColorIndex = 7
chuoi = "< " & TextBox4 & " > < " & TextBox6 & " > < " & TextBox7 & " > ---" & Now()
With c.Offset(, k + 3)
If dn = 0 Then
       .AddComment
       .Comment.Text Text:=chuoi
       .Comment.Visible = False
        Else
        chuoi = .Comment.Text & Chr(10) & chuoi
       .Comment.Text Text:=chuoi
     End If
   End With
        
moi:
luong1 = 0: luong2 = 0: luong3 = 0: luong4 = 0
    TextBox2 = "": TextBox4 = 0: TextBox6 = 0: TextBox7 = 0
    TextBox3 = ""
    TextBox2.SetFocus
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Hôm nay chủ nhật, mình sửa chuẩn lệnh nhập cho bạn gọn và đủ

Mã:
Private Sub CommandButton1_Click()
        Dim dn As Long
        ng = TextBox1
        soho = TextBox2
        If ng = 0 Or soho = "" Then GoTo moi
With Range("a1:a500")
    Set c = .Find(soho, LookIn:=xlValues, LookAt:=xlWhole)
    If c Is Nothing Then Exit Sub
End With
        k = IIf(OptionButton1, ((ng - 1) * 4 + 2) + (ng - 1) * 4, ((ng - 1) * 4 + 2) + (ng - 1) * 4 + 4)
        dn = c.Offset(, k + 3)
        c.Offset(, k) = c.Offset(, k).Value + Val(TextBox4)
        c.Offset(, k + 1) = c.Offset(, k + 1).Value + Val(TextBox6)
        c.Offset(, k + 2) = c.Offset(, k + 2).Value + Val(TextBox7)
    If dn > 0 And Val(TextBox4) + Val(TextBox6) + Val(TextBox7) > 0 Then _
Range(c.Offset(, k), c.Offset(, k + 2)).Interior.ColorIndex = 7
chuoi = "< " & TextBox4 & " > < " & TextBox6 & " > < " & TextBox7 & " > " & Now()
With c.Offset(, k + 3)
If dn = 0 Then
       .AddComment
       .Comment.Text Text:=chuoi
       .Comment.Visible = False
   Else
        chuoi = .Comment.Text & Chr(10) & chuoi
       .Comment.Text Text:=chuoi
   End If

   End With
moi:
    luong1 = 0: luong2 = 0: luong3 = 0: luong4 = 0
    TextBox2 = "": TextBox4 = 0: TextBox6 = 0: TextBox7 = 0
    TextBox3 = ""
    TextBox2.SetFocus
End Sub
 
Upvote 0
Hôm nay chủ nhật, mình sửa chuẩn lệnh nhập cho bạn gọn và đủ
Hôm qua mất điện cả ngày nên không "vào" được. Cảm ơn anh Sealand đã giúp & tinh chỉnh lại code. Phải có nhiều thời gian để đọc và hiểu code anh đã giúp nhưng em nghĩ đây là cách học hay và thực tế nhất.
Cảm ơn anh nhiều.
Ahh, nhân tiện hỏi anh là FAN của đội nào vậy; MU.fan or Ars.fan ? Có thời gian phải nhờ anh viết CODE để dự đoán tỷ số đó ...--=0
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom