Excel - Agregar formula con boton de formulario de vba

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Agregar formula con boton de formulario de vba

Publicado por Juan (2 intervenciones) el 19/04/2019 21:51:54
Soy muy novato con ecxel y a punta de vídeos y foros he podido diseñar un formulario (me siento muy orgullosos de esto :D )para contar las horas de servicio de los bomberos en el cuerpo de bomberos al que pertenezco, he tenido muchos problemas pero buscando he logrado solucionarlos todos, hasta que llegue al siguiente:

Para que me sumara las horas de servicio con entrada y salida en diferente dia, diseñe una formula mutante (de esto tambien me siento muy orgulloso :D ), sacando un pedazo de cada vídeo que veía, la formula es funcional, en el archivo que adjunto esta, lo que no he podido hacer es que cuando yo llene el formulario diseñado en vba, ella se agregue a la casilla asignada, pues cuando los nuevos datos se agregan se crea una nueva fila para que no se sobrescriban los datos, esto hace que se desplace mi formula hacia abajo dejando la nueva casilla sin formula.

la formula es esta: =SI(H7<G7;(1-RESIDUO(ABS(G7-H7);1));H7-G7)


no se si me haya hecho entender, espero que si y pues espero sus preguntas y posibles respuestas. muchas gracias.


Aqui esta el archivo

https://drive.google.com/file/d/1JSFu3i7t5CUCFEvXKRcGOMDgyfqdCLma/view?usp=sharing
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Agregar formula con boton de formulario de vba

Publicado por Antoni Masana (2477 intervenciones) el 23/04/2019 08:21:21
Estos son los cambios en el código del formulario y en negrita lo que he añadido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Private Sub Cuartel_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 And Cuartel = False Then
        Cuartel = True
    Else
       If KeyCode = 13 And Cuartel = True Then
           Cuartel = False
       End If
    End If
End Sub
 
Private Sub Disponible_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 And Disponible = False Then
        Disponible = True
    Else
        If KeyCode = 13 And Disponible = True Then
            Disponible = False
        End If
    End If
End Sub
 
Private Sub evento_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 And evento = False Then
        evento = True
    Else
        If KeyCode = 13 And evento = True Then
            evento = False
        End If
    End If
End Sub
 
Private Sub guardar_Click()
    With Worksheets("conteo horas")
        .Range("a2").EntireRow.Insert
        .Range("a2") = Fecha.Value
        .Range("b2") = Nombre.Value
        .Range("d2") = llegada.Value
        .Range("e2") = salida.Value
 
        .Range("F2").Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-1]<RC[-2],(1-MOD(ABS(RC[-2]-RC[-1]),1)),RC[-1]-RC[-2])"
        Selection.NumberFormat = "h:mm;@"
        If Cuartel.Value = True Then .Range("c2").Value = "Cuartel"
        If Disponible.Value = True Then .Range("c2").Value = "Disponible"
        If evento.Value = True Then .Range("c2").Value = "Emergencia/Evento"
    End With
 
    Nombre = Empty
    Fecha = Empty
    llegada = Empty
    salida = Empty
    Disponible = Empty
    Cuartel = Empty
    evento = Empty
 
    Nombre.SetFocus
End Sub
 
Private Sub salir_Click()
    Unload Me
End Sub
 
Private Sub UserForm_Initialize()
    Nombre.List = Worksheets("total horas").Range("c3:c8").Value
End Sub

Adjunto libro con los cambios:

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar