Variable objeto

03/11/2003 - 22:25 por julian-vlc-sp | Informe spam
¡Hola a tod@s!

Tengo el siguiente código que no hace lo que yo pretendo, (seguro que es
porque he puesto algo mal)


Private Sub abrir1_Click()

Dim a As Integer
Dim boton1 As CommandButton
Dim boton2 As CommandButton

'ajustar
a = 1

Set boton1 = "abrir" & Trim(Str(a))
Set boton2 = "cerrar" & Trim(Str(a))

. . . . . .

. . . . . .

boton1.Visible = False
boton2.Visible = True

End Sub



Como veis, este código se ejecuta al hacer click en un botón que se llama
abrir1.

Quiero poner mas botones, que llamaré abrir2, abrir3, etc, a estos botones
les pego el código que he puesto arriba y pongo a=2, a=3. etc.(esta variable
la necesito para otra parte de código)

En las dos ultimas filas quiero hacer visible y oculto, unos botones que se
llaman "abrir1" y "cerrar1", y para no tener que cambiar el 1 de los nombres
de estos botones, y dado que tengo la variable a, que tiene el valor que
necesito, he pensado hacer lo que veis en el código con unas variables as
objeto, pero no funciona.

¿Me podéis ayudar?

SALUDOS.
julian-valencia-españa

Preguntas similare

Leer las respuestas

#1 Rene Moreno
03/11/2003 - 22:43 | Informe spam
En lo personal no entiendo bien que es lo que quieres hacer pero en el
código que anotas esta mal el uso de la instrucción SET.
SET se utiliza para asignar objetos a variables, por ejemplo SET
HOJA1=SHEETS("Hoja1") con esto en lugar de llamar a hoja1 con
Sheets("Hoja1").algunevento lo haces con HOJA1.algun evento.
Con esto te diré que lo que estas haciendo es querer asignar una cadena a un
objeto y eso no se puede. Para que funcione esa línea tendría que ser Set
boton1=algun_boton_que_tengas

Espero haber sido claro, como sea, se mas especifico con lo que necesitas y
tratare de ayudarte (o alguien mas lo hará).

Saludos
Rene Moreno

"La imaginación es mas importante que el conocimiento"
-Albert Einstein-


____________________________________________________
Para responder elimine el texto NOSPAM de la dirección de envío
"julian-vlc-sp" <ijulianARROBAiespana.es> escribió en el mensaje
news:u$
¡Hola a !

Tengo el siguiente código que no hace lo que yo pretendo, (seguro que es
porque he puesto algo mal)

>Private Sub abrir1_Click()
>
> Dim a As Integer
> Dim boton1 As CommandButton
> Dim boton2 As CommandButton
>
> 'ajustar
> a = 1
>
> Set boton1 = "abrir" & Trim(Str(a))
> Set boton2 = "cerrar" & Trim(Str(a))
>
> . . . . . .
>
> . . . . . .
>
> boton1.Visible = False
> boton2.Visible = True
>
>End Sub

Como veis, este código se ejecuta al hacer click en un botón que se llama
abrir1.

Quiero poner mas botones, que llamaré abrir2, abrir3, etc, a estos botones
les pego el código que he puesto arriba y pongo a=2, a=3. etc.(esta


variable
la necesito para otra parte de código)

En las dos ultimas filas quiero hacer visible y oculto, unos botones que


se
llaman "abrir1" y "cerrar1", y para no tener que cambiar el 1 de los


nombres
de estos botones, y dado que tengo la variable a, que tiene el valor que
necesito, he pensado hacer lo que veis en el código con unas variables as
objeto, pero no funciona.

¿Me podéis ayudar?

SALUDOS.
julian-valencia-españa


Respuesta Responder a este mensaje
#2 julian-vlc-sp
03/11/2003 - 23:48 | Informe spam
Gracias, y disculpa por no haberme explicado bien (soy de la opinión de que
cuando dos no se entienden, es porque el que explica no lo ha hecho bien)

A ver si me explico.

Tengo dos botones que existen y que se llaman "abrir1" y "cerrar1", y quiero
hacer uno visible y otro invisible.

Si en las dos ultimas líneas pongo:

abrir1.Visible = False
cerrar1.Visible = True

funciona bien.

Si las siguientes líneas:

Set boton1 = "abrir" & Trim(Str(a))
Set boton2 = "cerrar" & Trim(Str(a))

las sustituyo por:

Set boton1 = abrir1
Set boton2 = cerrar1

también funciona.

El tema esta en que tengo mas botones que se llaman abrir2, abrir3, etc,
cerrar2, cerrar3, etc, es decir, se llaman abrirx y cerrarx, y la x
corresponde con el valor de la variable numérica "a".

El código que pegué en el otro post y que pongo a continuación:

Private Sub abrir1_Click()

Dim a As Integer
Dim boton1 As CommandButton
Dim boton2 As CommandButton

'ajustar
a = 1

Set boton1 = "abrir" & Trim(Str(a))
Set boton2 = "cerrar" & Trim(Str(a))

. . . . . .

. . . . . .

boton1.Visible = False
boton2.Visible = True

End Sub



pretendo usarlo en el evento al hacer click del boton abrirx, con solo
cambiar el valor de la variable a.

Es decir, el Private Sub abrirX_Click(), seria igual que el codigo que he
pegado, solo que cambiando el valor de la variable a y poniendo a = X.

Con esto pretendo que en las dos ultimas lineas, se me oculte el boton
abrirX, que existe en la hoja, y se me haga visible el boton cerrarX, que
tambien existe, sustituyendo X por el valor que he asignado a la variable a.

SALUDOS.
julian-valencia-españa
Respuesta Responder a este mensaje
#3 Rene Moreno
04/11/2003 - 00:45 | Informe spam
Primero.
Te recomiendo que en lugar de tener dos botones tengas uno que se llame
"abre_cierra" y que en el evento Sub abre_cierra_Click() le anotas una
validacion en base al nombre, es decir:

Sub abre_cierra_Click()
If abre_cierra.Caption = "Abrir" Then
'ejecuta codigo de abrir
'
abre_cierra.Caption="Cerrar"
Else
'ejecuta codigo de cerrar
'
abre_cierra.Caption="Abrir"
End If
End Sub

Eso es en ese punto, en eso que tienes muchos botones con mismo nombre y
diferente indice no lo entiendo muy bien, ¿los tienes en la misma hoja?


Rene Moreno

____________________________________________________
Para responder elimine el texto NOSPAM de la dirección de envío
"julian-vlc-sp" <ijulianARROBAiespana.es> escribió en el mensaje
news:
Gracias, y disculpa por no haberme explicado bien (soy de la opinión de


que
cuando dos no se entienden, es porque el que explica no lo ha hecho bien)

A ver si me explico.

Tengo dos botones que existen y que se llaman "abrir1" y "cerrar1", y


quiero
hacer uno visible y otro invisible.

Si en las dos ultimas líneas pongo:

abrir1.Visible = False
cerrar1.Visible = True

funciona bien.

Si las siguientes líneas:

Set boton1 = "abrir" & Trim(Str(a))
Set boton2 = "cerrar" & Trim(Str(a))

las sustituyo por:

Set boton1 = abrir1
Set boton2 = cerrar1

también funciona.

El tema esta en que tengo mas botones que se llaman abrir2, abrir3, etc,
cerrar2, cerrar3, etc, es decir, se llaman abrirx y cerrarx, y la x
corresponde con el valor de la variable numérica "a".

El código que pegué en el otro post y que pongo a continuación:

>Private Sub abrir1_Click()
>
> Dim a As Integer
> Dim boton1 As CommandButton
> Dim boton2 As CommandButton
>
> 'ajustar
> a = 1
>
> Set boton1 = "abrir" & Trim(Str(a))
> Set boton2 = "cerrar" & Trim(Str(a))
>
> . . . . . .
>
> . . . . . .
>
> boton1.Visible = False
> boton2.Visible = True
>
>End Sub

pretendo usarlo en el evento al hacer click del boton abrirx, con solo
cambiar el valor de la variable a.

Es decir, el Private Sub abrirX_Click(), seria igual que el codigo que he
pegado, solo que cambiando el valor de la variable a y poniendo a = X.

Con esto pretendo que en las dos ultimas lineas, se me oculte el boton
abrirX, que existe en la hoja, y se me haga visible el boton cerrarX, que
tambien existe, sustituyendo X por el valor que he asignado a la variable


a.

SALUDOS.
julian-valencia-españa


Respuesta Responder a este mensaje
#4 julian-vlc-sp
04/11/2003 - 01:15 | Informe spam
Gracias, con esto me quedaré con la mitad de los botones.

A tu pregunta te contesto que SI, en una misma hoja tenia 8 botones, abrir1,
abrir2, abrir3, abrir4, cerrar1, cerrar2, cerrar3, y cerrar4, ahora me he
quedado con 4.

Los tengo sobre las celdas A7, A12, A17, y A22, y los uso para ocultar y/o
hacer visibles las filas de la 7 a la 10, de la 12 a la 15, de la 17 a la
20, y de la 22 a la 25, respectivamente.

Los botones los llamo, por ejemplo, abrir_cerrarX, donde X va desde 1 hasta
4.

Como quiero resumir el código al máximo, uso una variable a, a la que le doy
el valor de 1 a 4, y en función de ese valor oculto o hago visible un rango
de filas determinado.

Con el código que yo usaba, o con el que tu me mandas, necesito poder
referirme al objeto abrir_cerrarX, y que X tome el valor que le doy a la
variable a.

julian-valencia-españa
Respuesta Responder a este mensaje
#5 Rene Moreno
04/11/2003 - 01:32 | Informe spam
Y si mejor usas un ComboBox con las direcciones de las areas/celdas que
quieres ocultar/mostrar, asi lo puedes poner al inicio de la hoja y si
uiqeres ver determinada mostrar/ocultar determinada area, la seleccionas en
el ComboBox y des pues usas el evento del boton abrir_cerrar. Esto te
evitaria tener botones "regados" por la hoja.

Espero haberme explicado bien.

Rene Moreno

____________________________________________________
Para responder elimine el texto NOSPAM de la dirección de envío
"julian-vlc-sp" <ijulianARROBAiespana.es> escribió en el mensaje
news:
Gracias, con esto me quedaré con la mitad de los botones.

A tu pregunta te contesto que SI, en una misma hoja tenia 8 botones,


abrir1,
abrir2, abrir3, abrir4, cerrar1, cerrar2, cerrar3, y cerrar4, ahora me he
quedado con 4.

Los tengo sobre las celdas A7, A12, A17, y A22, y los uso para ocultar y/o
hacer visibles las filas de la 7 a la 10, de la 12 a la 15, de la 17 a la
20, y de la 22 a la 25, respectivamente.

Los botones los llamo, por ejemplo, abrir_cerrarX, donde X va desde 1


hasta
4.

Como quiero resumir el código al máximo, uso una variable a, a la que le


doy
el valor de 1 a 4, y en función de ese valor oculto o hago visible un


rango
de filas determinado.

Con el código que yo usaba, o con el que tu me mandas, necesito poder
referirme al objeto abrir_cerrarX, y que X tome el valor que le doy a la
variable a.

julian-valencia-españa


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida