** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - cambiar caption en excel commandbutton
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradocambiar caption en excel commandbutton

 Responder Responder Página  12>
Autor
Mensaje
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Tema: cambiar caption en excel commandbutton
    Enviado: 21/Agosto/2010 a las 18:05
Buenas tardes,
 
Para permitir visualizar una hoja, utilizo un boton de comando en excel 2003 con el siguiente código:
 
Private Sub Abrir_Click()
    If Abrir.Caption = "Abrir Cálculos" Then
        Password = InputBox("Introduce Password")
        If Password = "juan" Then
                Worksheets("Cálculos").Visible = True
                Abrir.Caption = "Cerrar"
        End If
    Else
            Worksheets("Cálculos").Visible = False
            Abrir.Caption = "Abrir Cálculos"
    End If  
End Sub
 
Como veis le cambio la caption al boton para indicar si procede abrir o cerrar la hoja.
 
Quiero que al cerrar o arrancar el libro la caption sea "Abrir Cálculos" pero no veo manera de pasar la instrucción para cambiar la caption del botón.
 
¿alguien me puede indicar el posible código?
Gracias anticipadas,
Juan.
 
 
 
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4317
Enlace directo a este mensaje Enviado: 21/Agosto/2010 a las 18:36
no indicas donde tienes puesto el boton, si en un formulario o en la propia hoja... por lo que supongo el segundo caso


el boton será algo parecido a :

ActiveSheet.Shapes("Button 1")

por lo que puedes modificar el texto seleccionandolo previamente.

ActiveSheet.Shapes("Button 1").Select
Selection.Characters.Text = "Nuevo texto"


¿es esto lo que buscas?
Arriba
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 21/Agosto/2010 a las 23:34
Gracias Jordi-Albert,
 
Sí se trata de un botón en la hoja.
 
Con la primera linea de código que indicas efectivamente se selecciona.
Con la segunda debiera poder cambiar la caption?, pero me da error.
 
Sigo probando a ver si veo la manera.
 
Muchas gracias.
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4317
Enlace directo a este mensaje Enviado: 22/Agosto/2010 a las 00:29
te dire como lo he averiguado yo... haz lo mismo.

activas la grabadora de macros

menu: herramientas/macro/grabar nueva macro

seleccionas el boton y cambias el texto

cierras la grabadora y vas al editor de VBA

verás como lo tienes que hacer...

(ya dirás algo...)
Arriba
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 22/Agosto/2010 a las 08:27
Hola,
Está claro... pero la grabadora se pierde cuando modificas propiedades del botón...
 
Sólo llega hasta grabar:
ActiveSheet.Shapes("Abrir").Select
 
y no me graba las modificaciones de sus propiedades Angry
Gracias,
Juan.
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4317
Enlace directo a este mensaje Enviado: 22/Agosto/2010 a las 09:27
shapes("Abrir") ???

te esta cogiendo el nombre que le has dado, no el nombre interno.

depra la funcion y mira el objeto Shapes. en el podrás ver todas las propiedades y con ello averiguar si existe un "caption" o un "text" o un "alternativetext", etc..

despues deberás jugar con lo que averigues
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: en línea
Puntos: 5648
Enlace directo a este mensaje Enviado: 22/Agosto/2010 a las 14:56
 

Si el botón es un control ActiveX, debería funcionar con algo similar a...

Private Sub CommandButton1_Click()

  If CommandButton1.Caption = "ABRIR" Then

    CommandButton1.Caption = "CERRAR"

  Else

    CommandButton1.Caption = "ABRIR"

  End If

End Sub

 
... pero si el botón es un control de formulario, no tiene la propiedad Caption y deberías emplear algo similar a:

Sub CambiaTexto()

  Dim celda$

  celda = ActiveCell.Address

  ActiveSheet.Shapes("Button 2").Select

  If Selection.Characters.Text = "ABRIR" Then

    Selection.Characters.Text = "CERRAR"

  Else

    Selection.Characters.Text = "ABRIR"

  End If

  Range(celda).Select

End Sub

 
 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 22/Agosto/2010 a las 16:16
Buenas de nuevo,
Se trata de un boton de comando creado en la propia hoja excel 2003, mediante el icono de cuadro de controles de la barra de herramientas de Visual Basic (Excel -> Menu Ver -> Barra de Herramientas -> Visual Basic).
 
Disculpa mi ignorancia AnSanVal pero supongo que se trata de un control ActiveX, porque la rutina que aportas es similar a la que indico al principio para atender al click del usuario, que me funciona.
 
El problema lo tengo en cambiar la caption directamente desde el programa, sin que sea pulsado el botón.
 
La respuesta que recibo es que le objeto no admite esa propiedad o método: Ni caption, ni characters, ni text, ni shapes.caption, ni shapes, el alternativetext tampoco me cambia la caption,...  ni nada de nada.
 
La grabadora se inhibe en dar información.
 
¿Cómo puedo modificar por código la propiedad caption?
 
Muchas gracias,
Juan.
 
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: en línea
Puntos: 5648
Enlace directo a este mensaje Enviado: 22/Agosto/2010 a las 18:28
Lo siento pero no dispongo de la versión 2003 actualmente para poder simular tu caso. El portátil en que lo tengo instalado lo presté a principio de año y ... aún no lo he recuperado. Ermm
 
Si lo consideras oportuno, cuelga el archivo en un sitio gratuito de internet (si no tienes página propia), y facilítanos el enlace.
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 23/Agosto/2010 a las 17:34
Hola,
Sigo sin encontrar una salida.
Os dejo el fichero resumido en la siguiente dirección:
 
 
 
Juan
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4317
Enlace directo a este mensaje Enviado: 24/Agosto/2010 a las 00:20
bajado el fichero y probado

funciona al 100% sin tener que hacer nada...
Arriba
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 24/Agosto/2010 a las 07:00
Hola,
Sí, lo indicado funciona, aunque se trata de conseguir que al arrancar la caption sea "Abrir Cálculos", ya que la hoja no está disponible y se pudo grabar el fichero con caption="Cerrar".
 
Para ello en   Private Sub Workbook_open() introduzco:
 
    ActiveSheet.Shapes("Abrir").Select
    Abrir.Caption = "Abrir Cálculos"
 
y es cuando da error.Angry
 
Gracias,
Juan.
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4317
Enlace directo a este mensaje Enviado: 24/Agosto/2010 a las 09:44
Publicado originalmente por febrero59 febrero59 escribió:

Sí, lo indicado funciona, aunque...


Entonces por que nos das información falsa?

seguramente no es la hoja correcta-....

Private Sub Workbook_open()

Sheets("Fiscalidad PPI").select
sheets("Cálculos").Visible = False


ActiveSheet.Shapes("Abrir").Select
Abrir.Caption = "Abrir Cálculos"
end sub

Editado por Jordi-Albert - 24/Agosto/2010 a las 09:45
Arriba
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 25/Agosto/2010 a las 00:04
Disculpad, que no lo cargué con el error.
 
 
Juan.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3355
Enlace directo a este mensaje Enviado: 25/Agosto/2010 a las 10:28
Hola.
Prueba con la siguiente modificación:
 
Private Sub Workbook_open()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Worksheets("Cálculos").Visible = False
    Sheets("Fiscalidad PPI").Abrir.Caption = "Abrir Cálculos"      
    Range("B2").Select
    Application.WindowState = xlMaximized
    ActiveWindow.WindowState = xlMaximized
      
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 
Ya comentas.
Un saludo a todos.
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable