Añadir cálculos a una hoja "resumen"
La hoja de "DATOS" es un correo que me llega diariamente, lo copio de gmail, lo pego en un txt (para que me cambie el formato a texto) y luego lo paso a Excel a la hoja "DATOS", ahí lo separo por espacios con la opción "texto en columnas" y finalmente paso una macro que cree para que haga una serie de cálculos. Hasta ahí sin problema, pero ahora me veo con un atasco en lo que quiero conseguir, os cuento haber si me podéis echar una mano: Los cálculos los hace perfectos, pero añade el nombre de las máquinas cada vez que paso la macro. Lo quiero conseguir es que sólo me copie el nombre de las máquinas la primera vez que paso la macro (me gustaría usar el mismo documento para 5 días o así) y después la 2ª, 3ª, 4ª... Vez que paso la macro que solo me haga los cálculos y me los coloque en la hoja "RESUMEN" en la máquina que corresponda. Os paso la macro con la que voy trabajando.
Sub LanzarCalculos2()
Mensaje = MsgBox("Desea borrar los datos existentes", vbQuestion + vbYesNo, "#FreelancerExcel")
If Mensaje = vbYes Then
'Limpiar datos anteriores en la hoja "RESUMEN"
Sheets("RESUMEN").Cells.ClearContents
cRESUMEN = 1
Else
cRESUMEN = Sheets("RESUMEN").Cells(3, Cells.Columns.Count).End(xlToLeft).Column + 2
End If
'Averiguar cual es la última fila de la hoja "DATOS"
uFila = Sheets("DATOS").Cells(Rows.Count, 1).End(xlUp).Row
fRESUMEN = 3
'Bucle para recorrer las filas y buscar las máquinas que tenemos en la columna 3.
For fDATOS = 1 To uFila
If Left(Sheets("DATOS").Cells(fDATOS, 3), 12) = "MOV-RISPACS-" Then
'Poner el nombre en la hoja "RESUMEN"
Sheets("RESUMEN").Cells(fRESUMEN, cRESUMEN) = Sheets("DATOS").Cells(fDATOS, 3)
'Sheets("RESUMEN").Cells(fRESUMEN, cRESUMEN + 1) = "Capacity"
'Localizar datos de esta máquina.
CalcularDatosMaquina2 (fDATOS), (fRESUMEN), (cRESUMEN)
fRESUMEN = fRESUMEN + 7
End If
Next
End Sub
Sub CalcularDatosMaquina2(fDATOS As Long, fRESUMEN As Long, cRESUMEN As Long)
fLog = 0
fVol = 0
fMen = 0
'La primera fila con datos es
fDATOS = fDATOS + 5
'Averiguar las filas de la tabla
uFila = Sheets("DATOS").Cells(fDATOS, 2).End(xlDown).Row
'Número de volumnes
nVolumenes = uFila - fDATOS + 1
'Bucle para recorrer los datos
For f = fDATOS To uFila
'Localizar datos "vol_logs" o "logs"
If Sheets("DATOS").Cells(f, 2) = "vol_logs" Or _
Sheets("DATOS").Cells(f, 2) = "vol_Dlogs" Or _
Sheets("DATOS").Cells(f, 2) = "logs" Then
'MsgBox "vol-logs " & Sheets("DATOS").Cells(f, 6) - Sheets("DATOS").Cells(f, 8)
Sheets("RESUMEN").Cells(fRESUMEN + 1, cRESUMEN) = "LOG"
Sheets("RESUMEN").Cells(fRESUMEN + 1, cRESUMEN + 1) = Sheets("DATOS").Cells(f, 6) - Sheets("DATOS").Cells(f, 8)
'Capturar la fila
fLog = f
End If
'Localizar datos "vol0" o "Vol0"
If Sheets("DATOS").Cells(f, 2) = "vol0" Or _
Sheets("DATOS").Cells(f, 2) = "vol_D000" Or _
Sheets("DATOS").Cells(f, 2) = "Vol0" Then
'MsgBox "vol-logs " & Sheets("DATOS").Cells(f, 6) - Sheets("DATOS").Cells(f, 8)
Sheets("RESUMEN").Cells(fRESUMEN + 2, cRESUMEN) = "VOL0"
Sheets("RESUMEN").Cells(fRESUMEN + 2, cRESUMEN + 1) = Sheets("DATOS").Cells(f, 6) - Sheets("DATOS").Cells(f, 8)
'Capturar la fila
fVol = f
End If
'Localizar datos "mensajes" o "vol_me..."
If Sheets("DATOS").Cells(f, 2) = "mensajes" Or _
Sheets("DATOS").Cells(f, 2) = "vol_Dm..." Or _
Sheets("DATOS").Cells(f, 2) = "vol_me..." Then
'MsgBox "vol-logs " & Sheets("DATOS").Cells(f, 6) - Sheets("DATOS").Cells(f, 8)
Sheets("RESUMEN").Cells(fRESUMEN + 3, cRESUMEN) = "MENSAJES"
Sheets("RESUMEN").Cells(fRESUMEN + 3, cRESUMEN + 1) = Sheets("DATOS").Cells(f, 6) - Sheets("DATOS").Cells(f, 8)
'Capturar la fila
fMen = f
End If
'% Total, sumatorio de la columna 8 de las filas fDATOS a uFila
SumaPorcentajes = SumaPorcentajes + Sheets("DATOS").Cells(f, 10)
'Calcular el FreeSpace
SumaFreeSpace = SumaFreeSpace + Sheets("DATOS").Cells(f, 8)
Next
'Calcular el % TOTAL.
Sheets("RESUMEN").Cells(fRESUMEN + 4, cRESUMEN) = "% TOTAL"
SumaPorcentajes = SumaPorcentajes - Sheets("DATOS").Cells(fLog, 10) - Sheets("DATOS").Cells(fVol, 10) - Sheets("DATOS").Cells(fMen, 10)
Sheets("RESUMEN").Cells(fRESUMEN + 4, cRESUMEN + 1) = SumaPorcentajes / (nVolumenes - 3)
'Calcular FreeSpace
Sheets("RESUMEN").Cells(fRESUMEN + 5, cRESUMEN) = "FreeSpace"
SumaFreeSpace = SumaFreeSpace - Sheets("DATOS").Cells(fLog, 8) - Sheets("DATOS").Cells(fVol, 8) - Sheets("DATOS").Cells(fMen, 8)
Sheets("RESUMEN").Cells(fRESUMEN + 5, cRESUMEN + 1) = SumaFreeSpace
End Sub