2010-05-10 4 views
1

J'essaie d'avoir un événement de date d'horodatage dans la colonne B lorsqu'une entrée est faite dans la colonne A. Maintenant, je peux le faire en VBA sans problème, le problème que je suis En cours d'exécution, il y a aussi une entrée qui finira par aller dans la colonne D, par exemple, et qui nécessitera également un horodatage dans la colonne E. Est-ce possible. Voici un échantillon du code que j'ai utilisé jusqu'ici.Créer un horodatage automatique dans Excel à partir d'une entrée

Sous Worksheet_Change privée (ByVal Target As Range) Pour chaque cellule cible Si Cell.Column < = 3 Ensuite si les cellules (Cell.Row, 1) <> "" Puis cellules (Cell.Row, 2) = maintenant End If cellule suivante End Sub

Répondre

1

Si vous êtes OK avec chaque colonne impair étant entrée par un utilisateur, et les horodateurs étant dans les colonnes paires (vous pouvez tyep dans la colonne a, et TimeStamp ira dans la colonne B. Vous pouvez taper dans la colonne C et l'horodatage ira dans la colonne D, etc.) alors vous pouvez utiliser ceci:

Private Sub Worksheet_Change(ByVal Target As Range) 

    'Only write a timestamp of an odd column changes (because the timestamps go in the even columns) 
    If Target.Column Mod 2 > 0 Then 

     'Get the first part of the address, to get the actual column being changed 
     Dim columnAddress As String 
     columnAddress = Target.Address 

     If InStr(columnAddress, ":") > 0 Then 
      columnAddress = Left(columnAddress, InStr(columnAddress, ":") - 1) 
     End If 

    'This will cause the TimeStamp to be undeletable (kind of like na Audit). 
    'If you want the timestamp to disappear when you clear the column, uncomment the next few lines: 

    '  If Not ActiveSheet.Range(columnAddress).Formula = "" Then 

      ''Write the timestamp for the previous column 
      ActiveSheet.Range(columnAddress).Offset(0, 1).Formula = Now 

    '  Else 
    '   ActiveSheet.Range(columnAddress).Offset(0, 1).Formula = "" 
    '  End If 
    End If 


End Sub 

Vous pouvez masquer les colonnes pour lesquelles vous n'avez pas besoin de l'horodatage.

+0

Cela fonctionnera. Est-il possible que quand une gamme pour A et B sont sélectionnés et supprimés, il n'agit pas drôle? – Obfus

+0

Fixé! Si cela fonctionne pour vous, s'il vous plaît n'oubliez pas de marquer cette réponse comme acceptée! –

+0

Merci! Cela fonctionne très bien! – Obfus

Questions connexes