Usar comboBox y RfEdit. Ctrl para Obtener Nombre de Un WorkBook

Estoy Leyendo sobre el Control RFEdit. Ctrl y supongo que este Control Es Para Obtener la Dirección de Adress de la celda y el Combobox es para seleccionar uno de los Libros Abiertos, podrás Realizar el Formulario y ya luego lo implemento o lo adapto a mi código..

1 respuesta

Respuesta
1

Este es el código para el formulario

Private Sub ComboBox1_Change()
'Por.Dante Amor
    hoja = Workbooks(ComboBox1.Value).Sheets(1).Name
    RefEdit1 = "=[" & ComboBox1 & "]" & hoja & "!A1"
End Sub
'
Private Sub ComboBox2_Change()
'Por.Dante Amor
    hoja = Workbooks(ComboBox2.Value).Sheets(1).Name
    RefEdit2 = "=[" & ComboBox2 & "]" & hoja & "!A1"
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    For Each l In Workbooks
        ComboBox1.AddItem l.Name
        ComboBox2.AddItem l.Name
    Next
End Sub
'
Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = 0
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Hola Dante

Estuve checando el Formulario y tengo un detalle, cuando selecciono un libro abierto en el combobox2 no me deja cambiar de libro... solo aparece donde esta creado el formulario y de hay no se mueve..

Saludos!..

No tienes que cambiarte de libro.

Seleccionar el libro en el combo y luego cuando presiones click en el control de refedit, en ese momento se abre el libro que seleccionaste en el combo.

Cuando presionas el botón del refedit entonces te cambia al libro seleccionado en el combo:

hola Dante

hago ese procedimiento y no me cambia de libro.. no se si hago algo mal...

¿Cambiaste algo más en la macro?

¿Tienes los libros visibles?

Pusiste esto:

application.screenupdating = false

Si ejecutas el libro tal cual te lo envié, sin cambiar la macro, funciona!

Dante

Solo le Agregue el "Workbooks(l).select" pero ya lo puse como comentario...

Ya lo volví a checar y si cambia cuando creo una hoja de excel nuevo, pero cuando abro varios archivos míos es cuando no cambia.. solo en archivos nuevos...

Saludos!..

Private Sub ComboBox2_Change()
'Por.Dante Amor
    hoja = Workbooks(ComboBox2.Value).Sheets(1).Name
    RefEdit2 = "=[" & ComboBox2 & "]" & hoja & "!A1"
    ''Workbooks(1).Select
End Sub

Quita esta línea de la macro

''Workbooks(1).Select


Sí funciona con todos los archivos, pero tienes que abrirlos desde excel:

1.

2. Cuando te abra el explorador, selecciona un archivo y lo abres.

3. Regresa a mi archivo.

4. Abre el formulario

5. Selecciona en el combobox el archivo que acabas de abrir

6. Presiona el botón de RefEdit


Hola Dante

Disculpa, pero no funciona..

He notado que funciona pero si solo aparece el nombre del archivo Sin extensión.. Ejemplo: "libro1", por que en mis otros Archivos aparece "Sant-2015.xlsm" con la extensión.. no se si eso tenga algo que ver...

Saludos!..

Dante

Note algo.. si el nombre del archivo tiene más de 1 palabra.. no lo abre...

Pero si tiene una sola palabra.. si lo abre...

no se por que sea...

Saludos.!.

¿Qué versión de excel tienes?

A mi me funciona muy bien.

Hola Dante

la version de office es 2010

saludos!.

Me funciona muy bien la versión 2007.

Tal vez sea por la versión

Prueba lo siguiente, agrega la extensión, por ejemplo:

RefEdit2 = "=[" & ComboBox2 & ".xlsx]" & hoja & "!A1"

Si es archivo con macro

RefEdit2 = "=[" & ComboBox2 & ".xlsm]" & hoja & "!A1"

Haz la prueba con una archivo y después vemos cómo automatizamos para que ponga la extensión con fullname.

Hola Dante

Intente probar con las modificaciones.. pero ahora no funciona ninguna hoja de ningún libro.. si quito la modificación si cambia el archivo .. siempre y cuando lo abra con los pasos que menciono anteriormente...

Saludos!..

Entonces es así:

Private Sub ComboBox1_Change()
'Por.Dante Amor
    hoja = Workbooks(ComboBox1.Value).Sheets(1).Name
    RefEdit1 = "='[" & ComboBox1 & "]" & hoja & "'!A1"
End Sub
'
Private Sub ComboBox2_Change()
'Por.Dante Amor
    hoja = Workbooks(ComboBox2.Value).Sheets(1).Name
    RefEdit2 = "='[" & ComboBox2 & "]" & hoja & "'!A1"
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    For Each l In Workbooks
        ComboBox1.AddItem l.Name
        ComboBox2.AddItem l.Name
    Next
End Sub
'
Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = 0
End Sub

Hola Dante

Gusto En Saludarte!..

Listo!!.. ya quedo el codigo... Funciona de Maravilla.. Agradezco mucho tu ayuda..

ya nadamas guardaria el nombre del archivo, hoja y direccion de celda en variables, que tambien me ayudaste con eso..

celda_2 = libro2.Address
hoja_2 = libro2.Worksheet.Name
libro_2 = libro2.Worksheet.Parent.Name

SAludos!!!!..

Con gusto te sigo ayudando, recuerda que es una petición por pregunta.

Podrías valorar esta respuesta y crear la respectiva pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas