Macro para sumar horas
Este es mi problema
Yo tengo una hoja de excel ("Sheet1") tal que así:
A B C D
0001 0000007 003 10:34
0001 0000007 005 7:05 <- Estos datos son los que me interesaria
0001 0000007 005 5:12 <- sumar en este caso
0002 0000009 003 23:43
0002 0000007 004 4:44
0002 0000004 001 10:35
Y me he creado una macro para que en otra hoja("TiempoSem"), me sume los datos de la columna DE que en su fila, en la columna A tenga un "0001" y en la C un "005", me los deje en la celda "G6"
Private Sub Actualizar_Click()
Dim i As Long 'declaro la variable i
Application.ScreenUpdating = False 'con esta linea oculto lo que hace la macro
Sheets("Sheet1").Select 'selecciono la hoja de la que saco los datos
finrgo = ActiveSheet. Range("A65536").End(xlUp). Row 'miro cual es el ultimo elemento
' me meto en un bucle para recorrer todas las filas en busca de los elementos deseado
For i = 1 To finrgo
If ((Sheets("Sheet1").Range("A" & i) = "0001") And (Sheets("Sheet1").Range("C" & i) = "005")) Then
'en la variable "TOTAL" voy guardando la suma de los elementos que me interesan
TOTAL = TOTAL + Sheets("Sheet1").Range("D" & i)
End If
Next i
' Vuelco la informacion de TOTAL a la celda que me intenresa
Sheets("TiempoSem").Range("G6") = TOTAL
Application.ScreenUpdating = True 'dejo de ocultar lo que hace la macro
End Sub
El problema ahora mismo son los tipos. Aunque defina la columna DE de Sheet1 como hh:mm o como [h]:mm:ss, al ir actualizando la suma de TOTAL, me lo concatena, así en este caso antes de volcar la información a la celda de la otra hoja, TOTAL = "7:055:12".
Y si cambio la linea
TOTAL = TOTAL + Sheets("Sheet1").Range("D" & i)
por
Range("G6") = Range("G6") + Sheets("Sheet1").Range("M" & i)
me da error de tipos cuando suma.
Si alguien me pudiese echar una mano.
Yo tengo una hoja de excel ("Sheet1") tal que así:
A B C D
0001 0000007 003 10:34
0001 0000007 005 7:05 <- Estos datos son los que me interesaria
0001 0000007 005 5:12 <- sumar en este caso
0002 0000009 003 23:43
0002 0000007 004 4:44
0002 0000004 001 10:35
Y me he creado una macro para que en otra hoja("TiempoSem"), me sume los datos de la columna DE que en su fila, en la columna A tenga un "0001" y en la C un "005", me los deje en la celda "G6"
Private Sub Actualizar_Click()
Dim i As Long 'declaro la variable i
Application.ScreenUpdating = False 'con esta linea oculto lo que hace la macro
Sheets("Sheet1").Select 'selecciono la hoja de la que saco los datos
finrgo = ActiveSheet. Range("A65536").End(xlUp). Row 'miro cual es el ultimo elemento
' me meto en un bucle para recorrer todas las filas en busca de los elementos deseado
For i = 1 To finrgo
If ((Sheets("Sheet1").Range("A" & i) = "0001") And (Sheets("Sheet1").Range("C" & i) = "005")) Then
'en la variable "TOTAL" voy guardando la suma de los elementos que me interesan
TOTAL = TOTAL + Sheets("Sheet1").Range("D" & i)
End If
Next i
' Vuelco la informacion de TOTAL a la celda que me intenresa
Sheets("TiempoSem").Range("G6") = TOTAL
Application.ScreenUpdating = True 'dejo de ocultar lo que hace la macro
End Sub
El problema ahora mismo son los tipos. Aunque defina la columna DE de Sheet1 como hh:mm o como [h]:mm:ss, al ir actualizando la suma de TOTAL, me lo concatena, así en este caso antes de volcar la información a la celda de la otra hoja, TOTAL = "7:055:12".
Y si cambio la linea
TOTAL = TOTAL + Sheets("Sheet1").Range("D" & i)
por
Range("G6") = Range("G6") + Sheets("Sheet1").Range("M" & i)
me da error de tipos cuando suma.
Si alguien me pudiese echar una mano.
1 respuesta
Respuesta de santiagomf
1