Archive

Posts Tagged ‘For’

Solución a: el texto de los botones se ve comprimido

July 30, 2011 1 comment

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:

image

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

image

Antes

image

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

Add-in: Cerrar archivos guardados o cerrar todos los archivos sin guardar

Se añade al Add-in dos comandos para cerrar archivos:

  1. Cerrar archivos guardados. Permite cerrar todos aquellos archivos en los que ya se hayan guardado cambios, haciendo el cierre más eficiente sin necesidad de cerrar uno por uno.
  2. Cerrar archivos sin guardar. Permite cerrar todos los archivos abiertos, sin la pregunta de si desea guardar cambios. Se recomienda utilizarla con cuidado, ya que si no se guarda la información, se podrán perder datos valiosos.

Ambos comandos utilizan el constructor For, que primero evalúa si los archivos están visibles, y después aplica las acciones de cerrar.

Imagen:

image

:: Descargar EXCELeINFO 2.2.4

Categories: Excel, vba Tags: , , ,