Mostrando entradas con la etiqueta Autoformas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Autoformas. Mostrar todas las entradas

2014-11-28

Duplicar forma en Excel

Title

Problema

Cuando copiamos una forma (Ctrl+C) y la volvemos a pegar (Ctrl+V), Excel la presenta desplazada (abajo a la derecha de la original).

Solución

  1. Seleccionamos la forma.
  2. Ctrl+J para duplicar la forma. Ctrl+D si nuestro Excel está en inglés.
  3. Arrastramos la forma a la posición deseada.
  4. Ctrl+J de nuevo. La forma se pegará duplicando también la posición relativa respecto del objeto original.

Solución en imágenes

Referencias:

2014-11-24

Duplicar forma en PowerPoint

Title

Problema

Cuando copiamos una forma (Ctrl+C) y la volvemos a pegar (Ctrl+V), PowerPoint la presenta desplazada (abajo a la derecha de la original).

Solución

  1. Seleccionamos la forma.
  2. Ctrl+Alt+D para duplicar la forma. Ctrl+D si nuestro PowerPoint está en inglés.
  3. Arrastramos la forma a la posición deseada.
  4. Ctrl+Alt+D de nuevo. La forma se pegará duplicando también la posición relativa respecto del objeto original.

Solución en imágenes

Referencias:

2014-09-17

Insertar un reloj en Excel usando VBA

Title Nuestro objetivo es crear el siguiente reloj en una hoja de Excel:

Planteamiento

1. Partimos de la siguiente idea:

Una celda, A1 en el ejemplo, en la que insertaremos mediante VBA la fórmula AHORA, que devuelve la fecha y hora actuales. La formateamos para que muestre solamente la hora.
La cámara vinculada a la celda anterior, que nos aporta más flexibilidad para modificar su tamaño y posición dentro del hoja.
Un botón creado con una forma que vincularemos al código que iniciará y detendrá el reloj.

VBA

Sub Boton() 
  With ActiveSheet
      If .Shapes("Forma").TextFrame.Characters.Text = "Iniciar" Then
          .Shapes("Forma").TextFrame.Characters.Text = "Parar" 'Texto
          .Shapes("Forma").Fill.ForeColor.RGB = RGB(255, 0, 0) 'Color
          .Shapes("Forma").TextFrame.Characters.Font.ColorIndex = 2 'Fuente
      Call Reloj
      Else
          .Shapes("Forma").TextFrame.Characters.Text = "Iniciar"
          .Shapes("Forma").Fill.ForeColor.RGB = RGB(153, 204, 0) 
          .Shapes("Forma").TextFrame.Characters.Font.ColorIndex = 1 ?
      End If
  End With
End Sub
Con el código anterior creamos un único botón con dos alternativas en función del texto de la forma. Si el texto es Iniciar, cambia el texto a Parar, el color de la forma a rojo y el color de la fuente a blanco y ejecuta la macro Reloj. En caso contrario, cambia el texto a Iniciar, el color de la forma a verde y no ejecuta la subrutina Reloj.

Sub Reloj()
  If ActiveSheet.Shapes("Forma").TextFrame.Characters.Text = "Parar" Then
    Range("A1") = Now
    Application.OnTime Now + TimeValue("00:00:01"), "Reloj"
  End If
End Sub
En la subrutina anterior si el texto de la forma es Parar, es decir, la acabamos de iniciar, inserta en la celda A1 la función AHORA (NOW). Y con Application.OnTime programamos que se ejecute la propia subrutina Reloj cada segundo. Si apretamos de nuevo el botón anterior y el texto de la forma es Iniciar, es decir, la acabamos de parar, se detendrá esta macro.

Toques finales

Formateamos la celda en la que insertamos AHORA para mostrar la hora sin fecha. Presionamos CTRL+1 para mostrar el cuadro de diálogo Formato de celdas y aplicar el formato correspondiente de Hora.

Asignamos la subrutina Boton a la forma:

1. Cambiamos el nombre de la forma al que especifiquemos en nuestro código, Forma en nuestro ejemplo. Seleccionamos la forma y en el cuadro Nombre de la barra de fórmulas escribimos el nombre correspondiente.

2. Seleccionamos la forma, clic con el botón secundario del ratón y luego en Asignar macro. En el cuadro de diálogo, elegimos el nombre de la macro correspondiente y clic en aceptar.

Referencias:
Método Application.OnTime (Excel)

2013-11-15

Mostrar u ocultar formas en Excel mediante VBA

En una entrada anterior vimos como mediante el panel de selección podemos cambiar el nombre, ordenar, mostrar, ocultar y seleccionar varios objetos. ↓ Cómo acceder al panel de selección

Una alternativa a mostrar u ocultar objetos manualmente mediante el panel de selección, es usar VBA. Para ilustrarlo con sencillo ejemplo, hemos creado un semáforo cuyo color cambia en función de la selección en un cuadro combinado (verde, ámbar o rojo).
1. Creamos tres círculos del mismo tamaño. Para dibujar un círculo, hacemos clic en elipse, luego en el lugar donde deseemos iniciar el círculo. Para que la forma sea un círculo, mantenemos presionada la tecla MAYÚS mientras dibujamos la forma. A continuación les aplicamos el color de relleno correspondiente y alineamos vertical y horizontalmente.

Es esencial que asignemos a las formas los nombres que usaremos en el código del paso 3 (Shapes: verde, rojo y ambar). Mediante el panel de selección, doble clic sobre el nombre del objeto y tecleamos el nombre escogido. También seleccionando el objeto y en el cuadro de nombres escribimos el nuevo nombre.


2. Insertamos un cuadro combinado (control ActiveX). En propiedades, en ListFillRange le indicamos el rango utilizado para rellenar la lista (Verde, Rojo y Ámbar). Los nombres del rango deben de coincidir con los valores asignados a Case en el código siguiente.

3. Asignamos código al cuadro combinado, haciendo clic en Ver código.

Private Sub ComboBox1_Change()
ActiveSheet.Shapes.Range(Array("verde", "rojo", "ambar")).Visible = False
Select Case ComboBox1.Value
    Case "Verde"
        ActiveSheet.Shapes("verde").Visible = True
    Case "Rojo"
        ActiveSheet.Shapes("rojo").Visible = True
    Case Else
        ActiveSheet.Shapes("ambar").Visible = True
    End Select    
End Sub

El código oculta las tres formas y muestra la forma correspondiente en función del valor del cuadro combinado (Verde, Rojo y Ámbar).

4. Desactivamos el modo diseño y el semáforo estará listo para cambiar según el color seleccionado en el cuadro combinado.

El objetivo no es en modo alguno dificultar lo que sencillamente podemos lograr utilizando un conjunto de iconos aplicando el formato condicional. Es un ejemplo muy simple pero puede servir como punto de partida para empezar a manipular formas y objetos mediante VBA.

Cómo acceder al panel de selección En la ficha Inicio, en el grupo Modificar, haga clic en Buscar y seleccionar y clic en Panel de selección. O bien clic sobre la forma u objeto, Herramientas de dibujo, y en el grupo Organizar clic en Panel de selección.
Nube de datos