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
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
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.
![kazama2010](http://blob.todoexpertos.com/avatars/sm/kazama2010.jpg?v=40)
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!..
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
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.
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
¿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!
![kazama2010](http://blob.todoexpertos.com/avatars/sm/kazama2010.jpg?v=40)
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
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
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
![kazama2010](http://blob.todoexpertos.com/avatars/sm/kazama2010.jpg?v=40)
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!..
![kazama2010](http://blob.todoexpertos.com/avatars/sm/kazama2010.jpg?v=40)
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.!.
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
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.
![kazama2010](http://blob.todoexpertos.com/avatars/sm/kazama2010.jpg?v=40)
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!..
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
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
![kazama2010](http://blob.todoexpertos.com/avatars/sm/kazama2010.jpg?v=40)
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!!!!..
- Compartir respuesta
![](/content/images/user_nophoto_small.png)