............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Ver el tema anterior Ver el tema siguiente Ir abajo

MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por Milton Cordova el Sáb Mayo 27, 2017 10:15 pm

Saludos solicito ayuda sobre el siguiente tema: Tengo un archivo en el cual existen 15 Hojas Ocultas "ANEX1","ANEX2","ANEX3","ANEX4",....."ANEX15", deseo que desde una Hioja "ANEXOS" al ingresar 1 en la celda "A14", automaticamente solo se muestre la Hoja "ANEX1" las otras ocultas, al ingresar 2 en la celda "A14", automaticamente solo se muestre la Hoja "ANEX2" las otras ocultas, al ingresar 3 en la celda "A14", automaticamente solo se muestre la Hoja "ANEX3" las otras ocultas, etc. he llegado a realizar hasta la Hoja 2

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False

If Range("A14").Value = 1 Then
Sheets("ANEX1").Visible = True
Sheets("ANEX2").Visible = False
Sheets("ANEX3").Visible = False
Sheets("ANEX4").Visible = False
Sheets("ANEX5").Visible = False
Sheets("ANEX6").Visible = False
Sheets("ANEX7").Visible = False
Sheets("ANEX8").Visible = False
Sheets("ANEX9").Visible = False
Sheets("ANEX10").Visible = False
Sheets("ANEX11").Visible = False
Sheets("ANEX12").Visible = False
Sheets("ANEX13").Visible = False
Sheets("ANEX14").Visible = False
Sheets("ANEX15").Visible = False
End If

If Range("A14").Value = 2 Then
Sheets("ANEX1").Visible = False
Sheets("ANEX2").Visible = True
Sheets("ANEX3").Visible = False
Sheets("ANEX4").Visible = False
Sheets("ANEX5").Visible = False
Sheets("ANEX6").Visible = False
Sheets("ANEX7").Visible = False
Sheets("ANEX8").Visible = False
Sheets("ANEX9").Visible = False
Sheets("ANEX10").Visible = False
Sheets("ANEX11").Visible = False
Sheets("ANEX12").Visible = False
Sheets("ANEX13").Visible = False
Sheets("ANEX14").Visible = False
Sheets("ANEX15").Visible = False
End If
End Sub

Milton Cordova

Masculino Cantidad de envíos : 22
Edad : 62
Ciudad - Pais : Quito - Ecuador
Version de Excel : 2003
Fecha de inscripción : 31/12/2009

Volver arriba Ir abajo

Re: MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por Milton Cordova el Sáb Mayo 27, 2017 11:12 pm

saludos investigando he llegado a esta solucion, si alguien puede mejorarla le agradecería.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Sheets("ANEX1").Visible = False
Sheets("ANEX2").Visible = False
Sheets("ANEX3").Visible = False
Sheets("ANEX4").Visible = False
Sheets("ANEX5").Visible = False
Sheets("ANEX6").Visible = False
Sheets("ANEX7").Visible = False
Sheets("ANEX8").Visible = False
Sheets("ANEX9").Visible = False
Sheets("ANEX10").Visible = False
Sheets("ANEX11").Visible = False
Sheets("ANEX12").Visible = False
Sheets("ANEX13").Visible = False
Sheets("ANEX14").Visible = False
Sheets("ANEX15").Visible = False

If Sheets("ANEXOS").Range("A14") = 1 Then
Sheets("ANEX1").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 2 Then
Sheets("ANEX2").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 3 Then
Sheets("ANEX3").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 4 Then
Sheets("ANEX4").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 5 Then
Sheets("ANEX1").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 6 Then
Sheets("ANEX6").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 7 Then
Sheets("ANEX7").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 8 Then
Sheets("ANEX8").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 9 Then
Sheets("ANEX9").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 10 Then
Sheets("ANEX10").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 11 Then
Sheets("ANEX11").Visible = True
End If
If Sheets("ANEXOS").Range("A14") = 12 Then
Sheets("ANEX12").Visible = True
End If

End Sub

Milton Cordova

Masculino Cantidad de envíos : 22
Edad : 62
Ciudad - Pais : Quito - Ecuador
Version de Excel : 2003
Fecha de inscripción : 31/12/2009

Volver arriba Ir abajo

Re: MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por moises melgar el Mar Mayo 30, 2017 4:11 pm

Buenas tardes

Me gusto la idea de ocultar anexos,adjunto una idea que rápido se me ocurre

Código:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For x = 1 To 15'<-----representa los numeros de los anexos
If x = Sheets("ANEXOS").Range("A14").Value Then
Sheets("ANEX" & x).Visible = True
Else
Sheets("ANEX" & x).Visible = False
End If
Next x
End Sub

Es un bucle, el cual al cambiar el valor de la celda "A14", recorrera los valores de 1 a 15 (representada por "x"), cuando "x" llegue a ser el mismo valor que la celda "A14" volvera visible esa hoja, mientras las demas hojas que no cumplan con el criterio se volveran ocultas

como una nota existen 3 tipos de .visible
visible
.Visible = xlSheetVisible (es visible)
oculta
.Visible = xlSheetHidden (aparece con click derecho sobre una pestaña que esta visible en la opcion mostrar)
muy oculto
.Visible = xlSheetVeryHidden (no aparece ni con click derecho en la opcion mostrar)
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 550
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por Milton Cordova el Miér Mayo 31, 2017 12:24 pm

Saludos la macro me da error en esta actividad
Sheets("ANEX" & X).Visible = False
favor tomar en cuenta esta solicitud
Gracias

Milton Cordova

Masculino Cantidad de envíos : 22
Edad : 62
Ciudad - Pais : Quito - Ecuador
Version de Excel : 2003
Fecha de inscripción : 31/12/2009

Volver arriba Ir abajo

Re: MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por Milton Cordova el Miér Mayo 31, 2017 2:27 pm

Investigando encontre una solucion que la comparto para todos los foristas, agradeciendo al master que me envio la ayuda en este Foro
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$14" Then
     For Each hoja In Sheets
        If hoja.Name <> "ANEXOS" Then
           If UCase(Left(hoja.Name, 4)) = "ANEX" Then
              hoja.Visible = False
              If Mid(hoja.Name, 5) = CStr(Target) Then hoja.Visible = True
           End If
        End If
     Next
  End If
End Sub

Milton Cordova

Masculino Cantidad de envíos : 22
Edad : 62
Ciudad - Pais : Quito - Ecuador
Version de Excel : 2003
Fecha de inscripción : 31/12/2009

Volver arriba Ir abajo

Re: MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por Milton Cordova el Miér Mayo 31, 2017 2:27 pm

Por lo anterior doy por solucionado el Tema
gracias

Milton Cordova

Masculino Cantidad de envíos : 22
Edad : 62
Ciudad - Pais : Quito - Ecuador
Version de Excel : 2003
Fecha de inscripción : 31/12/2009

Volver arriba Ir abajo

Re: MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por moises melgar el Miér Mayo 31, 2017 7:07 pm

Que bueno que encontraste la solución y compartirla con el foro
comento lo que hace esa macro
buscara en todas las hojas aquellas que:
1. nose llame "ANEXOS"
2. que las primeras 4 LEtras sean "ANEX"
3. Oculta todas las hojas que empiecen con "ANEX"
pero coloca una condicion:
4. Mid(hoja.Name, 5) extrae todos caracteres desde el 5 caracter (del nombre de la hoja) dando como resultado el numero de axeno de la hoja y si coincide con el valor colocado en A14 volvera visible esa hoja



ahora para responder
Milton Cordova escribió:Saludos la macro me da error en esta actividad
Sheets("ANEX" & X).Visible = False
favor tomar en cuenta esta solicitud
Gracias

El codigo que escribi (busque crear un código sencillo que se comprenda) hice pruebas con algunos supuestos y me da error cuando intenta ocultar una hoja que no existe,
ejemplo si no existe "ANEX15" (eliminada) el codigo arroja error ya que no puede ocultar esa hoja por que no existe
solucion:
complemente con una linea on error que controle ese error y subo un archivo de ejemplo
Código:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
on error resume next <---agregada para evitar mensajes de error
For x = 1 To 15'<-----representa los numeros de los anexos
If x = Sheets("ANEXOS").Range("A14").Value Then
Sheets("ANEX" & x).Visible = True
Else
Sheets("ANEX" & x).Visible = False
End If
Next x
End Sub

Espero haber solucionado ese comentario.

avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 550
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por Milton Cordova el Miér Mayo 31, 2017 11:47 pm

Saludos excelnte aporte en verdad faltaba la opcion para detectar cuando no existe la hoja
Gracias, felicitaciones

Milton Cordova

Masculino Cantidad de envíos : 22
Edad : 62
Ciudad - Pais : Quito - Ecuador
Version de Excel : 2003
Fecha de inscripción : 31/12/2009

Volver arriba Ir abajo

Re: MOSTRA OCULTAR HOJAS AUTOMATICAMENTE

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.