Code ngày, tháng, năm (đ/MM/yyyy) & đưa dữ liệu từ Cell vào TextBox (1 người xem)

  • Thread starter Thread starter Thaiduc
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Thaiduc

Thành viên hoạt động
Tham gia
13/3/07
Bài viết
118
Được thích
6
Mong các anh giúp:
1- Trong TextBox Ngày, tháng, năm (Thẻ Chứng thực bản sao) không hiện đúng định dạng ngày, tháng, năm (dd/MM/yyyy) khi dò tìm, trong khi đó cell vẫn hiện đúng.
2- Khi dò tìm để chỉnh sửa thì không ghi đè lại dữ liệu đó mà lại ghi thêm dòng mới.
3- Làm thế nào để đưa Cell cố định (Cell L1 của Sheet BANSAO) vào TextBox ờ Form (Chứng thực bản sao từ bản chính).
Có gửi File kèm theo. Rất cám ơn!
 

File đính kèm

Trước tiên mình xin lỗi bạn vì mình chả thấy cái form 'FormCHUNGTHUCBANSAO' đâu cả; Nên không thể giúp bạn về câu hỏi của bạn;



Mình đề nghị bạn tham khảo cách mình gộp 2 macro của bạn thành macro Cha & Con như dưới đây

Mã:
[B]Public Sub GPEINSOBS()[/B]
 GPEIn 1
End Sub[/b]
Mã:
[B]
Public Sub GPEINSOHDGD()[/B]
 GPEIn 2
[B]End Sub[/B]
PHP:
Sub GPEIn(Num As Byte)
 'Num=1 => SoBS; Num=2 => HDGD'
 Dim Arr, dArr, Sh As Worksheet, Wh As Worksheet
 Dim I As Long, J As Long, K As Long, fDate As Date, eDate As Date, Col As Byte
 
 If Num = 1 Then
    Set Sh = ThisWorkbook.Worksheets("BanSao")
    Set Wh = ThisWorkbook.Worksheets("InSoBS")
    Col = 8
 ElseIf Num = 2 Then
    Set Sh = ThisWorkbook.Worksheets("HDGD")
    Set Wh = ThisWorkbook.Worksheets("InSoHDGD")
    Col = 7
 End If
 Arr = Sh.Range("A1").CurrentRegion
 fDate = Wh.Range("J2").Value
 eDate = Wh.Range("K2").Value
 ReDim dArr(1 To UBound(Arr), 1 To Col)
 Application.ScreenUpdating = False     '*'
 For I = 2 To UBound(Arr)
    If Arr(I, 2) >= fDate Then
        If Arr(I, 2) <= eDate Then
            K = K + 1
                dArr(K, 1) = K
            For J = 2 To Col
                dArr(K, J) = Arr(I, J)
            Next J
        End If
    End If
 Next I
 With Wh
    If .Range("A65000").End(3).Row > 4 Then
        .Range("A5", .[A65000].End(3)).Resize(, Col).Borders.LineStyle = 0
        .Range("A5", .[A65000].End(3)).Resize(, Col).ClearContents
    End If
    If K Then
        .Range("A5").Resize(K, Col).Value = dArr
        .Range("A5").Resize(K, Col).Borders.LineStyle = 1
    End If
 End With
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Thực sự chưa hiểu bạn lắm; Hãy thử tham khảo cái này:

Giả sử ta có trang tính chứa dữ liệu nhập từ Form, có các trường sau:
Ngày, Tháng, Năm, Biển Số xe, Ngày giao dịch, Số Tiền thanh toán, Ngày Thanh toán

Dưới đây là macro để nhấp dữ liệu từ form vô trang tính:
PHP:
Private Sub CommandButton2_Click()
 Dim Sh As Worksheet
 Dim Dat As Date, Rws As Long
 
 Set Sh = ThisWorkbook.Worksheets("Thu")
 Dat = DateSerial(CmbNam, CmbThang, CmbNgay)
 Rws = Sh.[A65500].End(xlUp).Offset(1).Row
 With Sh.Cells(Rws, "A")
    .Value = CmbNgay                    'Ngày'
    .Offset(, 1).Value = CmbThang       'Tháng'
    .Offset(, 2).Value = CmbNam         'Nam'
    .Offset(, 3).Value = CmbBSX         'Bien Só Xe'
    .Offset(, 4).Value = Dat            'Ngày Tháng Giao Dich'
    .Offset(, 5).Value = CDbl(TxtST)    'Só Tièn'
    If TxtDate = "" Then                'Ngày Thanh Toán (NTT)'
        .Offset(, 6).Value = Dat        'Néu NTT=Ngày Giao Dich'
    Else
        .Offset(, 6).Value = StringToDate(TxtDate)  'NTT<>Ngày GD'
    End If
 End With
End Sub
Mã:
[b]
Function StringToDate(StrC As String)[/b]
 Const FC As String = "/"
 Dim VTr As Byte, Ngay As Byte, Thg As Byte
  
 VTr = InStr(StrC, "/")
 Ngay = CByte(Left(StrC, VTr - 1))
 StrC = Mid(StrC, VTr + 1, 9)
 VTr = InStr(StrC, "/")
 Thg = CByte(Left(StrC, VTr - 1))
 StringToDate = DateSerial(CInt(Right(StrC, 4)), Thg, Ngay)
[b]End Function[/b]

Những mong giúp được bạn ít nhiều sau khi tìm hiểu về chúng
 
Upvote 0
Code của bạn giúp cho mình nhiều lắm. Cám ơn bạn cho mình Code.
 
Upvote 0

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

Back
Top Bottom