Determinar elemento visible y ocultar menores y mayores a este

Dudas sobre código
Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

Determinar elemento visible y ocultar menores y mayores a este

Mensajepor leadrudi » Jue Oct 17, 2019 2:45 pm

Buenos días:
Estoy haciendo un pseudo asistente para añadir un registro y mediante el uso de un control de pestañas, necesito saber cómo se puede determinar la pestaña activa actualmente y ocultar todas las menores y mayores a esta.
Los nombres de cada pestaña está determinada entre pag00 y pag09. Mediante el botón Siguiente (o atrás), necesito desplazarme por las diferentes pestañas mostrando la siguiente y ocultando la actual y anteriores.
Muchas gracias.
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

pitxiku
VIP
Reto02
Mensajes: 363
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor pitxiku » Vie Oct 18, 2019 10:33 am

Revisa la propiedad Value del control de páginas.

Y si modificas si propiedad Estilo a ninguno, no hará falta mostrar/ocultar páginas, el usuario no verá pestañas ni botones para poder cambiar de página, excepto los que tú le pongas.

Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor leadrudi » Vie Oct 18, 2019 8:38 pm

Pues no encontré una opción Value ni estilo. De hecho, lo que más se acercó a lo que necesito fue la "Visible" que estoy pensando como aprovecharla para poder mostrar/ocultar y avanzar o retroceder según necesite. Y ahí es donde me pierdo.
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

pitxiku
VIP
Reto02
Mensajes: 363
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor pitxiku » Sab Oct 19, 2019 7:11 pm

La propiedad Estilo existe:

- https://docs.microsoft.com/es-es/office ... trol.style

Eso sí, en vista diseño hay que seleccionar el control Páginas, no una de sus páginas.

Y con la propiedad Value pasa lo mismo, aunque en este caso, creo recordar que sólo se ve en el editor VBA o en macros:

- https://docs.microsoft.com/es-es/office ... trol.value

Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor leadrudi » Mar Oct 22, 2019 1:25 am

No sé qué hice que no estaba la opción Style. Y me gusta mucho como queda con las pestañas ocultas, pero no es lo que necesito. Sino como "navegar" entre las pestañas de una en una, secuencialmente con el botón "Siguiente" o "anterior". O sea, estoy en la pestaña "pag01", clic en siguiente, se muestra la "pag02" y se oculta la "pag01". En una versión previa me hice un código de muchíismas líneas pues determinaba en qué pestaña estaba y ocultaba (una por una) todas las otras. Y lo que quiero saber si hay algún código o comando o lo que sea que haga eso. Básicamente que obtenga la pestaña activa y oculte todas las demás y hacer clic en siguiente oculte la siguiente y oculte todas las demás.
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

Avatar de Usuario
Fayad
Colaborador
Mensajes: 355
Registrado: Mié Oct 28, 2015 9:43 pm

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor Fayad » Mar Oct 22, 2019 9:51 am

leadrudi escribió:…. En una versión previa me hice un código de muchíismas líneas pues determinaba en qué pestaña estaba y ocultaba (una por una) todas las otras.


¡¡Pues tengo mis dudas que hayas hecho este código solito viendo tu nivel y el tipo de preguntas que haces!!. :? :? :?
Salu2.

pitxiku
VIP
Reto02
Mensajes: 363
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor pitxiku » Mar Oct 22, 2019 6:39 pm

Cambia la propiedad Estilo a "Botones" y tendrás los botones para moverte por las pestañas, y sin una línea de código.

Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor leadrudi » Mié Oct 23, 2019 2:34 am

Fayad escribió:
leadrudi escribió:…. En una versión previa me hice un código de muchíismas líneas pues determinaba en qué pestaña estaba y ocultaba (una por una) todas las otras.


¡¡Pues tengo mis dudas que hayas hecho este código solito viendo tu nivel y el tipo de preguntas que haces!!. :? :? :?


Pues sí y da vergüenza ajena jajaja
Una cadena de IF/ELSEIF de más de 100 líneas donde si era 1 entonces 2, 3, 4, 5, 6, 7 se ocultaban. Si eran 2 entonces 1, 3, 4, 5, 6, 7 se ocultaban...
Ejemplo:

Código: Seleccionar todo

    If Me.pag1.Visible = True Then
        Me.pag2.Visible = True
            Me.pag2.SetFocus
        Me.pag1.Visible = False
        me.pag3.Visible = False
        me.pag4.Visible = False
        me.pag5.Visible = False
        me.pag6.Visible = False
        me.pag7.Visible = False
        me.pag8.Visible = False
    ElseIf Me.pag2.Visible = True Then

Y luego qué pasaba en cada caso con el botón Anterior o siguiente (si se mostraba o no) ¡EN CADA IF! :lol:
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor leadrudi » Mié Oct 23, 2019 3:41 am

pitxiku escribió:Cambia la propiedad Estilo a "Botones" y tendrás los botones para moverte por las pestañas, y sin una línea de código.

En relidad la idea es que se acceda a un paso a paso. De esa manera, al tener botones, el Usuario accedería a cosas que quizá no debería. Por ello, al menos comenzar con que vaya un paso a paso. Después veré cómo hacer para que a cierta pestaña no acceda según sus privilegios (se podría decir).
Igual, estoy viendo si me funciona algo que se me ocurrió adaptando un código que uso para otra cosa a ver si me sale... Ojalá que sí.
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

Re: Determinar elemento visible y ocultar menores y mayores a este

Mensajepor leadrudi » Mié Oct 23, 2019 4:20 am

¡Funcionó medianamente bien lo siguiente!
El código me lo pasaron ya ni recuerdo para qué y simplemente quité aquí y allá para obtener el número de pestaña visible (del 0 al 9).
Así pues obtengo la pestaña visible y oculto las demás.

Código: Seleccionar todo

For Each vCTRL In Me.Controls
    With vCTRL
        If Left(.Name, 3) = "pag" Then
            If Val(Mid(.Name, 4)) >= 0 And Val(Mid(.Name, 4)) < 10 And .Visible = True Then
                vActivo = Val(Mid(.Name, 4))
            End If
        End If
    End With
Next vCTRL
For Each vCTRL In Me.Controls
    With vCTRL
        If Left(.Name, 3) = "pag" Then
            If Val(Mid(.Name, 2)) >= vActivo And Val(Mid(.Name, 2)) < vActivo Then
                .Visible = False
            End If
        End If
    End With
Next vCTRL

Ahora, tengo que usar eso para que el botón "Siguiente" o "Anterior" oculte la actual y muestre la siguiente o la anterior, según corresponda.
El tema es que hay pestañas a las que no se accederán a menos que se tenga los permisos necesarios para el uso de esa característica.
¿Alguna sugerencia?
Y si hay algo más práctico que lo expuesto más arriba, desde ya les estoy eternamente agradecido.
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados