Solución a: el texto de los botones se ve comprimido
Es muy común que se utilicen controles ActiveX (OLEObjects) en hojas de Excel para ejecutar macros, como lo son los botones. Y también es común sin una causa aparente que después el texto de los bonotes y demás controles sufran un cambio en la apariencia y se noten comprimidos. Como se muetra en la imagen:
Tal cambio en el diseño he descubierto que se ‘logra’, por decirlo de algún modo’, cuando utilizamos la función de Excel de ‘Mostrar fórmulas’. Dicho movimiento genera que nuestros controles cambien de tamaño, y al regresar al modo normal, queden como la imagen anterior.
Solución
La solución que propongo es que se le cambie de manera manual el tamaño a los controles y después asignarles el tamaño original, pero esto causaría mucha pérdia de tiempo por que deberá uno por uno.
Por tal motivo he creado un libro de Excel con los controles con todos los controles que sufren cambios y escrito una macro que restablece el diseño de los controles.
Cómo funciona ??
He añadido 9 controles a la hoja y creado una macro que muestra y oculta las fórmulas, para así después utilizas otra macro que restable el diseño.
Imagen del ejemplo
Antes
Después
Código del ejemplo
Sub RestablecerObjetos() Dim CuentaObjetos As Integer 'Asignamos la varible que almacenará la cuenta de objetos en la hoja CuentaObjetos = ActiveSheet.OLEObjects.Count 'Congelamos la pantalla Application.ScreenUpdating = False 'Hacemos el ciclo que recorrerá cada objeto For i = 1 To CuentaObjetos With ActiveSheet 'Guardamos en variable el tamaño actual de cada objecto AnchoActual = .OLEObjects(i).Width 'Asignamos un tamaño x a cada objecto .OLEObjects(i).Width = "1" 'Le devolvemos el tamaño a cada objecto .OLEObjects(i).Width = AnchoActual Application.StatusBar = "Restableciendo " & .OLEObjects(i).Name End With Next i 'Restauramos pantalla y barra de estado Application.StatusBar = False Application.ScreenUpdating = True End Sub
:: Descargar el ejemplo EXCELeINFO – Restablecer tamaño de objetos