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
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.
¿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.!.
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!!!!..
- Compartir respuesta