Archive

Posts Tagged ‘Eventos’

Cálculo en barra de estado en Excel 2003 similar a Excel 2010

December 22, 2011 1 comment

De los cambios positivos que tuvo Excel 2007 y 2010 es que ahora la barra de estado permite mostrar disintos cálculos en una misma vista, tal como Suma, Promedio, Recuento, etc.

En Excel 2003 y anteriores había que elegir, mediante un menú, sólo un cálculo para que sea mostrado en la barra de estado.

Cómo funciona ?

El siguiente evento permite mostrar distintos cálculos en la barra de estado a medida que elegimos un rango de celdas. Para esto, debemos entrar a nuestro IDE de vba y entrar el objeto ThisWorkbook. Añadiremos el evento Workbook_SheetSelectionChange para que cada vez que hacemos una selección de rangos, nos muestre distintos cálculos.

Código

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Suma, Promedio, Cuenta, Maximo, Minimo
    'Si al menos están elegidas dos celdas, muestra los cálculos
    If Selection.Cells.Count <> 1 Then
        On Error Resume Next
        Suma = "Suma: " & Application.WorksheetFunction.Sum(Selection)
        Promedio = "Promedio: " & Application.WorksheetFunction.Average(Selection)
        Cuenta = "Cuenta: " & Application.WorksheetFunction.CountA(Selection)
        Maximo = "Máximo: " & Application.WorksheetFunction.Max(Selection)
        Minimo = "Mínimo: " & Application.WorksheetFunction.Min(Selection)
        'Muestra en la barra de tareas los cálculos antes definidos
        Application.StatusBar = Suma & "    " & Promedio & "   " & _
                                Cuenta & "   " & Maximo & "     " & Minimo
    Else
        Application.StatusBar = False
    End If
    On Error GoTo 0
End Sub

Imagen de ejemplo

image

Categories: Excel, Trucos, vba Tags: , , ,

Macro para impedir que se guarde un archivo de Excel

November 25, 2010 7 comments

Twittear este post Compartir en Facebook

Cómo hacer para que no se guarde un archivo de Excel, es el post de esta noche. Es decir, si mandamos archivos por correo electrónico o los compartimos mediante una red local y no queremos que quienes usen el archivo, aunque hagan modificaciones en él, lo puedan guardar.

Esto se realiza mediante macros de eventos. Recordemos que los eventos son acciones propias de Excel, y que al suceder, podemos asignarle una macro. Por ejemplo está el evento de Activar hoja, Antes de imprimir, Al modificar celdas, etc. Recordemos que al ser mediante macros, la seguridad de Excel debe permitir la ejecución de macros.

Los eventos utilizados para este ejercicio son Antes de cerrar (BeforeClose) y Antes de guardar (BeforeSave). Es importante que el código de los eventos esté en el objeto ThisWorkbook. El código a utilizar será:

Evento que se ejecutará al momento de elegir Guardar o Guardar como, el cual impedirá la acción:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "No tienes permitido guardar el archivo.", vbCritical, "EXCELeINFO"
Cancel = True
End Sub

Evento que se ejecutará al momento de cerrar el archivo, tanto presionando la x o las combinaciones para cerrar Ctrl + F4 o Alt + F4, el cual cerrará el archivo sin preguntar si lo desea guardar:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Close Savechanges:=False
End Sub
Categories: vba Tags: , ,