Saltar al contenido

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

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á.

Featured Replies

publicado

Hola a ambos!

  En 3/3/2021 at 23: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
  • Autor
  En 5/3/2021 at 23:21 , 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
  • Autor
  En 6/3/2021 at 1:48 , 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
  • Autor
  En 6/3/2021 at 18:22 , 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

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

publicado
  • Autor
  En 6/3/2021 at 18:28 , 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
  • Autor
  En 6/3/2021 at 20:45 , 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
  En 7/3/2021 at 0:39 , 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.