gtsalikis, apaguei a macro coloquei a última revisão, executei e esta aparecendo os mesmos erros: datas do 1 a 12 estão com outra formatação e em uma das linhas, as horas iniciais esta em decimais e observei também você colocou para que as colunas H e I tivessem a formação com ponto, pois preciso que a coluna "I" fique com a separação em virgula e a "H" pode permanecer os dados originais.
000051 - PEDRO JANIO ESPINDOLA RAMIRO 04/02/2014 62266 1-DESTRAVAR A BOMBA DE MAGMA DA FABRICA . MCP 0,638888889 19:00 3.40 3.67
Módulo:
Sub Organiza_GT()
'Não atualiza a tela
Application.ScreenUpdating = False
'Definição das variáveis
Dim ws_Origem As Worksheet
Dim ws_Cópia As Worksheet
Dim Funcionário As String
Dim i As Integer 'linhas da planiha original
Dim j As Integer 'linhas da planilha para onde os dados serão copiados
Dim PL As Integer 'Primeira Linha
Dim UL As Integer 'Última Linha
Dim Horas As String
Dim Minutos As String
Dim Tempo As String
'Define as planilhas
Set ws_Origem = Sheets("Rel. Tempo.xls")
Set ws_Cópia = Sheets("Plan1")
'Define a primeira linha com dados que interessam
PL = 10
'Pega a última linha com base na coluna A
UL = ws_Origem.Cells(Rows.Count, "A").End(xlUp).Row
'Define o valor de j para a primeira linha onde os dados serão inseridos
j = 2
'Formata as colunas H e I como texto para inserir o tempo com ponto
ws_Cópia.Columns("H:I").NumberFormat = "@"
'Faz o loop entre a primeira e a última linha definidas acima, aumentanto de 2 em 2 linhas
For i = PL To UL Step 2
'Verifica qual o funcionário atual e joga seus dados para a variável Funcionário
If ws_Origem.Cells(i, "A").Value = "Funcionário:" Then Funcionário = ws_Origem.Cells(i, "B").Value
'Verifica se é uma data, se for, copia os dados
If IsDate(ws_Origem.Cells(i, "A").Value) Then
ws_Cópia.Cells(j, "A").Value = Funcionário
ws_Cópia.Cells(j, "B").Value = Format(ws_Origem.Cells(i, "A").Value, "dd/mm/yyyy")
ws_Cópia.Cells(j, "C").Value = ws_Origem.Cells(i + 1, "A").Value
ws_Cópia.Cells(j, "D").Value = ws_Origem.Cells(i + 1, "B").Value
ws_Cópia.Cells(j, "E").Value = ws_Origem.Cells(i, "B").Value
ws_Cópia.Cells(j, "F").Value = ws_Origem.Cells(i, "C").Value
ws_Cópia.Cells(j, "G").Value = ws_Origem.Cells(i, "D").Value
ws_Cópia.Cells(j, "H").Value = ws_Origem.Cells(i, "E").Value
'Converte os minutos em decimais
Tempo = ws_Cópia.Cells(j, "H").Value
Horas = Mid(Tempo, 1, Len(Tempo) - 2)
Minutos = Right(Tempo, 2)
Minutos = Round(Minutos / 60 * 100)
Tempo = Horas & Minutos
ws_Cópia.Cells(j, "I").Value = Tempo
'Ao fim das cópias, passa j para o valor da linha seguinte
j = j + 1
End If
Next i
'Atualiza a tela
silva_jmp
http://www.4shared.com/file/-Lq5_Va5ba/Rel_Tempo_-_R1.html
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 18/04/2014 2:42 pm