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.

×
×
  • 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.