Jump to content

el_trasgu

Members
  • Content Count

    23
  • Joined

  • Last visited

Posts posted by el_trasgu

  1. Hace 6 horas, Antoni dijo:

    ¡Jo..!, no acierto ni una. 

    Ahora creo que si.

    Planificación Formulario Final II.xlsm 265.61 kB · 1 descarga

    Increible Antoni, ahora si, funciona todo y funciona a la perfección. Es una pasada. Muchísimas gracias.

    Por fin y solo gracias a ti, veo luz en mi proyecto. Eso si, también tengo que decir que salvo lo de igualar a cero la función del tiempo, no veo otro cambio. El caso es que sigo sin entender como funciona.

    Lo dicho, muchísimas graciasssssss

  2. Hola Antoni, muchísimas gracias por todo tu trabajo, al final, practicamente me lo has hecho tu entero.

    Sólo detecto dos errores.

    En el rango de celdas I9:K13, donde va la distancia Total, iría sumando la distancia parcial del tramo actual, más la distancia acumulada de los anteriores.

    o sea: en i9:k13  sería el mismo resultado de i4:k8, pues es el primer punto.

    en i19:k23 iría la distancia del tramo actual i14:k18 + la distancia acuamulada del anterior i9:k13

    En i29:k28, iría la distancia del tramo actual i24:k28 + la distancia acumulada de los anteriores i19:k23

    Con el tiempo, pasaría lo mismo. En las celdas l9:k13, irían los tiempos del tramo actual más los acumulados de los anteriores

     

    Me da cosa corregir errores, pero lamentablemente no entiendo el código, y no sé donde podría modificar la fórmula, lo siento.

    Te subo el archivo con mis últimas icorporaciones sumadas a todos tus trabajos

    Un saludo y muchísimas gracias

    Planificación Formulario Final II.xlsm

  3. Hace 17 horas, Antoni dijo:

    He eliminado todas las fórmulas y formatos condicionales a partir de la columna E y he incluido las acciones en las macros.

    Esto te permitirá borrar/copiar la información de entrada sin el peligro de borrar las fórmulas y los formatos.

    Abre el adjunto y pulsa sobre el botón Calcular, a ver que te parece.

     

    Planificación con rumbo, tiempo y pendiente-TOTAL.xlsm 142.97 kB · 2 descargas

    Fantástico Antoni, muchísimas gracias

    Todo a la perfección, tal como esperaba e imaginaba. una pasada. Increibleeee

  4. Hola Antoni, te vuelvo a agradecer todo tu tiempo. Si te pasas alguna vez por Asturias y te gusta la montaña, tienes guía gratis para realizar alguna ruta de montaña

    Te paso la hoja con la que realizo los cálculos del tiempo

    Cálculos de tiempo.

    Aunque es un dato que requiere mucho de nuestra experiencia, utilizamos las siguientes reglas:

    •Una persona sola o grupo entrenado recorre en una hora 500 m de desnivel o 5 Km/h en distancia reducida.

    •Un grupo normal recorre 400 m de desnivel la hora o 4 Km/h en Distancia reducida.

    •Un grupo flojo recorre 300m de desnivel o 3 km/h

    El Cálculo lo realizamos de la siguiente forma:

    •1º Averiguamos los Metros de desnivel y los Km. en Distancia reducida (Dr) según la regla anterior.

    •2º Sumamos la cantidad mayor más la mitad del menor.

    •3º En caso de descenso al tiempo total se le resta un tercio.

    La estimación del tiempo es conveniente hacerla por cada una de las líneas directrices. Normalmente, se añade al tiempo obtenido, un 10% por paradas y un 10% seguridad e imprevistos.

     

    Ejemplo:                    Grupo normal                    Desnivel: 800 m.                        Dr.: 12 Km.                                     

    Tiempo en desnivel : 2 horas

    Tiempo en Dr.: 3 horas

     

    Cálculo de tiempo = 3 + 1 = 4 horas

    En caso de bajada:

    Tiempo = Tiempo subida –1/3 de tiempo subida 4 horas x 2 / 3 = 2 ́40 horas

    Cálculo de tiempo rutas.xlsx

  5. Hace 22 horas, Antoni dijo:

    He corregido las fórmulas de las columnas G9, G19, G29, G39,......, que a mi modo de ver estaban equivocadas.

    Por ejemplo : 

    G19=SI(G14>0;SI(G14>G4;G14-G4;SI(G14>G4;G4-G14;SI(G14=G4;0;"")));"")

    la he cambiado por:

    G19=SI(G14>0;SI(G14>G4;G14-G4;G4-G14);"")

    El tema de la pendiente era un problema conceptual por mi parte, al considerar que la subida/bajada era en relación al punto siguiente y no al anterior.  Ahora al ver que la altura inicial va en la celda A8, lo he visto claro, o al menos eso creo.

    A ver si es esto.

    Has de tener en cuenta que solo se recalcula la representación de la pendiente en la fila que has hecho el cambio.

    Solo eliminando las cabeceras intercaladas se podría articular el recalculo hasta el final.

    Planificación con AZIMUT y pendiente - copia (1).xlsm 208.53 kB · 2 descargas

    ¡¡¡ Perfecto !!!
     

    Muchísimas gracias Antoni, funciona a la perfección, justo como había deseado.

    Un trabajo incrible, alucinante. Sigo sin entender el código aún estando comentado, pero es lo que tiene no tener ni idea.

    Vaya, estoy alucinado, es una pasada. Lo dicho, muchísimos e inestimables agradecimientos.

  6. Hola a tod@s

    Tengo una hoja de excel en la que introduzco los datos de una ruta de montaña. Esta hoja la he conseguido tener, gracias al inestimable e imprescindible trabajo de Antoni.

    Ahora la duda, teniendo esa hoja, es la de poder calcular los tiempos de ruta.

    Tengo todas las fórmulas para el cálculo de dichos tiempos metidos en la hoja, en un apartado dentro del código, lo he marcado como:

    '-------------------Inicio

    '-------------------fin

    Esas fórmulas son las que me calculan los tiempos de cada tramo de la ruta. Pero yo las tengo para el cálculo de punto a punto de forma individual, y descnozco como se debería de hacer para que esas fórmulas se calculen en cada uno de los tramos y se agregue al rango de celdas L3:N8, L13:N18, L23:N28, L33:N38, etc.

    En un repaso, la explicación sería:

    El ritmo de ascenso, en metros hora, que se le supone al grupo, lo ponemos en la hoja2, en la celda A18

    El ritmo de marcha del grupo, en kilómetros hora, lo metemos en la hoja2, celda B18

    Introducimos un tiemo estimado para paradas, descansos o imprevistos, en la celda C18 de la hoja2. este valor será un porcentaje

    Con esos datos anteriores los cálculos serían los siguientes:

    Si el tramo es de ascenso:

    Multiplicamos el desnivel por 60 y lo dividimos entre la velocidad de ascenso

    Multiplicamos la distancia por 60 y los dividimos entre la velocidad de marcha

    Cogemos los valores máximos y mínimos de los cálculos anteriores y los almacenmos en variables

    tomamos el valor máximo de las variables y lo sumamos al valor mínimo de las variables dividido entre 2

    Si el tramo es en descenso:

    Hacemos los mismos cálculos hasta llegar al último, en éste caso, multiplicamos dos tercios por el valor máximo de las variables y lo sumamos al valor mínimo de las variables dividido entre dos

    En el caso de terrenos llano:

    Multiplicamos la distancia por 60 y lo dividimos entre la velocidad de tramo

    Finalmente, sumamos lo obtenido en cada cálculo y le sumamos el porcentaje de la celda C18

     

    Me lo podría mirar alguien ?

    Muchas gracias

    Planificación con AZIMUT y pendiente - Form.xlsm

  7. Hola Antoni, me sorprendes por la dedicación, ya no se como agradecerlo

    Varias cosas, aunque me sabe mal mencionar los errores que encuentro, pues es como buscar los fallos.

    La verdad es que siento decir que el tema de la pendiente no va muy fino, pues no se adapta a la información que muestra la celda con el porcentaje de la pendiente (Fila O), Veo que llevas el dato a la hoja 2 celda A13 y luego realizas las fórmulas. No se si el error estará en el mismo cálculo de esas fórmulas, pero a veces me pone bajada cuando en realidad es subida y viceversa.

    Observo otro error en la celda G39, aún teniendo la fórmula bien metida como en el resto, no hace los cálculos, está metida pero no calcula, no se si es que estará afectada por algún código de la programación.

    Para calcular la altura del primer punto, la altura la meto en la celda A8.

    El tema de la brújula con los grados me tiene alucinado, es una pasada como funciona.

    Planificación con AZIMUT y pendiente - copia.xlsm

  8. Hace 3 horas, qwerty123 dijo:

    Hola.

    Por si sirve de algo, para calcular el ángulo en función de la pendiente:    =GRADOS(ATAN(pendiente/100))

     

    Un saludo.

     

    Gracias qwerty123

    En la hoja de excel la fórmula que empleo pasar la pendiente a porcentaje, se basa en los metros de ascenso y la distancia:

    Porcentaje de Pendiente = Altura / Base * 100

    Para calcular el ángulo de la pendiente con la fórmula que has puesto, la cosa se complica, supongo que primero habría que calcular los grados de la misma, creo que sería la siguiente fórmula:

    Pendiente en Grados = ArcTangente (Altura / Base)

    Una vez obtenidos los grados de la pendiente, se pasaría a utilizar la que has comentado:

    Angulo de Pendiente = GRADOS(ATAN(pendiente/100))

     

  9. Muchas gracias Antoni

    Te puedo decir que yo me puse varias veces con tu código a ver si logro ponerle lógica, y no hay manera. No entiendo nada.

    No entiendo de donde sacas la circunferencia ni la flecha.

    No entiendo como coges los datos de la hoja

    Bueno, de un código como el mio que tenía decenas de líneas y no funionaba a uno como el tuyo de cuatro líneas hay una sustancial diferencia, jeje

    Pues lo dicho, que muchísimas gracias

  10. Hola Antoni

    Cuando hablo de pendiente negativa, es por el tramo con relación al punto anterior. O sea:

    Si G14:H18, es mayor que G4:H8, la pendiente será de subida.

    Si G14:H18, es menor que G4:H8, la pendiente será de bajada.

    La pendiente en porcentaje no tiene una transferencia directa a grados. Por eso resulta bantante complicado de calcular, la regla de 3 no sirve. Además, tenemos la impresión de que una cuesta con una inclinación del 100% sería vertical, cuando en realidad casi equivale a un ángulo de 45 grados. Para tener una pendiente vertical, nos tendríamos que ir a un 1000%.

    Como imagen para el apartado de la pendiente, no se si sería posible, en lugar de una esfera como en el caso de la dirección, poner un simple ángulo y que se vaya digujando la recta en función del porcentaje.

    gradient8.png

    400px-Slope_quadrant.svg.png

    Pendientes porcentaje y grados.jpg

  11. Pues más o menos la idea sería la representada en el ejemplo subido ahora. En la celda O4 aparece el porcentaje de la pendiente de ese tramo, y en la celda Q4, una representación gráfico que como sería esa pendiente con un signo + si la pendiente es positiva, y un signo - si la pendiente es negativa. Como puedes ver en la hoja, en excel no me resulta difícil realizar los cálculos, pero en vba, estoy totalmente perdido.

    Por cierto, muchísimas gracias.

    Sobre lo de inmovilizar paneles si lo sabía, sobre el tema de repetir filas, ni idea.

    Generalmente la intención es rellenar las diferentes hojas con los puntos de paso marcados, sobre todo cruces, y luego imprimirlas para llevarlas con uno a la ruta ante posible fallo del GPS

     

    Planificación con AZIMUT exacto(2).xlsm

  12. Vaya, muchísimas y reiteradas gracias a los dos por vuestra inestimable ayuda

    Antoni, tu código me resulta totalmente incomprensible, tanto, que me resulta imposible modificarlo.

    En él me encuentro con algún problemilla. Lo de la flecha es un puntazo. Pero en la celda E34 deja de funcionar. De ser posible, debería de seguir pudiendo agregar azimut hasta la celda E660.


    Otro pequeño problema, es la limpieza de los datos, en mi hoja había añadido un botón que limpiaba las imágenes, pero en tu caso no logro borrarlas.

     

    Pues lo dicho, muchísimas gracias a los dos, eternamiente agradecido

  13. Hace 2 minutos , silver_axe007 dijo:

    Espero te ayude lo coversado 

    Adjun to correccion

    
     If (azi >= 0 And azi <= 20) Then
            rumbo = "nn"
            SavePicture FM_Flechas.fnn.Picture, "imagen.jpg"
            ElseIf (azi >= 21 And azi <= 69) Then
                 SavePicture FM_Flechas.fne.Picture, "imagen.jpg"
                ElseIf (azi >= 70 And azi <= 110) Then
                    SavePicture FM_Flechas.fee.Picture, "imagen.jpg"
                    ElseIf (azi >= 111 And azi <= 159) Then
                        SavePicture FM_Flechas.fse.Picture, "imagen.jpg"
                        ElseIf (azi >= 160 And azi <= 200) Then
                            SavePicture FM_Flechas.fss.Picture, "imagen.jpg"
                            ElseIf (azi >= 201 And azi <= 249) Then
                                SavePicture FM_Flechas.fso.Picture, "imagen.jpg"
                                ElseIf (azi >= 250 And azi <= 290) Then
                                    SavePicture FM_Flechas.foo.Picture, "imagen.jpg"
                                    ElseIf (azi >= 291 And azi <= 339) Then
                                        SavePicture FM_Flechas.fno.Picture, "imagen.jpg"
                                        ElseIf (azi >= 340 And azi <= 360) Then
                                           SavePicture FM_Flechas.fnn.Picture, "imagen.jpg"
                                            Else
                                                MsgBox "Azimut fuera de parámetros aceptables"
                                            End If

     

    Muchísimas gracias Andrés, me has salvado la vida.

    Llevaba un tiempo comiéndome la cabeza sin encontrar una solución y en diez minutos tú lo has resuelto.

    Eres un crack, lo dicho, eternos agradecimientos

  14. En la columna "Azimut", en el apartado superior que corresponde al rango E4:E6, se supone que hay que meter un rumbo, ese rumbo se obtiene de un mapa físico o bien de un mapa virtual tipo google maps o BaseCamp, pero hay que meterlo a mano, y estará entre 0 y 360 grados
     

    Una vez introducida la dirección, mediante unos If Then, relaciono esos grados a unas direcciones geográficas tipo norte, sur, este y oeste (NN, NE, EE, SE, SS, SO, OO, NO)

    En un formulario denominado FM_Flechas, tengo 8 imágenes que apuntan a esas 8 direcciones y a las que denomino con la dirección precedida de la f de foto (fnn, fne .... )

    Al introducir la dirección, se debería de buscar la flecha correspondiente a esa dirección por mediación de la variable rumbo, que será la que la tenga una vez pasados los if y pegar la flecha en el rango E7:E13

    Planificación_Final.xlsm

  15. Pues ya he solucionado la parte 1

    En lugar de utilizar el sigueinte código:

    If Application.Intersect(Target, Range("E4")) Is Nothing Then
        Exit Sub
    Else

    Utilizo el siguiente:

    If Target.Address = "$E$4" Then

       código a ejecutar

     elseif Target.Address = "$E$14" Then

       código a ejecutar

     elseif ...

    end if

     

    Ahora sólo me faltaría la parte de utilizar la variable rumbo para elegir la flecha

     

    Un saludo

     

     

  16. Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim KeyCells As Range
    Dim rumbo As String
    
    If Application.Intersect(Target, Range("E4")) Is Nothing Then
        Exit Sub
    Else
    
       Set KeyCells = Range("E4")
       Azi = KeyCells
    
        If (Azi >= 0 And Azi <= 20) Then
            rumbo = "nn"
            ElseIf (Azi >= 21 And Azi <= 69) Then
                rumbo = "ne"
                ElseIf (Azi >= 70 And Azi <= 110) Then
                    rumbo = "ee"
                    ElseIf (Azi >= 111 And Azi <= 159) Then
                        rumbo = "se"
                        ElseIf (Azi >= 160 And Azi <= 200) Then
                            rumbo = "ss"
                            ElseIf (Azi >= 201 And Azi <= 249) Then
                                rumbo = "so"
                                ElseIf (Azi >= 250 And Azi <= 290) Then
                                    rumbo = "oo"
                                    ElseIf (Azi >= 291 And Azi <= 339) Then
                                        rumbo = "no"
                                        ElseIf (Azi >= 340 And Azi <= 360) Then
                                            rumbo = "nn"
                                            Else
                                                MsgBox "Azimut fuera de parámetros aceptables"
                                            End If
    
       'Imagen-----------------
       
       Range("E7:f13").Select
       Range("E7:f13").Activate
       
       Dim ruta As String
       Dim frm As String
       Dim f As String
       Dim foto As String
       Dim rfo As String
       Dim rfoto As String
       Dim salvar
    
       f = "f"
       frm = "FM_Flechas"
       rfo = f & rumbo
       rfoto = f & rumbo & ".jpg"
       ruta = frm & "." & f & rumbo
       ruta1 = frm & "." & f & rumbo & ".jpg"
       salvar = "imagen.jpg"
    
       SavePicture FM_Flechas.fnn.Picture, "imagen.jpg" ' original
       Worksheets("Hoja1").Pictures.Insert("imagen.jpg").Select 'original
    
                With Selection.ShapeRange
                    .LockAspectRatio = msoFalse
                    .Top = Range("E7").Top + 1
                    .Left = Range("E7").Left + 1
                    .Width = Range("E7:f13").Width - 1
                    .Height = Range("E7:f13").Height - 2
                End With
                
    
    End If
    End Sub

    Hola a tod@s

    Llevo unos días dándole vueltas al tema, he realizado la pregunta en otras páginas y foros, pero no he tenido suerte y no han sido respondidas, así que ahora acudo a vosotr@s

    Para empezar, cabe destacar que no tengo ni idea de programación, y que todo lo que hago, es a base de copiar códigos e intentar adaptarlos a lo que pretendo, de ahí que podáis ver auténticas burradas en mis códigos o que de mil vueltas para llegar a un sitio que con dos pasos se hubiera conseguido de mejor forma

    Y ahora al grano

    --------------Parte 1

    Tengo el anterior código, para empezar deciros que soy guia de montaña, y estoy intentado realizar una hoja de excel que automatice una planificación de una ruta.

    En el código, lo que pretendo, es que al cambiar distintas celdas, se ejecuten distintas macros, cosa que por ahora no se hacer, pues el código solo se ejecuta si cambio una sola celda, en concreto la E4, pegando una imagen en el rango E7:E13.

    Me gustaría que una vez pegaa la imagen en ese rango, si ahora modifico o introduzco un nuevo dato en la celda E14, se pegue otra imagen en el rango E17:E23

    -----------------Parte 2

    Bien, en el código he conseguido que al cambiar el valor de la celda E4, me pegue la imagen "fnn" en el rango E7:E13. Pero lo que deseo es que en lugar de ser la imagen "fnn", sea la imagen que me arroje la concatenación de las variables f (f = "f") y rumbro (rumbo = al valor obtenido en función de la cifra introducida en la celda E4)

    Las imágenes las tengo en un formulario denominado FM_Flechas, contiene 8 imágenes (fnn, fne, fee, fse, fss, fso. foo, fno) y corresponden a 8 direcciones en función de los grados.

    He intentado el siguiente código, que no funciona, donde ruta sería la concatenación de las variables: (frm = FM_Flechas) & "." &(f = "f")
       'SavePicture ruta.Picture, "imagen.jpg"

    He intentado el siguiente código, que no funciona, donde ruta sería la concatenación de las variables: (frm = FM_Flechas) & "." &(f = "f") y salvar = "imagen.jpg"

       'SavePicture ruta, salvar

     

    He realizado decenas de moficaciones y siempre me arroja diferentes errores, unas veces poniendo partes del código en azul, otras dando el error de "no coinciden los tipos" y poniendo líneas en amarillo. Otras simplemente no realizada nada.

    Rogaría alguna ayuda porfisss. Eso sí, recordar que no tengo conocimientos de programación, y si me lo complías mucho, quizás no me entere de loq ue intentéis decirme o explicarme.

    Un saludo y muchas gracias

     

×
×
  • Create New...

Important Information

Privacy Policy