Saltar al contenido

Duda y desesperación por Macro al modificar varias celdas y pegar imagen por dicha modificación


Recommended Posts

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

 

Enlace a comentario
Compartir con otras webs

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

 

 

Enlace a comentario
Compartir con otras webs

Cita

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

Pues como no subas tu archivo y te expliques sobre él, me parece que aquí te va a pasar lo mismo.

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

 

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

Te dejo lo que he hecho.

Vale para cualquier fila.

Estoy intentando hacerlo de otra manera para plasmar los grados con exactitud.

 

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim Rango As Range, Resto As Integer
Application.ScreenUpdating = False
Resto = Target.Row Mod 10
If Resto = 4 And Target.Row > 3 And Target.Address Like "$E$*" Then
   '--
   ActiveSheet.Shapes("F" & Target.Row).Delete
   Select Case Target
      Case "":        Exit Sub
      Case Is <= 20:  SavePicture FM_Flechas.fnn.Picture, "imagen.jpg"
      Case Is <= 70:  SavePicture FM_Flechas.fne.Picture, "imagen.jpg"
      Case Is <= 111: SavePicture FM_Flechas.fee.Picture, "imagen.jpg"
      Case Is <= 160: SavePicture FM_Flechas.fse.Picture, "imagen.jpg"
      Case Is <= 201: SavePicture FM_Flechas.fss.Picture, "imagen.jpg"
      Case Is <= 250: SavePicture FM_Flechas.fso.Picture, "imagen.jpg"
      Case Is <= 291: SavePicture FM_Flechas.foo.Picture, "imagen.jpg"
      Case Is <= 340: SavePicture FM_Flechas.fno.Picture, "imagen.jpg"
      Case Is <= 361: SavePicture FM_Flechas.fnn.Picture, "imagen.jpg"
      Case Else:      MsgBox "Azimut fuera de parámetros aceptables"
   End Select
   '--
   ActiveSheet.Pictures.Insert("imagen.jpg").Select 'original
   With Selection.ShapeRange
      Set Rango = Target.Offset(1).Resize(7, 2)
      .Name = "F" & Target.Row
      .LockAspectRatio = msoFalse
      .Top = Rango.Top + 1
      .Left = Rango.Left + 1
      .Width = Rango.Width - 2
      .Height = Rango.Height - 2
   End With
   '--
   ActiveCell.Select
End If
End Sub

 

Enlace a comentario
Compartir con otras webs

Pues fíjate que ha sido más fácil de lo esperado.

He añadido la hoja AZIMUT hoja con una autoforma agrupada, con el nombre GLOBO, que contiene un círculo, 2 líneas a modo de ejes y una flecha con el nombre AZIMUT que se hace rotar en el momento de copiar.

Te dejo un archivo con un ejemplo, la macro quedaría así.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
If Target.Row Mod 10 = 4 And Target.Row > 3 And Target.Address Like "$E$*" Then
   ActiveSheet.Shapes("F" & Target.Row).Delete
   Sheets("AZIMUT").Shapes("AZIMUT").Rotation = Target
   Sheets("AZIMUT").Range("A1:B7").Copy Target.Offset(1).Resize(7, 2)
   ActiveSheet.Shapes("GLOBO").Name = "F" & Target.Row
   Target.Offset(1).Resize(7, 2).Interior.Color = Target.Interior.Color
End If
End Sub

 

Planificación con AZIMUT exacto.xlsm

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

En 20/6/2020 at 11:47 , el_trasgu dijo:

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, eternamente agradecido

Te adjunto el archivo teniendo en cuenta los cambios de página y el botón para eliminar las imágenes, de todas formas, ¿Sabes que en Imprimir\Configuración\Configurar página se puede repetir unas filas en concreto en cada página sin tener que repetirlas en la hoja? ¿Y que en la pestaña Vista\Ventana\Inmovilizar paneles se pueden inmovilizar filas/columnas para que queden fijas cuando te mueves por la hoja?

En cuanto a lo de la pendiente, técnicamente es muy parecido a lo del rumbo, pero no veo claro su representación, sube de nuevo el archivo con un par o tres ejemplos de cual sería tu idea.

Planificación con AZIMUT exacto.xlsm

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

