2015-04-27 4 views
-2

Я пытаюсь создать макрос, который дает временную метку изменения статуса, но, к сожалению, пока я не увенчался успехом. Может ли кто-нибудь помочь мне в этом отношении. Ниже приведен статус моего проекта. очистки ждать начала продолжается на удержание закрыто finalisiert prämiert искоса в Umsetzungметка времени при изменении статуса

Основной причиной extrating даты, чтобы вычислить количество дней, в течение определенного статуса.

Заранее спасибо

EDIT обновленный вопрос включать код:

If Not Intersect(Target, Columns(1)) Is Nothing Then 
    On Error GoTo Fìn 
    Application.EnableEvents = True 
    Dim rng As Range 
    For Each rng In Intersect(Target, Columns(1)) 
     If LCase(rng.Value) = "clearing" Then 
      Cells(rng.Row, 2) = Date 
      Cells(rng.Row, 2).NumberFormat = "dd.mm.yyyy" 
      'Cells(rng.Row, 3).FormulaR1C1 = "maybe put the formula in here" 
     ElseIf rng.Offset(0, 2).Value = "true" Then 
      Cells(rng.Row, 4) = Date 
      Cells(rng.Row, 4).NumberFormat = "dd.mm.yyyy" 



     Else 
     If LCase(rng.Value) = "wait for start" Then 
      Cells(rng.Row, 6) = Date 
      Cells(rng.Row, 6).NumberFormat = "dd.mm.yyyy" 
      'Cells(rng.Row, 3).FormulaR1C1 = "maybe put the formula in here" 
     ElseIf rng.Offset(0, 2).Value = 2 Then 
      Cells(rng.Row, 8) = Date 
      Cells(rng.Row, 8).NumberFormat = "dd.mm.yyyy" 
     End If 
     End If 
    Next rng 
End If 
Fìn: 
    Application.EnableEvents = True 
End Sub 

я приведенный выше код, но на самом деле это не fulfulling мое требование. Изменение состояния означает, что в моем проекте почти 6 статусов, и когда я, например, меняю статус с ожидания на начало, он должен вернуть дату начала ожидания состояния для даты начала и окончания для того же состояния, чтобы я мог вычислить количество дней.

+0

Кроме того, что вы имеете в виду изменения статуса? Какой статус меняется? – Sam

+1

Измените свой вопрос для лучшей читаемости (особенно статус) и добавьте код, который вы уже создали, даже если он не работает. Если он не работает, сообщите нам, какую ошибку он дал вам и по какой строке. – R3uK

+0

Итак, когда вы начинаете код, вы хотите узнать, в какое время «статус» меняется на другой? Что такое код, который изменяет статус? – Sam

ответ

0

Это должно работать для вас, менее запутанной ....

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Count > 1 Then Exit Sub 
    If Target.Column <> 1 Then Exit Sub 
    If LCase(Target) = "clearing" Then Target.Offset(, 1) = Format(Date, "dd.mm.yy") 
    If LCase(Target) = "true" Then Target.Offset(, 1) = Format(Date, "dd.mm.yy") 
    '==========2 conditions============== 
    If LCase(Target) = "something" And LCase(Target.Offset(0, 1)) = "maybe" Then 
     MsgBox "Example with 2 conditions" 
     Target.Offset(0, 4) = Format(Date, "dd.mm.yy") 
    End If 
End Sub 
+0

нет его не работает – Mani

+0

может кто-нибудь объяснить мне, что делает rng.Offset (0, 2)? – Mani

+0

rng.offset - это насколько далеко от диапазона вы хотите, чтобы данные были. Итак, в этом случае rng.offset (0,2) будет той же строки, что и 0. И 2 столбца. – Sam

Смежные вопросы