Tạo ngày tự động trên ô exel

Liên hệ QC

quypham2010

Thành viên mới
Tham gia
13/3/10
Bài viết
1
Được thích
0
Style Q'ty ETA Est. on Floor Ptn/spec/spl PP spl Appr Date Comment Date Comment Date Comment EV479 21,300 22-Aug 13-Aug 19-Mar ok 19-Mar ok 19-Mar ok

EV480 4,100 22-Aug 13-Aug 19-Mar ok 19-Mar ok 19-Mar ok
EV481 3,450 22-Aug 13-Aug 19-Mar ok 19-Mar ok 19-Mar ok
EV482 2,400 22-Aug 13-Aug 19-Mar ok 19-Mar ok 19-Mar ok

TF407 11,086 22-Jul 24-Jul 19-Mar ok 19-Mar ok 19-Mar ok
TF407 13,414 22-Jul 24-Jul 19-Mar ok 19-Mar ok 19-Mar ok
TF407 8,250 22-Jul 24-Jul
TF407 10,321 01-Jul 07-Jul
TF451 12,736 07-Jul 07-Jul

Khi bên ô F, H, J="ok" thi Cot E, G, I có giá trị bằng ngày nhập chử "ok" lên ô F, H, J.

Nghĩa là cố định ngày trên cot E,G,I bằng công thức khi nhap OK trên Cot F,H,G, Không muốn nó thay đổi theo ngày hệ thống. (Hiện tại công thức trên đang thay đổi theo ngày hệ thống)

Rất mong các bạn có công thức nào hay, chỉ giúp mình.
Cảm ơn các bạn rất nhiều.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Không biết công thức này có hiểu đúng ý của bạn không :
tại ô A1, bạn nhập công thức sau :
=IF(B1="OK",TODAY(),"")

TDN
 
Không biết công thức này có hiểu đúng ý của bạn không :
tại ô A1, bạn nhập công thức sau :
=IF(B1="OK",TODAY(),"")

TDN
Theo em hiểu là chữ OK xuất hiện vào ngày nào thì cell kế bên sẽ hiển thị ngày của hệ thống tại thời điểm OK, ngày này không thay đổi theo ngày hệ thống. Em nghĩ phải dùng đến VBA thôi anh à.
Không biết có phải vậy không tác giả ?
 
Style Q'ty ETA Est. on Floor Ptn/spec/spl PP spl Appr Date Comment Date Comment Date Comment EV479 21,300 22-Aug 13-Aug 19-Mar ok 19-Mar ok 19-Mar ok

EV480 4,100 22-Aug 13-Aug 19-Mar ok 19-Mar ok 19-Mar ok

EV481 3,450 22-Aug 13-Aug 19-Mar ok 19-Mar ok 19-Mar ok
Khi bên ô F, H, J="ok" thi Cot E, G, I có giá trị bằng ngày nhập chử "ok" lên ô F, H, J.
Nghĩa là cố định ngày trên cot E,G,I bằng công thức khi nhap OK trên Cot F,H,G, Không muốn nó thay đổi theo ngày hệ thống. (Hiện tại công thức trên đang thay đổi theo ngày hệ thống)
Rất mong các bạn có công thức nào hay, chỉ giúp mình.
Cảm ơn các bạn rất nhiều.
Đang tập tành nên chỉ làm được thế này thôi, hổng biết trúng ý không nữa
Thân
 

File đính kèm

Đang tập tành nên chỉ làm được thế này thôi, hổng biết trúng ý không nữa
Thân
Chỉ như vầy thôi nè bạn:

Mã:
If Not Intersect(Target, Range("F:F")) Is Nothing Then
   With Target
      If .Value = "ok" Then
      .Offset(, -1) = Date
  [B][COLOR=Green] '   Selection.Formula = "=now()"
   '   Selection.Copy
   '   Selection.PasteSpecial Paste:=xlPasteValues
    '  Application.CutCopyMode = False[/COLOR][/B]
      Else
      Exit Sub
      End If
   End With
 End If
 
Chỉ như vầy thôi nè bạn:

Mã:
If Not Intersect(Target, Range("F:F")) Is Nothing Then
With Target
If .Value = "ok" Then
.Offset(, -1) = Date
[B][COLOR=green]' Selection.Formula = "=now()"[/COLOR][/B]
[B][COLOR=green]' Selection.Copy[/COLOR][/B]
[B][COLOR=green]' Selection.PasteSpecial Paste:=xlPasteValues[/COLOR][/B]
[B][COLOR=green]' Application.CutCopyMode = False[/COLOR][/B]
Else
Exit Sub
End If
End With
End If
Cám ơn bạn Dom nhiều, mình làm gọn lại "zồi", gom chung lại nó còn chúy téo "hè"

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vung As Range
Set vung = Application.Union(Range("F:F"), Range("H:H"), Range("j:J"))
If Not Intersect(Target, vung) Is Nothing Then
   With Target
      If .Value = "ok" Then
      .Offset(, -1).Select
      Selection.Formula = Date
            Else
      Exit Sub
      End If
   End With
 End If
 End Sub
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Cho mình hỏi cách làm cột h có thể chọ chữ ok và no làm sao vậy .
 
Cám ơn bạn Dom nhiều, mình làm gọn lại "zồi", gom chung lại nó còn chúy téo "hè"

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vung As Range
Set vung = Application.Union(Range("F:F"), Range("H:H"), Range("j:J"))
If Not Intersect(Target, vung) Is Nothing Then
   With Target
      If .Value = "ok" Then
      .Offset(, -1).Select
      Selection.Formula = Date
            Else
      Exit Sub
      End If
   End With
 End If
 End Sub

Còn có thể bỏ bớt vài dòng nữa đó bạn.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim vung As Range
Set vung = Application.Union(Range("F:F"), Range("h:H"), Range("j:J"))
 If Not Intersect(Target, vung) Is Nothing Then
   With Target
      If .Value = "ok" Then
         .Offset(, -1) = Date
     [COLOR=Green][B]    'Selection.Formula = Date
       ' Else
        ' Exit Sub[/B][/COLOR]
      End If
   End With
 End If
End Sub
 
Còn có thể bỏ bớt vài dòng nữa đó bạn.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim vung As Range
Set vung = Application.Union(Range("F:F"), Range("h:H"), Range("j:J"))
 If Not Intersect(Target, vung) Is Nothing Then
   With Target
      If .Value = "ok" Then
         .Offset(, -1) = Date
     [COLOR=Green][B]    'Selection.Formula = Date
       ' Else
        ' Exit Sub[/B][/COLOR]
      End If
   End With
 End If
End Sub
Xài có 1 lần mà With... End With chi cho mệt
Ẹc... Ẹc...
If UCase(Target.Value) = "OK" then Target.Offset(,-1) = Date
(Đôi khi cũng nên chú ý vụ chữ HOA chữ thường)
Có With... End With chăng thì tôi sẽ dùng ở chổ này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  With Union([F:F], [H:H], [J:J])
    If Not Intersect(Target, .Cells) Is Nothing Then
      If UCase(Target) = "OK" Then Target.Offset(, -1) = Date
    End If
  End With
End Sub
Đở tốn 1 biến
 
Lần chỉnh sửa cuối:
Bài của bạn quypham2010 hỏi có 1 ít tương tự như nhu cầu của em. Em nhờ các bác giúp cho code để khi em gõ ok hay out ( cột O) cũng đều xuất hiện ngày hệ thống ở cột (N). Xin lỗi vì em không biết VBA. Thanks các bác nhiều.



-----
chắc máy em có vấn đề, ko add file được. MAi em add file lên nhờ các bác giúp đỡ
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom