Saltar al contenido

Recommended Posts

publicado

buenas tardes, tengo esta macro que funciona pero me gustaria mejorarla integrando la siguiente condición siguiente: si es >= "17:00" sumar y dejar el resultado en la celda p4, me podrían ayudar porfavor

de ante mano gracias

Sub FuncSum()

Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False

minuendo = Range("C5").Value
minuendo2 = Range("E5").Value
minuendo3 = Range("G5").Value
minuendo4 = Range("I5").Value
minuendo5 = Range("K5").Value
minuendo6 = Range("M5").Value
minuendo7 = Range("O5").Value
sustraendo = Range("Q4").Value
Range("Q5").Value = Application.WorksheetFunction.Sum((minuendo - sustraendo), (minuendo3 - sustraendo), (minuendo2 - sustraendo), (minuendo4 - sustraendo), (minuendo5 - sustraendo), (minuendo6 - sustraendo), (minuendo7 - sustraendo))
suma = Range("B5").Value
suma2 = Range("D5").Value
suma3 = Range("F5").Value
suma4 = Range("H5").Value
suma5 = Range("J5").Value
suma6 = Range("L5").Value
suma7 = Range("N5").Value
Producto = Range("P4").Value
Range("P5").Value = Application.WorksheetFunction.Sum((Producto - suma), (Producto - suma2), (Producto - suma3), (Producto - suma4), (Producto - suma5), (Producto - suma6), (Producto - suma7))


DisplayAlerts = True
Application.ScreenUpdating = True
End SubLibro2.xlsx

Libro2.xlsm

publicado

Creo que necesitas explicarte mejor, pon un ejemplo de lo que tienes y como tiene que quedar en ambas situaciones

publicado

Buenas tardes, primero que todo les doy las gracias por tenerme tanta paciencia y una disculpa por el retraso. Estoy buscando que la macro haga lo siguiente:

Que recorra el rango de B5:O5, mientras lo recorre el rango tiene que verificar cada celda para ver si cumple una condición, si cumple la condición que vaya sumando los datos y dejarlos en una celda y si no la cumple que siga hasta que termine el rango. (estoy trabajando con horas)

He estado buscando en internet y he conseguido una macro que realiza el recorrido y que suma, pero no se como incluir la condición.

espero haber explicado bien lo que necesito y gracias de ante mano  por toda la ayuda

Libro1.xlsm

  • Solution
publicado

image.thumb.gif.a2a205016414efc0907bd6f6bd80bffa.gif

No me queda claro te dejo una prueba a ver si es esto, teniendo en cuenta la jornada laboral de 40 horas semanales si calculamos la primera fila daría como resultado 40 hora y 37 extra, de no ser esto sube un ejemplo de como debería quedar en la primera fila

publicado

gracias por tu pronta respuesta JSD JSD si esto es lo que necesitaba .

gracias por tu ayuda y si es posible podrias subir el archivo o pegar la macro porfavor

gracias

 

publicado
Private Sub CommandButton1_Click()
    With Hoja1
        For x = 5 To .Range("B" & Rows.Count).End(xlUp).Row
            totalHoras = 0
            horaEntradaAnterior = .Cells(x, 2)
    
            For i = 0 To 6
                If .Cells(x, 2 + i * 2) <> "" And .Cells(x, 3 + i * 2) <> "" Then
                    horaEntradaAnterior = .Cells(x, 2 + i * 2)
                    horaSalidaActual = .Cells(x, 3 + i * 2)
                    If horaSalidaActual < horaEntradaAnterior Then
                        totalHoras = totalHoras + 24 + (Hour(horaSalidaActual) _
                                                  - Hour(horaEntradaAnterior))
                    Else
                        totalHoras = totalHoras + (horaSalidaActual _
                                                - horaEntradaAnterior)
                    End If
                End If
            Next i
    
            If totalHoras > 40 Then
                .Cells(x, 16) = 40
                .Cells(x, 17) = totalHoras - 40
            Else
                .Cells(x, 16) = totalHoras
                .Cells(x, 17) = 0
            End If
        Next x
    End With
End Sub

 

horas.xlsm

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.