seleccionar 1 elemento de c/listbox y presentar resultado en 'Vist

25/02/2006 - 17:48 por jquinvar | Informe spam
1 Tengo un libro con 9 hojas de datos: Hoja1, Hoja2, Hoja3,…., Hoja9
2 Cada hoja tiene la información dividida en 4 Rangos
Rango1=(A1:K35), Rango2=(L1:V24), Rango3=(W1:AD22), Rango4=(AE1:AR72)
3 Existe, además, una hoja llamada 'Vistas', para insertar el rango
seleccionado
4 Proyecto deseado
a) Crear un Userform con dos listbox
Uno para la lista de las hojas, y
Otro para la lista de los rangos
b) Procedimiento
Seleccionar una hoja específica y un rango específico, en los list box,
Pasar los datos del rango seleccionado a la hoja 'Vistas'
Por ejemplo, pasar el Rango 3 de la Hoja 6 a la hoja 'Vistas'
 

Leer las respuestas

#1 luka
26/02/2006 - 20:52 | Informe spam
Hola jquinvar
Te cuento lo que he hecho, aunque seguramente habrá formas mas
sencillas de hacer lo mismo, pero como he dicho otras veces, el VB no es
lo mio.
Para empezar he nombrado cuatro rangos en cada hoja, en todas las hojas
con el mismo nombre, (rango1, rango2, rango3, rango4). Lo he hecho así
porque tu dices que todos son iguales.
Después he creado en la hoja vistas un botón al que he asignado un macro
que se llama rangos que va a activar el formulario (al final del
código)
Luego he creado un formulario con dos ComboBox, en uno van a salir las
hojas que tienes. (he utilizado código de KL) y en el otro los rangos
posibles.
Por último un botón para que se copien y peguen los valores.
Ten en cuenta que no he puesto nada para evitar errores (porque no se)
por lo que si seleccionas el rango y no hay hoja te dará error.

Espero que te sirva y a ver si algún alma caritativa lo completa.

Saludos
Javier B.

=Private Sub CommandButton1_Click()
Sheets("Vistas").Select
Range("A1:N72").Select
Selection.ClearContents

With ThisWorkbook.Worksheets(ComboBox1.Value)
.Activate
Application.Goto Reference:=ComboBox2.Value
Selection.Copy
End With

Sheets("Vistas").Select
Range("A1").Select
ActiveSheet.Paste

End Sub

'Parte del código que sigue lo he copiado de un libro de Kl de algún
correo que
'ha mandado

Private Sub UserForm_Initialize()
Dim Hoja As Worksheet, i As Long
For Each Hoja In ThisWorkbook.Worksheets
Select Case Hoja.Name
Case "Vistas"
Case Else
ComboBox1.AddItem Hoja.Name, i
i = i + 1
End Select
Next Hoja
ComboBox2.List = Array("rango1", "rango2", "rango3", "rango4")
End Sub
Sub Rangos()
UserForm1.Show
End Sub
=jquinvar escribió:
1 Tengo un libro con 9 hojas de datos: Hoja1, Hoja2, Hoja3,…., Hoja9
2 Cada hoja tiene la información dividida en 4 Rangos
Rango1=(A1:K35), Rango2=(L1:V24), Rango3=(W1:AD22), Rango4=(AE1:AR72)
3 Existe, además, una hoja llamada 'Vistas', para insertar el rango
seleccionado
4 Proyecto deseado
a) Crear un Userform con dos listbox
Uno para la lista de las hojas, y
Otro para la lista de los rangos
b) Procedimiento
Seleccionar una hoja específica y un rango específico, en los list box,
Pasar los datos del rango seleccionado a la hoja 'Vistas'
Por ejemplo, pasar el Rango 3 de la Hoja 6 a la hoja 'Vistas'



Preguntas similares