Saltar al contenido

ERROR EN CODIGO MACRO


Recommended Posts

publicado

Estimados buenas tardes.

Agradecería su colaboración con el siguiente caso

Tengo una ListBox en la hoja "Distribución" ( se activa con clic en la celda K:2) que trae la información de la hoja "Transformación" celdas "L5:S102" estas celdas contiene formulas.

Al momento de activar el ListBox, selecionar y dar doble clic para que la información baje al excel no envia la información de la linea selecionada.

 

Realice una prueba eliminando las formulas de la hoja "Transformación" celdas "L5:S102" ahí me funciona la ListBox.

En resume el inconveniente de selección se da al momento de colocar formulas en la hoja "Transformación" celdas "L5:S102"

Por favor su ayuda para solucionar este inconveniente.

Cualquier duda quedo pendiente.

Gracias.

Estos son los link del archivo y video.

https://elordeno-my.sharepoint.com/:v:/p/rcalderon/ESkRUWIvOMFPvkQqx7dZE2kB0Z5SGF9jezX8hhXQWgV11Q?e=laDetW

https://elordeno-my.sharepoint.com/:x:/p/rcalderon/EYzr10WC18lMhPh3vGzJoasBiV1cYEIxzMRubVcZaauTnQ?e=zCuQl0

 

 

 

 

 

publicado

Hi.

Agradezco el saludo y leyendo tu consulta tengo que ser honesto contigo al decirte que el VBA no es mi "fuerte" y tengo como regla no dar clic a enlaces externos. No dudo de la seguridad de tus vínculos, no me mal entiendas, es más cosa mía.

Aún así podemos intentar algo considerando lo que describes.  El problema que estás experimentando con tu ListBox podría ser por la forma en que estás configurando el rango de origen de datos. Cuando utilizas fórmulas en ese rango es posible que no se esté "capturando" correctamente la información de la línea seleccionada.

Te puedo sugerir que utilices un enfoque diferente para configurar el origen de datos del ListBox. En lugar de hacer referencia directamente al rango de celdas que contienen fórmulas en la hoja Transformación, puedes utilizar un rango de valores dinámicos utilizando una tabla o un rango con nombre en Excel.

En la hoja "Transformación", selecciona el rango de celdas "L5:S102" que contiene las fórmulas y dale un nombre o crea una tabla. En el editor VBA, encuentra el código correspondiente al evento DobleClic del ListBox en la hoja "Distribución". y en lugar de hacer referencia directamente al rango de celdas, utiliza el nombre que asignaste al rango.

Algo así:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim selectedValue As String
    selectedValue = Me.ListBox1.Value
    
    ' Asegúrate de reemplazar "DatosTransformacion" con el nombre que asignaste al rango en la hoja "Transformación"
    Me.Range("A1").Value = Worksheets("Transformación").Range("DatosTransformacion").Rows(Me.ListBox1.ListIndex + 5).Value
End Sub

 

Con estos pasos si todo sale bien, deberías poder capturar la información de la línea seleccionada incluso cuando las celdas contengan fórmulas en la hoja.

Veo que llamaste al Maestro Antoni, he visto sus participaciones y son geniales así que si le es posible es probable que aporte algo de "luz" a tu consulta.

Como recomendación, intenta subir un libro de ejemplo. No necesariamente tu libro de trabajo, un ejemplo sencillo con la problemática donde seguro encontrará más participación porque es más fácil de interpretar la ayuda que se busca.

Saludines.

Estoy al pendiente de tu avance y si hay algo en lo que pueda participar con gusto lo haré.

 

publicado

@Israel Cassales

Buenas tardes.

 

Agradezco inmensamente tu ayuda, si me puedes ayudar con el cambio en el archivo le agradezco.

El archivo es un poco pesado por lo que envió el siguiente link.

Muchas gracias.

Archivo

https://elordeno-my.sharepoint.com/:x:/p/rcalderon/EYzr10WC18lMhPh3vGzJoasBiV1cYEIxzMRubVcZaauTnQ?e=Y6S3Ez

Video

https://elordeno-my.sharepoint.com/:v:/p/rcalderon/ESkRUWIvOMFPvkQqx7dZE2kB0Z5SGF9jezX8hhXQWgV11Q?e=RM3zK8

 

publicado

Lamento si tengo que ser firme en mi preferencia de no dar "clic" a enlaces externos, por favor no me lo tomes a mal. Entiendo lo práctico que sería revisar o modificar el libro original pero también tenemos la opción de que repliques un pequeño ejemplo en un libro que puedas subir aquí al foro.

 

publicado

Dame oportunidad de revisar si es posible encontrar algo que te ayude.

Mientras del error que marcaste puedes intentar utilizar directamente objeto Worksheets para referenciar la hoja y luego utilizar la propiedad Range para especificar el rango de celdas.

 

Algo así.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim selectedValue As String
    Dim targetSheet As Worksheet
    Dim targetRange As Range
    
    selectedValue = Me.ListBox1.Value
    Set targetSheet = Worksheets("Transformación")
    
     Set targetRange = targetSheet.Range("DatosTransformacion").Rows(Me.ListBox1.ListIndex + 5)
    
     targetSheet.Range("A1").Value = targetRange.Value
End Sub

Recuerda que es un ejemplo que seguro debes personalizar.

Si hay algo que pueda aportar más con gusto lo dejo por aquí, de momento la consulta sigue abierta para posibles aportaciones adicionales.

publicado

Hola @Ruben_sk8

Aplicando los ejemplos que te mande en este tiempo que le he invertido no he llegado al resultado que necesitas, de momento no tengo otra idea que aportarte y me parece correcto compartir eso contigo.

Como me ha parecido interesante seguiré haciendo pruebas individuales. Por otro lado ya que compartiste el libro con el ejemplo y al seguir la consulta abierta aún hay opción de que algún Maestro aporte algo adicional y aprendemos los dos.

De momento mi participación quedará en pausa.

Saludines.

  • 2 weeks later...

Archivado

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

  • 109 ¿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
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
    • Hola, tal cual se plantea, solamente con macros (VBA); en todo caso, hacerlo a mano o con "CTRL + ;". Saludos.
    • Mil gracias, en verdad todo apoyo es super agradecido,   Su aporte y comentarios valen mucho para in servidor, y tiene razon esperare a conocer si alguien comparte alguna otra manera,   Gracias!!! (y)
  • 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.