EXCEL: selección dinámica de hojas

16/09/2005 - 20:40 por jamba | Informe spam
Kaixo:

Para seleccionar de forma estatica:
Sheets(Array("Hoja1", "Hoja2", "Hoja3")).Select

Pero a mi me interesaría poder hacer una seleccion tal que en un
momento dado, fueran "Hoja1" y "Hoja2", pero en otro distinto, me
interesaría seleccionar "Hoja2", "Hoja3" y "Hoja7"

¿Alguien me da alguna idea?

Gracias
http://www.pepeurunuela.net

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
16/09/2005 - 23:29 | Informe spam
hola, 'anonimo/a' !

Para seleccionar de forma estatica: Sheets(Array("Hoja1", "Hoja2", "Hoja3")).Select
Pero a mi me interesaria poder hacer una seleccion tal
que en un momento dado, fueran "Hoja1" y "Hoja2"
pero en otro distinto, me interesaria seleccionar "Hoja2", "Hoja3" y "Hoja7"
Alguien me da alguna idea?



'asumiendo' que de todas formas, de algun modo, en algun momento y en algun lugar... 'tendras que'...
-> llenar/indicar/establecer/proveer/... una variable -obviamente 'variable'- [p.e. en la hoja1 y a partir de la celda a1]...
-> el siguiente ejemplo 'supone' que...
1) siempre se utilizaran nombres de hoja EXISTENTES y el primero se pone en 'A1' de la 'Hoja1'
2) NO habra celdas vacias 'de por medio' [a partir del rango 'A1' de hoja1] -es decir-
a) cuando necesites seleccionar hoja1 y hoja2... [A1] -> hoja1 [A2] -> hoja2
b) cuando necesites seleccionar hoja2, hoja3 y hoja7... [A1] -> hoja2 [A2] -> hoja3 [A3] -> hoja7

copia/pega las sigientes lineas...
en un modulo de codigo 'normal' ==Sub SeleccionarGrupoDeHojas()
With Worksheets("Hoja1")
Sheets(Application.Transpose( _
.Range(.Range("a1"), .Range("a65536").End(xlUp)))).Select
End With
End Sub

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 KL
16/09/2005 - 23:53 | Informe spam
Hola,

A ver si te valen las ideas que te pongo mas abajo.

Saludos,
KL


Sub test0()
Dim Hoja As Worksheet, Hojas As Variant
ReDim Hojas(0) As String
For Each Hoja In Worksheets
Select Case Hoja.Name
Case "Hoja2", "Hoja3"
Hojas(UBound(Hojas)) = Hoja.Name
ReDim Preserve Hojas(UBound(Hojas) + 1)
End Select
Next Hoja
If UBound(Hojas) > 0 Then _
ReDim Preserve Hojas(UBound(Hojas) - 1)
Sheets(Hojas).Select
End Sub

Sub test1()
Dim Hoja As Worksheet, Hojas As Variant
ReDim Hojas(0) As String
For Each Hoja In Worksheets
Select Case Hoja.Index
Case 1, 3
Hojas(UBound(Hojas)) = Hoja.Name
ReDim Preserve Hojas(UBound(Hojas) + 1)
End Select
Next Hoja
If UBound(Hojas) > 0 Then _
ReDim Preserve Hojas(UBound(Hojas) - 1)
On Error Resume Next
Sheets(Hojas).Select
End Sub

Sub test2()
Dim Hoja As Worksheet, Hojas As Variant
ReDim Hojas(0) As Integer
For Each Hoja In Worksheets
Select Case Hoja.Index
Case 1, 3
Hojas(UBound(Hojas)) = Hoja.Index
ReDim Preserve Hojas(UBound(Hojas) + 1)
End Select
Next Hoja
If UBound(Hojas) > 0 Then _
ReDim Preserve Hojas(UBound(Hojas) - 1)
On Error Resume Next
Sheets(Hojas).Select
End Sub

Sub test3()
Dim Hojas As Variant
ReDim Hojas(0) As Integer
For i = 5 To 9
Hojas(UBound(Hojas)) = i
ReDim Preserve Hojas(UBound(Hojas) + 1)
Next i
If UBound(Hojas) > 0 Then _
ReDim Preserve Hojas(UBound(Hojas) - 1)
On Error Resume Next
Sheets(Hojas).Select
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida