Saltar al contenido

RowSource dinámico a la derecha (al insertar columnas)


Recommended Posts

publicado

Buenas noches.

Maestros quisiera saber si se puede volver dinámico el rango a la derecha la propiedad RowSource de un ListBox. Es que tengo una base de datos a la cual de vez en cuando se le agregan columnas nuevas y quisiera se ampliara la selección a la derecha como lo hace hacia abajo. Ejemplo 

ListBox1.RowSource = "A4:End(xlToRight)" & Range("A3").End(xlDown).Row

Algo así, no se si se podrá.

publicado

Hola a ambos!

En 3/3/2021 at 17:07 , Jezreel dijo:

Ejemplo 


ListBox1.RowSource = "A4:End(xlToRight)" & Range("A3").End(xlDown).Row

Algo así, no se si se podrá.

Mientras subes una pequeña muestra y asumiendo que lo que deseas es obtener el rango actual

Puedes probar así

ListBox1.RowSource = Range("A4").CurrentRegion.Address(, , , 1)

 

Saludos!

publicado
Hace 25 minutos , Gerson Pineda dijo:

ListBox1.RowSource = Range("A4").CurrentRegion.Address(, , , 1)

Amigo muchisimas  gracias por tu pronta respuesta. Funciona excelente, pero hay un detalle! que al usar esa propiedad ya no me reconoce el ColumnHeads y de verdad que lo necesito porque precisamente al ir incluyendo columnas con su respectiva cabecera quisiera evitar el uso de Labels para las cabeceras del Listbox. Hay alguna manera de solucionar eso?

image.thumb.png.08f9598325b77e305ab88b839a898914.png

 Por cierto lo de Azufre es solo una prueba jajajaja

publicado

Solo es mover una tecla, mira

Range("A1").CurrentRegion.Offset(1).Address(, , , 1)

 

Hace 1 hora, Jezreel dijo:

 Por cierto lo de Azufre es solo una prueba jajajaja

Pues ten cuidado :lol:

 

Saludos!

publicado
Hace 41 minutos , Gerson Pineda dijo:

Range("A1").CurrentRegion.Offset(1).Address(, , , 1)

Que grande Maestro... Funciona perfecto. Muchas Gracias.

Una ultima cosa por favor: resulta que en mi código tengo la necesidad de modificar un dato en 3 hojas. El dato lo tomo al seleccionar un item del ListBox, y al ejecutar el evento "Click" me modifica bien el dato solo en la Hoja "Rubros", pero en las hojas "Ayuda1eraVez" y "AyudaAdicional" no se modifica, creo que porque se desencadena el evento Click y Change del ListBox. Se que hay que interrumpir esos eventos para que se ejecute bien la macro y pueda modificar el dato en las otras 2 hojas, pero de verdad no se como interrumpirlo y volver a retomar el ListBox.RowSource = MiRango.Address. Dejo acá el código:

 

Sub BotonInactivar_Click()
Dim Fila As Integer, Fila2 As Integer, Fila3 As Integer, Final As Integer, Final2 As Integer, Final3 As Integer
On Error Resume Next
If ListBox1.ListIndex = -1 Then
Set MiRango = Empty
MsgBox "Debe seleccionar un Rubro a Inactivar", vbExclamation
    Exit Sub
    End If
Sheets("Rubros").Select
Final = Hoja3.Cells(Rows.Count, "B").End(xlUp).Row
    For Fila = 2 To Final
    If TextBox8.Text = Hoja3.Cells(Fila, 2) Then
        Hoja3.Cells(Fila, 1) = "Inactivo"
        Exit For
    Else
    End If
    Next
Sheets("AyudaAdicional").Select
Final3 = Hoja11.Cells(Rows.Count, "B").End(xlUp).Row
    For Fila3 = 2 To Final3
    If TextBox8.Text = Hoja11.Cells(Fila, 2) Then
        Hoja11.Cells(Fila, 1) = "Inactivo"
    Exit For
    Else
    End If
    Next
Call ElimInacAA
Sheets("Ayuda1eraVez").Select
        Final2 = Hoja10.Cells(Rows.Count, "B").End(xlUp).Row
        For Fila2 = 2 To Final2
        If TextBox8.Text = Hoja10.Cells(Fila, 2) Then
        Hoja10.Cells(Fila, 1) = "Inactivo"
    Exit For
    Else
    End If
    Next
Call ElimInacA1
End Sub

 

publicado

Partiendo de que modificamos ARROZ con los datos más abajo visibles, muestra como debería quedar en cada una de las hojas.

GIF.gif

publicado
Hace 2 minutos , JSDJSD dijo:

Partiendo de que modificamos ARROZ con los datos más abajo visibles, muestra como debería quedar en cada una de las hojas.

Bueno si se modifica algun dato de los Textbox deberian pasar a cada una de las 3 hojas. Pero en realidad lo que mas preocupa es que al darle al boton INACTIVAR RUBRO se suponde que debe colocar la palabra "inactivo" en la columna A de la hoja Rubros, y hacer lo mismo en las hojas Ayuda1eravez y AyudaAdicional. Pero en estas dos ultimas no lo hace.

publicado
Hace 1 minuto , JSDJSD dijo:

A vale, lo único que hay que hacer es que te ponga inactivo en las tres hojas verdad?

Correecto, y si hay algun cambio en los textbox tambin ese cambio debe ir en las 3 hojas

publicado
Hace 3 horas, JSDJSD dijo:

Prueba y comenta a ver si es lo que pretendes..

Oye Maestro muy bueno. Es decir que con el evento doble click en el listbox se solucionaba eso? Fue el unico cambio que hiciste?

publicado
Hace 7 horas, Jezreel dijo:

Es decir que con el evento doble click en el listbox se solucionaba eso? Fue el unico cambio que hiciste?

Lo del evento doble click es para no tener que cambiar la estructura de tu código, también cambie algo que casi siempre NOS pasa cuando hacemos copia y pega como te muestro a continuación.

GIF.gif

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.