Empurre automaticamente a linha para baixo

0

Estou tentando criar um documento de folha de ponto e quero que seja formatado

-----------------------------------------
|   Date   | Time In | Time Out | Hours |
-----------------------------------------
| 1/5/2014 |         |          |   0   |
-----------------------------------------
| 1/4/2014 |  09:00  |  12:00   |   3   |
-----------------------------------------
| 1/3/2014 |  09:30  |  14:00   |  4.5  |
-----------------------------------------
| 1/2/2014 |  08:00  |  17:00   |   9   |
-----------------------------------------
| 1/1/2014 |  12:00  |  13:00   |   1   |
-----------------------------------------

com a data mais recente no topo. Quero fazer com que, quando eu insira os horários na linha 1/5/2014, uma nova linha substitua automaticamente 1/5/2014 por

-----------------------------------------
|   Date   | Time In | Time Out | Hours |
-----------------------------------------
| 1/6/2014 |         |          |   0   |
-----------------------------------------
| 1/5/2014 |  09:00  |  13:00   |   4   |
-----------------------------------------
| 1/4/2014 |  09:00  |  12:00   |   3   |
-----------------------------------------
| 1/3/2014 |  09:30  |  14:00   |  4.5  |
-----------------------------------------
| 1/2/2014 |  08:00  |  17:00   |   9   |
-----------------------------------------
| 1/1/2014 |  12:00  |  13:00   |   1   |
-----------------------------------------

Isso é possível no Excel?

Pessoa4645
fonte

Respostas:

0

Uma Worksheet_Changemacro de eventos funcionaria bem para isso. Clique com o botão direito do mouse na guia nome da planilha e escolha Exibir código. Quando o VBE for aberto, cole o seguinte no painel direito, intitulado Livro1 - Folha1 (Código) .

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2:C2")) Is Nothing Then
        If Application.Count(Range("B2:C2")) = 2 Then
            On Error GoTo Fìn
            Application.EnableEvents = False
            Range("A2:D2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
            Range("A2") = Range("A3").Value + 1
            Range("D2").Formula = Replace(Range("D3").Formula, 3, 2)
            Range("B2").Activate
        End If
    End If
Fìn:
    Application.EnableEvents = True
End Sub

Toque em Alt+ Qpara retornar à sua planilha. Depois que B2 e C2 tiverem valores de tempo inseridos, uma nova linha será adicionada com as fórmulas apropriadas.

        Cartão de ponto adicionar linhas

Eu usei a fórmula =(C2-B2)*24na coluna D.

Jeeped
fonte
Perfeito, exatamente o que eu estava procurando. Obrigado!
precisa saber é o seguinte