¿Como ejecutar en un mismo botón 2 Macros, una al primer click y la siguiente al segundo click, y que por cada click cambie el ?

Tengo en una hoja de excel un formulario extremadamente largo, este lo trabajo entre otras con dos macros que ocultan un grupo de filas o muestran la misma, necesito hacer esto con un solo botón en la misma hoja con el evento click y que por cada click cambie camtion del botón por los simbolos "+" a "-". La macro que uso es la siguiente ( aclaro que son varias por sección)

Sub_ocultar1

Rows("238:267").Select(-)
Selection.EntireRow.Hidden = True

End Sub

Sub_Mostrar1(+)

Rows("238:267").Select
Selection.EntireRow.Hidden = False

End Sub

3 Respuestas

Respuesta
1

Podrías preguntar cómo está alguna de esas filas y según eso mostrar u ocultar:

Sub ocultarMostrar()
'x Elsamatilde
'ver el estado de alguna fila
If Rows("238:238").EntireRow.Hidden = True Then
    Rows("238:267").EntireRow.Hidden = False
Else
    Rows("238:267").EntireRow.Hidden = True
End If
End Sub

Nota: no es necesario seleccionar antes el rango.

Como bien menciona James a la macro le debes agregar las instrucciones para cambiar el texto del botón que me pasé de largo ;)

Pero la instrucción CommandButton1. Caption solo es válida si tu botón fue dibujado con la barra ActiveX.

En cambio, si la dibujaste con la barra de Formularios las instrucciones son distintas. Ajusta el nombre del botón a las siguientes líneas:

Sub ocultarMostrar()
'x Elsamatilde
'ver el estado de alguna fila
If Rows("238:238").EntireRow.Hidden = True Then
    Rows("238:267").EntireRow.Hidden = False
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    Selection.Characters.Text = "-"
    [A237].Select    'quita la selección al objeto
Else
    Rows("238:267").EntireRow.Hidden = True
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    Selection.Characters.Text = "+"
    [A237].Select
End If
End Sub

Sdos y no olvides valorar las respuestas (opciones: excelente o buena)

Elsa

¡Gracias

¡Gracias! Mil.

Son exactamente como se les llama "EXPERTOS" . James, Elsa, muchas gracias por la honestidad y desinterés de ofrecer sus conocimientos.

Estimados Expertos.

Me he roto mi cerebro intentando lograr centrar los textos del botón activex  ("+" y "-") al tamaño del botón. Estos botones no deben tener un alto y anchura de 12 (Height y Width =12), al dejarlos de es tamaño los textos descritos desaparecen. Son varios botones iguales que debo insertar en la hoja de calculo y necesito que el texto sea visible, agradecería infinitamente vuestra ayuda.

Con mucho gusto responderemos todas tus consultas... pero por favor deja cada una con su título correspondiente en el tablón. Ahora ya no se trata de cómo ejecutar 2 macros sino de las propiedades de los botones y así debiera quedar reflejado en el título.

Sdos!

Respuesta
1

Esta es la macro con el cambio de texto en el botón

Private Sub CommandButton1_Click()
v = Rows("238:267").EntireRow.Hidden
If v Then
    Rows("238:267").Hidden = False
    CommandButton1.Caption = "-"
Else
    Rows("238:267").Hidden = True
    CommandButton1.Caption = "+"
End If
End Sub

¡Gracia

¡Gracias! Mil.

Son exactamente como se les llama "EXPERTOS" . James, Elsa, muchas gracias por la honestidad y desinterés de ofrecer sus conocimientos.

Respuesta

Fíjate acá es posible encuentres algo o te de alguna idea que puedes agregar a tu proyecto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas