Se puede hacer variable el "ControlSource" de un TextBox?

08/11/2006 - 18:07 por Maty | Informe spam
Supóngase que un TextBox registra el número de páginas contenidas en una hoja
llamada "Vistas", pero ese número varía según el tema que se copie en esa
hoja "Vistas"

En la celda A2 de una Hoja Ayuda, está anotado un 9, que es el número de
páginas del Tema 1. Así entonces el ControlSource tiene anotado Ayuda!A2

Pero el Tema 2, tiene 20 páginas, y en la celda A3 está anotado un 20.

Cómo construir un macro como el siguiente:

Si Tema=1 then ControlSource=Ayuda!A2
else if Tema =2 then ControlSource= Ayuda!A3
y así hasta procesasr unos 30 temas cada uno con diferente número de hojas,
anotados en la columna A de la hoja Ayuda

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
09/11/2006 - 03:28 | Informe spam
hola, !

Supongase que un TextBox registra el numero de paginas contenidas en una hoja llamada "Vistas"
pero ese numero varia segun el tema que se copie en esa hoja "Vistas"
En la celda A2 de una Hoja Ayuda, esta anotado un 9, que es el numero de paginas del Tema 1.
Asi entonces el ControlSource tiene anotado Ayuda!A2
Pero el Tema 2, tiene 20 paginas, y en la celda A3 esta anotado un 20.
Como construir un macro como el siguiente:
Si Tema=1 then ControlSource=Ayuda!A2
else if Tema =2 then ControlSource= Ayuda!A3
y asi hasta procesasr unos 30 temas cada uno con diferente numero de hojas, anotados en la columna A de la hoja Ayuda



1) puedo preguntarte 'por que' usar un control TextBox [que es 'editable' por el usuario] y no un 'simple' control Label ?
si el uso 'pretendido' es -solamente- informar ? [a menos que tengas 'deshabilitado' para edicion el control TextBox] -?-

2) como puede 'detectar/adivinar/suponer/investigar/...' el codigo si estamos 'hablando' del Tema_1, o Tema_2, o... Tema_30 -?-

comentas [si hubiera] algun detalle mas 'en el tintero' ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Maty
09/11/2006 - 15:10 | Informe spam
Gracias Héctor por tu pronta respuesta y seguro que NO fui suficientemente
clara al exponer mi consulta..
La hoja "Vistas" es una hoja pivote que recibe hojas de diferentes temas,
cada uno de los cuales con diferentes número de cortes de página (desde 2
hasta 40).

El archivo dispone de un UserForm1 para que el usuario seleccione el tema y
lo pueda ver en esa hoja "Vistas". A su vez existe otro UserForm2, el cual se
activa inmediatamente que se copia el tema seleccionado en la hoja “Vistas”.
Este último UserForm, contiene 3 opciones de impresión: 1. Imprimir una
página específica, 2. Imprimir todas las páginas del tema, y 3.Realizar una
Vista Preliminar antes de imprimir.

Adicionalmente, consideré importante que ese UserForm2 informe al usuario
sobre el número de páginas que contiene el tema expuesto en la hoja “Vistas”.
Con esa finalidad, en la columna A de la hoja "Ayuda" se ha insertado una
lista de temas y frente a cada tema, en la columna B, está registrado el
número de páginas de cada tema (Por favor disculpa, en mi pregunta inicial no
hablé de estas 2 columnas)

De ahí mi consulta de si es posible, por medio de un macro con condicionales
"If", hacer variable el "ControlSource" de un TextBox. Por cierto, si hay
una manera mas simple de informar al usuario, dentro de ese UserForm, sobre
el número de páginas que tiene el tema seleccionado, te lo agradecería
muchísimo.


"Héctor Miguel" escribió:

hola, !

> Supongase que un TextBox registra el numero de paginas contenidas en una hoja llamada "Vistas"
> pero ese numero varia segun el tema que se copie en esa hoja "Vistas"
> En la celda A2 de una Hoja Ayuda, esta anotado un 9, que es el numero de paginas del Tema 1.
> Asi entonces el ControlSource tiene anotado Ayuda!A2
> Pero el Tema 2, tiene 20 paginas, y en la celda A3 esta anotado un 20.
> Como construir un macro como el siguiente:
> Si Tema=1 then ControlSource=Ayuda!A2
> else if Tema =2 then ControlSource= Ayuda!A3
> y asi hasta procesasr unos 30 temas cada uno con diferente numero de hojas, anotados en la columna A de la hoja Ayuda

1) puedo preguntarte 'por que' usar un control TextBox [que es 'editable' por el usuario] y no un 'simple' control Label ?
si el uso 'pretendido' es -solamente- informar ? [a menos que tengas 'deshabilitado' para edicion el control TextBox] -?-

2) como puede 'detectar/adivinar/suponer/investigar/...' el codigo si estamos 'hablando' del Tema_1, o Tema_2, o... Tema_30 -?-

comentas [si hubiera] algun detalle mas 'en el tintero' ?
saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
09/11/2006 - 22:23 | Informe spam
hola, Maty !

-> dado que intervienen dos [o mas] userforms y cada uno [seguramente] con diferentes controles [y tipos de...]
[probablemente] te salga mas 'barato' establecer una variable publica [en el area de declaraciones de un modulo general]
que pueda 'comunicar' entre diversos modulos de codigo el 'estatus' y/o cambios/variaciones/... de dicha variable [p.e.]

a) en un modulo de codigo general
Public Tema As Byte

b) en el modulo de codigo del userform1 [nota: suponiendo que los temas se eligen desde un combobox1] -???-
[p.e.] en el evento '_change' del combobox1 <= modifica/adapta/corrige/traspasa/... al control apropiado
Private Sub ComboBox1_Change()
Tema = ComboBox1.ListIndex + 1
End Sub

c) en el modulo de codigo del userform2 [asumiendo que se trata del textbox1] <= insisto 'por que' un textbox ???
Private Sub UserForm_Initialize()
TextBox1.ControlSource = "ayuda!b" & Tema
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ exposicion de los detalles 'olvidados' __
La hoja "Vistas" es... pivote... recibe hojas de diferentes temas... con diferentes numero de cortes de pagina (desde 2 hasta 40).
... un UserForm1... el usuario seleccione el tema y lo pueda ver en esa hoja "Vistas"
... otro UserForm2... se activa inmediatamente que se copia el tema seleccionado en la hoja 'Vistas'.
... contiene 3 opciones de impresion: 1... pagina especifica, 2... todas las paginas del tema, y 3... Vista Preliminar antes de imprimir.
... considere importante que ese UserForm2 informe al usuario sobre el numero de paginas que contiene el tema expuesto
... en la columna A de la hoja "Ayuda" se ha insertado una lista de temas y... en la columna B... el numero de paginas de cada tema
... si es posible, por medio de un macro con condicionales "If", hacer variable el "ControlSource" de un TextBox...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida