Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

sumar horas

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

Featured Replies

publicado

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

publicado
  • Autor

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

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
  • Autor

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

Quieres que solamente lo haga en la fila 5 o en todas ?

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

publicado
  • Autor

buenas tardes JSD JSD  te agradezco la ayuda y la paciencia y con esto ya puedo decir que este tema esta cerrado

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.