A ver si me aclaro, pendiente de 0% a 100% va de 0º a 90º, la línea iría de horizontal a vertical. ¿Si

Lo que no acabo de ver es lo de la pendiente negativa. Cuando es positiva, cada punto en porcentaje equivale a 0,9º, entiendo que es negativa cuando es superior al 100% y la rotación iría de 270º a 360º, ¿Pero como lo hago si no tengo un valor máximo en %

El ejemplo de pendiente que has puesto es de 400%, ¿Que ángulo de rotación le corresponderÍa 

De paso te propongo eliminar los signos mas-menos, por los colores rojo-azul de la línea. 

 

 

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

Hola.

En 22/6/2020 at 15:49 , el_trasgu dijo:

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%

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

 

Un saludo.

 

Enlace a comentario
Compartir con otras webs

Hace 5 horas, el_trasgu dijo:

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

Ya te pondré comentarios en la macro para ver si lo vas pillando. ?

Enlace a comentario
Compartir con otras webs

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))

 

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

Archivado

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

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola de nuevo a ambos, @daren, tu archivo lleva excesivos datos, que creo no son necesarios para la información final que buscas. Te subo otro archivo, simplificado al máximo, que, si lo he entendido bien, con esta fórmula simplificada: =CONTAR.SI('Casos de Prueba'!I:I;"OK")*('Casos de Prueba'!I1="Resultados Ciclo "&COLUMNA(A5)) se calcularía el primer dato, que se encuentra en la columna I. Copiando la fórmula a la derecha las celdas que necesites, se completaría el rango.  Tu fórmula la coloco en D7, y esta nueva en D9, que como ves (si, repito, he interpretado bien lo que buscas), da los mismos resultados. ---------------------------------------------------------------- En cuanto a: Aquí tienes, en el mismo archivo (Hoja 3) lo que devuelve tu fórmula cuando hay un determinado dato en A1 y en B2. No llego a entender qué es lo que quieres exactamente.  Tal vez con una pequeña explicación de lo que esperas obtener, sea suficiente para poner el hilo a la aguja. ? ----------------------------------------------------------------- En el caso de que falte por añadir o evaluar alguna otra variable o parámetro (en tu primer post hablabas sólo de 'OK' y ahora veo que en el archivo figuran además 'KO' y 'BLOCK'), por favor, intenta emular el ejemplo del archivo que estoy subiendo; añade EXCLUSIVAMENTE esos datos en la hoja allá donde proceda, explicando dónde o cómo deben contarse o sumarse. Mejor trabajar siempre con datos anónimos y reducidos. Desconozco si en tu archivo alguno de esos datos puede considerarse confidencial, pero seguro que no interesan a nadie. Mucho mejor obviarlos. Saludos, Plantilla V3 (B).xlsx
    • buenas noches, quisiera saber si puedo mejorar mi macros que se encuentra en el evento change de la hoja de calculo de Excel, son códigos de cálculos básicos, además si me pudieran ayudar a reducir el código o darme algún tip para reducirlo yo mismo estaría muy agradecido.  de ante mano muchas gracias     Private Sub Worksheet_Change(ByVal Target As Range)     Application.ScreenUpdating = False     Application.Calculation = xlManual     Application.EnableEvents = False              If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then             Sub todo()          Range("E22") = WorksheetFunction.Sum(Range("E4:E21"))     Range("E23") = WorksheetFunction.Sum(Range("E4:E19"))     Range("E24") = WorksheetFunction.Sum(Range("E23") - WorksheetFunction.Sum(Range("I4:I7")))     Range("i22") = WorksheetFunction.Sum(Range("I4:I21"))     Range("I4") = Range("E23") * 0.1     Range("I6") = Range("E23") * 0.0127     Range("I5") = Range("EN10") * Range("EN11")     Range("I7") = Range("E23") * 0.006     Range("I25") = Range("E22") - Range("I22")     Range("I12") = Range("E24") * 0.03     Range("C7") = WorksheetFunction.Sum(Range("EQ8") - (Range("EQ9"))) + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16")     'Range("E7") = WorksheetFunction.Sum(Range("C7") * ((Range("E4") * 0.0077777)))     Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19")     'Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 1.3) * 1.5) * Range("C9")     'Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 0.3)) * (Range("C8"))     Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 1.3) * 1.5) * Range("C9")     Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 0.3)) * (Range("C8"))     Range("E7") = WorksheetFunction.Sum((((Range("E4") / Range("C4")) * 7) / 44) * 1.5) * Range("C7")          End Sub              End If                  Application.Calculation = xlAutomatic     Application.ScreenUpdating = True     Application.EnableEvents = True     End Sub
    • Buenas perdonad la espera adjunto el fichero Excel y explico mas detallado lo que me solicitan: Lo que me solicitan es que esos CP de la pestaña Casos de prueba los cuales tienen formulas para que cuando se copien y peguen junto a sus pasos el CP se va autoincrementando a 1,2,3 etc...., pero si copias ese CP bien solo con el primer paso o con todos sus  pasos y lo insertas entre dos CP no continua con la numeración, como se ve en la foto al hacer eso el CP insertado continua con la numeración CP2 y el de abajo pone también CP2 no se incrementa ni ese ni el valor de CU que hay a la derecha que también es incremental. Necesitaría que continuara con esa numeración aun insertándolo entre medio de 2 tanto el CP como el CU de la derecha. También me solicitan que el campo Ciclo 1 de la pestaña Resumen es auto incremental cuando copias y pegas va sumando 1, pero en las formulas referentes a Ok KO Y bloqueo al copiar y pegar se mantiene la misma formula , la idea es que cuando copies y pegues la fila donde están los ciclos se autoincremente Ciclo a 1,2,3,4 etc... y la formula de los campos OK,KO y Bloqueos se incremente también pasando de la columna I a la J  luego a la k etc... y que en Resultados Ciclo el numero de la formula también se incremente Resultados Ciclo 1 , 2 ,3 etc... que cambie la columna a la vez que el numero de Resultados Ciclo. Gracias por adelantado un saludo. Plantilla v3 Pruebas.xlsx  
    • Saludos amigos espero estén bien Estoy intentando hacer un formulario que me convierta unidades de masa sin embargo  en el mejor de los casos solo he podido lograr la conversión de una unidad a la vez en los TextBox 1, 3, 5, 7, 9, 11 y 13 y cuando lo logro el resultado que se copia  en la celda no se corresponde con el obtenido originalmente en el Textbox del Formulario (frmconv)  ejemplo al convertir 1900 Kg a Lb el resultado en el TextBox1 =4188,78298142 sin embargo al guardar el resultado lo que se copia en la Celda  "F11" es  418.878.298.142,00, adicionalmente el resultado de la conversión no se visualiza inmediatamente por lo que debo de hacer click en los TextBox 1, 3, 5, 7, 9, 11 y 13  para ver el resultado. Mucho les sabre agradecer la ayuda que me puedan brindar. PRUEBA.xlsm
    • Saludos a ambos. Copiar y pegar por sí solas, no tengo el conocimiento de que sirvan como "evento" para actualizar las referencias que buscas hacer, en la forma que lo quieres hacer, ó la fórmula como la quieres hacer. Te recomiendo abrir un tema similar en Macros, es posible que algún Maestro te de alguna idea. Por otro lado, si debe ser con funciones, entonces tendías que interactuar con COLUMNA() y FILA() para que al pegar el destino "sepa" donde está ubicado e intentar cambiar la referencia. =INDIRECTO(CARACTER(COLUMNA()+64)&FILA()) Algo como eso se podría usar para obtener el código ASCII de la letra de la columna (donde 65 es el código para “A”), y FILA() devuelve el número de la fila. La función CARACTER() convierte el código ASCII en una letra. Luego, INDIRECTO() toma la cadena resultante (por ejemplo, “A1”, “B2”, etc.) y la usa como una referencia de celda. En ese caso, una posible idea de editar tu ejemplo sería: =SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&"1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")); 0)   Enfatizo que es una idea, es muy probable que haya que editar. Así como esta su tema, la recomendación del maestro toma relevancia porque especular o deducir no es lo adecuado para intentar ayudar en este tipo de consultas. Por esta causa de mi parte por ejemplo no puedo aportar algo adicional.
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.