Bem vdd reli agora pouco e esta muito sem nexo.
O seguinte eu fiz uma macros pra importar dados de txt para o excel. Que é o seguinte:
Dim fileToOpen
Sub ImportarArquivo()
'Declara a variável para o nome do arquivo texto
Dim ArqBanco
ArqBanco = ""
'Abre janela para abertura do arquivo texto
fileToOpen = Application _
.GetOpenFilename("Txt Files (*.txt), *.txt", multoselect = True) 'Define o tipo de arquivo permitido
If fileToOpen <> False Then
'Se o arquivo for válido importa o novo arquivo
ArqBanco = fileToOpen
End If
'Se nenhum arquivo for selecionado encerra
If fileToOpen = False Then End
'Define variáveis para abertura e leitura do arquivo texto
Dim sArquivo As String, Slinha As String, iARQ As Integer
'Nome do arquivo
sArquivo = ArqBanco
'Libera leitura do arquivo
iARQ = FreeFile
'Abre o arquivo
Open sArquivo For Input As iARQ
'Declara variáveis de linha e coluna para destino dos dados
Dim R, C, linha
linha = Sheets("Plan1").Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).Row
R = linha: C = 2
Cells(R, C).Activate
'Declara colunas dos dados e Delimitador de coluna
Dim sTempo, sExtBottom, sExtWall, sExtTop, sIntBottom, sIntWall, sDelimitador
'Como você solicitou, vamos dar nomes para as colunas. É só alterar os nomes para os de sua preferência
Cells(R, C) = ""
Cells(R, C + 1) = "ExtBottom"
Cells(R, C + 2) = "ExtWall"
Cells(R, C + 3) = "ExtTop"
Cells(R, C + 4) = "IntBottom"
Cells(R, C + 5) = "IntWall"
'Range(Cells(R, C), Cells(R, C + 5)).Font.Bold = True
sDelimitador = "|" 'Nesse caso vamos usar o pipe "|"
'Declara as paradas. Como são 6 colunas, temos só 5 paradas
Dim Parada1, Parada2, Parada3, Parada4, Parada5
'Definimos valor "0" para as paradas, para começar a contagem.
Parada1 = 0: Parada2 = 0: Parada3 = 0: Parada4 = 0: Parada5 = 0
'Inicia o loop no arquivo texto
On Error GoTo Erro
Do While Not EOF(iARQ)
'Seleciona a célula
Cells(R, C).Activate
'Pega a linha atual do arquivo texto
Line Input #iARQ, Slinha
'Vamos definir as paradas "|"
For i = 1 To Len(Slinha)
If Parada1 = 0 And Mid(Slinha, i, 1) = sDelimitador Then Parada1 = i
If i >= Len(Slinha) And Parada1 = 0 And Mid(Slinha, i, 1) <> sDelimitador Then GoTo FimDaLinha
Next i
For i = Parada1 + 1 To Len(Slinha)
If Parada2 = 0 And Mid(Slinha, i, 1) = sDelimitador Then Parada2 = i
If i >= Len(Slinha) And Parada2 = 0 And Mid(Slinha, i, 1) <> sDelimitador Then GoTo FimDaLinha
Next i
For i = Parada2 + 1 To Len(Slinha)
If Parada3 = 0 And Mid(Slinha, i, 1) = sDelimitador Then Parada3 = i
If i >= Len(Slinha) And Parada3 = 0 And Mid(Slinha, i, 1) <> sDelimitador Then GoTo FimDaLinha
Next i
For i = Parada3 + 1 To Len(Slinha)
If Parada4 = 0 And Mid(Slinha, i, 1) = sDelimitador Then Parada4 = i
If i >= Len(Slinha) And Parada4 = 0 And Mid(Slinha, i, 1) <> sDelimitador Then GoTo FimDaLinha
Next i
For i = Parada4 + 1 To Len(Slinha)
If Parada5 = 0 And Mid(Slinha, i, 1) = sDelimitador Then Parada5 = i
If i >= Len(Slinha) And Parada5 = 0 And Mid(Slinha, i, 1) <> sDelimitador Then GoTo FimDaLinha
Next i
FimDaLinha:
'Carregamos os dados para as constantes
'<< BLOQUEIE AS LINHAS DAS COLUNAS NÃO UTILIZADAS. OU SEJA, SE VOCÊ FOR IMPORTAR UM ARQUIVO COM 10 COLUNAS, MANTENHA
'APENAS AS 10 LINHAS NECESSÁRIAS.
'OBSERVE QUE O A LINHA REFERENTE À ÚLTIMA COLUNA É DIFERENTE. MANTENHA ELE DESSE JEITO. >>>
sTempo = Mid(Slinha, 1, Parada1 - 1)
sExtBottom = Mid(Slinha, Parada1 + 1, Parada2 - 1 - Parada1)
sExtWall = Mid(Slinha, Parada2 + 1, Parada3 - 1 - Parada2)
sExtTop = Mid(Slinha, Parada3 + 1, Parada4 - 1 - Parada3)
sIntBottom = Mid(Slinha, Parada4 + 1, Parada5 - 1 - Parada4)
sIntWall = Mid(Slinha, Parada5 + 1, Len(Slinha) - Parada5)
'Descarrega as constantes para a planilha
Cells(R, C) = sTempo
Cells(R, C + 1) = sExtBottom
Cells(R, C + 2) = sExtWall
Cells(R, C + 3) = sExtTop
Cells(R, C + 4) = sIntBottom
Cells(R, C + 5) = sIntWall
'Avança uma linha
R = R + 1
'Limpa constantes
sTempo = ""
sExtBottom = ""
sExtWall = ""
sExtTop = ""
sIntBottom = ""
sIntWall = ""
Parada1 = 0
Parada2 = 0
Parada3 = 0
Parada4 = 0
Parada5 = 0
DoEvents
Loop
End Sub
Ele está funcionando perfeitamente, ele extra tempo, e mais outras 5 informações. A minha problematica está justamente na coluna de tempo, pois o seguinte o tempo é pra continuar e não começar do 0 novamente, mas os dados que me passaram mostra analises sequenciais e suas durações, porem todas começam do tempo 0, e eu gostaria de adicionar a esse o ultimo valor de tempo antes do zero, exemplo:
Tenho a seguinte Tabela , vendo ela vc nota que em determinado ponto ela volta a 0, e isso não é desejavel, então eu gostaria de somar o 3600 com todos os termos desde o 0 ate o antes do proximo 0, neste ja seria somada o valor anterior a ele. Porem não consegui desenvolver uma macros que permite-se tal ação. Já não sei o que tentar, você poderia me dar uma maozinha?
Tempo analise
0
1.00E-05
2.00E-05
3.00E-05
0.01025
0.02049
3600
0
1.00E-05
2.00E-05
2404.663574
3098.072754
3556.656494
3593.971924
0
1.00E-05
2.00E-05
3.00E-05
5.00E-05
9.00E-05
7200
Postado : 14/07/2016 2:21 pm