domingo, 5 de abril de 2015

Un video vale mas que mil imagenes

!!! Hola !!!


Hoy vamos a incrustar un video de youtube dentro de una hoja de Excel.



















Lograr esto no es complicado. Puedes conseguir resultados profesionales si  le agregas informacion complementaria concerniente al video y un poco de tu buen gusto al diseño.


Requisitos
Solo el link del video de youtube y por supuesto, una conexion a internet.


Paso No 1.
Insertar el  control ActiveX llamado "Shockware Flash Object" en una de las hojas del libro de trabajo en cuestion.
















No te preocupes si en vez de la ficha "Programador" tu pantalla muestra "Desarrollador" son nombres diferentes para la misma ficha en diferentes versiones de Excel.
Como? no aparece la ficha programador en tu cinta de opciones? En este caso deberas agregarla. Puedes esperar unos dias a que haga una entrada en el blog explicando como se hace esto o simplemente googlea "Mostrar la ficha programador en Excel", es un procedimiento muy sencillo.

Como se observa en la imagen, no aparece el control ActiveX llamado "Shockware Flash Object", seguramente tambien te pasa lo mismo (lo que sucede es que es un control que no se usa mucho, por eso no esta en la lista. Debes hacer click en la ultima opcion "Mas controles".
Busca en la lista el control "Shockware Flash Object" - se muestran en orden alfabetico. Boton aceptar y listo.

No es que el control vaya a aparecer en el listado de controles. El puntero del mouse mostrara una pequeña cruz que te permitira hacer la insercion del control con un simple click en la hoja de trabajo:























Paso No 2.
Invocar la ventana de propiedades del control

.















Ubica la propiedad Movie dentro de la ventana de propiedades, para lograr esto, debes:
2.a Antes de seleccionar el control asegurate que se encuentre en modo diseño (ver imagen del control modo diseño")
2.b Selecciona el control con el boton derecho del mouse. Debe aparecer el menu contextual. Selecciona la opcion Propiedades.
Listo, ya tienes la ventana de propiedades en la pantalla.

Nota. Un simple F4 despues de seleccionar el control con el boton izquierdo del mouse es una forma mas simple de cargar esta ventana.


Paso No 3.
Asignar el link a la propiedad Movie
Escribe el link de youtube en el campo Movie, pero antes deberas modificarlo un poco:
Los link de youtube incluyen siempre el texto watch? deberas eliminarlo y ademas cambiar el caracter = que se encuentra mas adelante por el caracter /
Para que se entienda mejor. Tengo este link de youtube:
https://www.youtube.com/watch?v=OUeR6-RTrYA
Corresponde a una pareja de jovenes ecuatorianos llamados The Covers, son realmente buenos. Creo que lo que les falta es publicidad - aca les ayude un poquito :)

El punto es que el link que debes asignar a la propiedad Movie es
https://www.youtube.com/v/OUeR6-RTrYA

Pueden incluirse varios videos dentro de una misma pagina, sigue las mismas indicaciones para cada uno de ellos.

Eso es todo amigos





viernes, 27 de marzo de 2015

Digan Whiskey

!!! Hola !!!


Hoy les voy a enseñar como tomar fotos desde Excel.

No se preocupen si no son muy fotogenicos, el lente de la camara no apunta hacia ustedes.

Se trata de tomar una instantanea de un sector de la hoja de trabajo,


El comando camara no se encuentra disponible en la cinta de opciones, pero podemos implementarlo a la interfaz del programa para tenerlo siempre a la mano:

Paso No 1 - Agregar el comando Camara a la barra de acceso rapido de Excel





















No sabes agregar un control a la barra de acceso rapido?
Simple, Usa el boton derecho del mouse sobre la barra de acceso rapido y selecciona la opcion "Personalizar la barra de acceso rapido"
Debes agregar el comando, desde el cuadro de dialogo de personalizacion de esta barra de herramientas (buscalo en la categoria comandos que no estan en la cinta de opciones).

Es importante aclarar que este paso se hace solo la primera vez - una vez que tengas el comando instalado en la barra de herramientas, solo dedicate a usarlo.

Paso No 2 - Tomar la foto
Selecciona el rango al cual piensas tomarle la foto, haz click en el boton Camara y por ultimo en el sector de la hoja de trabajo donde quieras vincular la foto.


















En la imagen se observa una foto (la cual es en realidad un objeto Shape - Forma creada con el comando Camara)
Si la cantidad de articulos de la factura de la imagen fuera lo suficientemente larga, es posible que no podamos ver simultaneamente el inicio y el final de la factura. Pero la foto nos mostrara continuamente el resultado final.

Antes de terminar, un par de comentarios:
La "foto" es un elemento shape (forma) vinculado a la hoja en forma dinamica, por lo que cualquier modificacion hecha en el resultado de la factura, despues de tomada la foto, se reflejara en la forma.

Antes de que alguien me envie un mensaje diciendo que es posible observar el inicio y el final de la factura al mismo tiempo, aun cuando esta sea muy larga, simplemente inmovilizando paneles, le dire que tiene toda la razon, Imaginemos entonces que la foto almacena el resumen de varias facturas que se encuentra en otra hoja de trabajo.

Eso es todo amigos

martes, 24 de marzo de 2015

Tatsuo Horiuchi

!!! Hola !!!

Las formas (shapes) es el tema de hoy.

Las formas son esos objetos graficos prediseñados que se insertan en una hoja de trabajo usando el control "formas" de la ficha insertar:



























Se pueden insertar una gran cantidad de formas dentro de una hoja de trabajo.

Editar las formas.

Cuando seleccionas una forma, la cinta de opciones de Excel muestra la ficha Formato:







Como puedes observar es posible modificar el tamaño, el color, agregarle texto si se quiere, hacerla girar, etc. Esto permite al usuario adaptar una forma a sus necesidades.

Y para que sirven las formas?
Algunas personas las usan para resaltar el contenido de la informacion que quieren mostrar, alguna vez vi una macro que mostraba la hora dentro de una de estas formas, en fin, las formas sirven para lo que se te ocurra, incluso para crear obras de arte. Eso si tienes la paciencia y habilidad del señor Tatsuo Horiuchi de 73 años, oriundo del Japon.

Tatsuo Horiuchi es el creador de estas imagenes (usando solamente Formas de Excel) - 14. 659 formas entrelazadas dentro de una hoja de calculo:




Mas obras del mismo autor:


El Sr. Horiuchi posando con sus obras:




Puedes descargar dos de sus obras,


https://drive.google.com/file/d/0B8SVML6_4SPHd0dubjZKcXJaam8/view?usp=sharing

https://drive.google.com/file/d/0B8SVML6_4SPHa2JKQkd6OWtRX2c/view?usp=sharing

Eso es todo amigos


viernes, 20 de marzo de 2015

La importancia de tener un nombre

!!! Hola !!!

El dia de hoy hablaremos sobre como asignarle un nombre a una celda o en general a un rango.

De hecho todas las celdas tienen ya un nombre:
La celda ubicada en la columna G y la fila 8, se llama "G8", el rango de celdas cuyos vertices son A1 y B5, se llama "A1:B5", sin embargo, estos nombres proporcionados por excel, aunque permiten ubicar facilmente el rango dentro de la hoja de trabajo, no son descriptivos respecto a su contenido.

Me explico mejor con la siguiente imagen donde he estractado y simplificado el resumen de un presupuesto:
























En un ejemplo tan basico como este, es claro que para calcular el valor total del presupuesto (en la celda F18), debe escribir la formula: =F6+F11-F16.
Si las celdas F6, F11 y F16 se llamasen respectivamente "directos", "otros" y "descuentos", la formula anterior podria escribirse: = directos + otros - descuentos

Esto proporciona una nueva perspectiva al manejo de formulas, una cuya utilidad no se alcanza a apreciar en este ejemplo, por lo simple del mismo. Imagina una formula mucho mas compleja, donde intervienen muchas otras variables y muchos otros operadores matematicos.


Y como se le puede asignar un nombre a una celda (o a un rango de celdas)?
Facil, solo tienes que usar el control de nombres, el control que se señala en la siguiente imagen.
Simplemente selecciona la celda (o rango de celdas) a renombrar y utiliza el control para asignar un nuevo nombre.
























La interfaz de Excel incluye tambien un cuadro de dialogo que permite gestionar (editar, crear, eliminar) los nombres de un rango, el "Administrador de nombres" - buscalo en la ficha "Formulas" de la cinta de opciones:



























Se muestra a continuacion el calculo del total del presupuesto, luego de haber creado los nombres de las celdas. Se aprecia en la barra de formulas la implementacion de lo explicado en este articulo
























Y como se manipulan los nombres de los rangos usando VBA?

El cuadro de dialogo "nombres de rango" y el "control de nombres" que acabo de mostrar, tienen su representacion en la coleccion Names del modelo de objetos de Excel:

Agregar un nuevo nombre de rango al libro de trabajo activo:
ActiveWorkbook.Names.Add nombre, rango
Ejemplo: ActiveWorkbook.Names.Add "directos", Range("F6")

Eliminar un nombre de un rango del libro activo:
ActiveWorkbook.Names(nombre).Delete
Ejemplo: ActiveWorkbook.Names("directos").Delete

Existen muchos otros metodos y propidades de la coleccion Names, pero estos dos son los de mayor uso.


Glosario

Este articulo ha servido como ejemplo para:
1. Mostrar la utilidad de crear nombres descriptivos a los rangos.

2. Aprender a crear y manipular nombres de rangos desde la interfaz de Excel mediante el control "nombres" y el cuadro de dialogo "nombres de rango"

3. Conocer y manipular otro de los objetos del modelo de objetos de Excel: La coleccion Names - que almacena y permite gestionar los nombres de rangos creados por el usuario, ya sea desde la interfaz del programa o mediante el uso de codigo VBA.


Eso es todo amigos.





jueves, 19 de marzo de 2015

He invertido mucho tiempo en esto

!!!! Hola !!!

Hoy queria enseñar como mostrar un reloj en la barra de estado de Excel.

Dije, queria, pero decidi no hacerlo, pues que diferencia habria entre mirar la hora del dia en la barra de estado de Excel o verla en la barra de tareas de Windows?

No tiene mucho sentido, sin embargo, no deseche la idea por completo:

Tal vez queramos saber el tiempo que llevamos trabajando en Excel con un archivo:

























Ese es el tema de hoy:
Colocar un pequeño cronometro en la barra de estado que se active al momento de abrir el archivo. Esto nos informara el tiempo que llevamos trabajando en el (claro, si no te has dedicado a otras cosas despues de abrirlo).

Manos a la obra.

Paso No 1. - Codigo a escribir en el modulo de clase ThisWorkbook
Option Explicit
Public inicio As Date

Private Sub Workbook_Open()
  inicio = Now()
  cronometro
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.OnTime EarliestTime:=Now() + TimeValue("00:01:00"), procedure:="cronometro", Schedule:=False
Application.StatusBar=False

End Sub
Esto hara que al momento de abrir el libro de trabajo, se cree la variable inicio con la hora actual en invocara al cronometro.
Al final, al momento de cerrar el archivo eliminara el cronometro de la barra de estado

Paso No. 2 - Crear el procedimiento Cronometro dentro de un modulo del proyecto
Public Sub cronometro()
  Dim tiempo As Date
  Dim strTiempo As String
  
  tiempo = Now() - ThisWorkbook.inicio
  
  strTiempo = Format(tiempo, "hh:mm")
  Application.StatusBar = strTiempo
  Application.OnTime Earliesttime:=Now() + TimeValue("00:01:00"), procedure:="cronometro"
End Sub
Esto calculara cada minuto la diferencia entre el inicio y la hora actual y mostrara esta diferencia en la barra de estado.

Notas
1. Seria interesante si pudieramos detener el cronometro cuando abrimos otro archivo y reiniciarlo cuando volvemos a el (No es complicado, es cuestion de programar los eventos Activate y deactivate del libro de trabajo).
2. Seria todavia mas interesante si el cronometro pudiera acumular el tiempo de uso del archivo en todas las sesiones (un estimado del tiempo total invertido en el archivo) - Tampoco es complicado, solo basta almacenar el tiempo acumulado al cerrar el archivo y al momento de abrirlo nuevamente iniciar el cronometro con ese valor.
3. Si noto interes en este tema, podria ampliar el codigo con los 2 puntos indicados.


Glosario
Esta entrada ha servido como ejemplo para:
1. Conocer otro de los objetos de Excel: la barra de estado (StatusBar).

2. Conocer dos procedimientos de evento de Excel: Open y BeforeClose (Estos procedimientos se ejecutan automaticamente respectivamente al momento de abrir y cerrar un archivo).

3. Utilizar el metodo OnTime de Excel para ejecutar un procedimiento cada cierto tiempo.

Eso es todo amigos





martes, 17 de marzo de 2015

Ensamblando las piezas

!!! Hola !!!

Una de las dificultades que se presentan en el proceso de aprendisaje de las caracteristicas de Excel es que se aprenden multitud de caracteristicas del programa (ya sea del manejo de la interfaz y del modelo de objetos a traves de VBA), pero no se tiene la capacidad de implementarlas en forma conjunta dentro de un proyecto.

Son como pildoras informaticas sueltas:
Como lograr que Excel "pronuncie" una frase (ver la entrada: "Que fue lo que dijo")

Como obtener numeros aleatorios (ver la entrada: "Los dados de Excel")

Como obtener el dia de la semana a la que corresponde una fecha (ver la entrada "Que dia fue ese dia")

y otras mas que encuentres en este blog u otros.

Esto es asi por que los articulos de los blogs deben ser cortos, si se quiere que sean atractivos.

Por eso me decidi a crear un proyecto que permita aplicar los conocimientos adquiridos en estas pildoras informaticas:

Vamos a crear una pequeña aplicacion que ayude a estudiar ingles - No estoy todavia muy seguro de que caracteristicas se implementaran, pero sera algo como esto:
Excel dira una frase al azar en ingles y tu deberas escribirla correctamente
(para eso crearemos una base de datos con frases)
Excel mostrara una o varias images de objetos al azar y el usuario debera escribir el nombre (o los nombres) en ingles.
Y otras mas que se me vayan ocurriendo (Acepto sugerencias)

Esto no se hace de la noche a la mañana, toma tiempo, primero hay que conseguir las imagenes jpg, crear la base de datos de frases, etc.

Por ahora les recomiendo que repasen estas entradas (revisen continuamente este articulo, por que voy a ir ampliando este listado).

Que fue lo que dijo?
Para que se familiaricen con la capacidad que tiene Excel de pronunciar frases en ingles.

Los dados de Excel
Para poder entender el proceso de generar numeros aleatorios que permitan seleccionar frases o imagenes al azar

Eso es todo, amigos



Que fue lo que dijo?

!!! Hola !!!


Hoy les voy a mostrar una caracteristica de Microsoft Excel poco conocida, al menos para aquellos que no dominan la lengua de Shakespeare.

Excel puede repetir una frase. Vamos a mostrar varios ejemplos:

Paso No 1.
Abre el Ide de VBA y ubicate en la ventana inmediato

Paso No 2.
Escribe lo siguiente: Application.Speech.Speak "Hello" (termina con la tecla ENTER)

Eso es todo, deberias estar escuchando la frase.


vamos un poco mas alla
Hagamos que Excel lea cada una de las frases que escribes en las hojas de trabajo:

Escribe en la ventana Inmediato:
Application.Speech.SpeakCellOnEnter = True

Listo, a partir de ahora, cada frase que escribas en una celda de la hoja de trabajo sera leida por Excel al momento de usar la tecla ENTER para terminarla.

Como es logico, para deshacer esta caracteristica debes escribir en la ventana inmediato:
Application.Speech.SpeakCellOnEnter = False

Para los que esten interesados y deseen ir un poco mas alla, les dire que lo que acabamos de hacer es manipular el objeto Speech de la aplicacion.
Excel esta compuesto por un sin numero de objetos organizados jerarquicamente, los cuales interactuan entre ellos. El usuario puede manipularlos utilizando el lenguaje de programacion VBA.


Eso es todo amigos







domingo, 15 de marzo de 2015

Los dados de Excel

!!! Hola !!!


En esta entrada voy a mostrar como es que se generan numeros aleatorios en Excel.

Si no sabes lo que es un numero aleatorio, te dire que son numeros al azar.

Como cuando tu le dices a alguien. "Dime un numero cualquiera entre 1 y 100"


Y para que sirven los numeros aleatorios?
Tal vez estes creando un juego en Excel donde tienes que adivinar un numero generado por el programa.

Quizas desees recrear el juego de bingo, para lo cual es necesario que se muestren numeros al azar.

Es posible que tengas un cuestionario de 100 preguntas de un examen y trates de automatizar el proceso para que a cada estudiante le asignen diez de esas preguntas al azar.

Y si solo quieres aprender un poco mas acerca de las capacidades de Microsoft Excel?, ese seria un buen motivo para leer e implementar los ejemplos que se muestran mas adelante.


Generando numeros aleatorios usando la interfaz de Excel

Microsoft Excel cuenta con dos funciones que permiten generar numeros aleatorios:

ALEATORIO (RAND) - Devuelve un numero aleatorio entre 0 y 1.
Ejemplo - En la celda A1 escribe la siguiente formula
=ALEATORIO()
Te devolvera un numero (no se cual, nadie lo sabe - por eso es aleatorio) entre 0 y 1


ALEATORIO.ENTRE (RANDBETWEEN) - Devuelve un numero entero aleatorio comprendido entre los argumentos
Ejemplo - En la celda A1 escribe la siguiente formula
=ALEATORIO.ENTRE(1, 100)
Te devolvera un numero aleatorio entre 1 y 100

Generando un numero aleatorio comprendido entre 2 rangos no consecutivos.
Excel no incluye funciones que devuelvan valores aleatorios comprendidos entre 2 rangos no consecutivos, sin embargo, con un poco de ingenio esto puede hacerse:

Un numero aleatorio entre [1, 200] o entre [800, 1000]
=SI(ALEATORIO()>0.5, ALEATORIO.ENTRE(1,200), ALEATORIO.ENTRE(800,1000))

Generando numeros aleatorios usando codigo VBA
Los programadores de VBA tienen acceso a las mismas funciones de la hoja de trabajo ya explicadas. desde el objeto Application.WorksheetFunction, usando los nombres en ingles de estas funciones - ver mi entrada Nombre de las funciones de Excel en Ingles dentro de este mismo blog

Application.WorksheetFunction.RAND()
Application.WorksheetFunction.RANDBETWEEN(1,100)

VBA, incluye, ademas la funcion rnd que devuelve un numero aleatorio entre 0 y 1:
rnd().

Tambien podemos emular la funcion ALEATORIA.ENTRE para obtener un numero aleatorio en el rango [a,b): (b-a)*rnd()+a

Eso es todo amigos








sábado, 14 de marzo de 2015

En letras

!!! Hola amigos !!!

El dia de hoy quiero compartir con todos una funcion que permite que podamos escribir un numero usando palabras.

algo asi como:






















donde extracte una seccion simplificada de lo que puede ser un presupuesto de construccion, que es el campo donde me desempeño mejor.

Cualquier usuario de Excel, por nuevo que sea, entiende que si modifico la cantidad o el costo unitario de cualquiera de las actividades, la actualizacion de los subtotales y el costo final es automatica.
Pero lo es tambien el costo total en letras?

Si observas detalladamente el grafico, podras observar en la barra de formulas que la celda activa es en realidad una funcion y no un valor escrito a mano.
Una funcion definida por el usuario que ahora comparto con todos los seguidores del blog.

Solo tienes que agregarla a uno de tus modulos y listo:

Public Function EnLetras(Valor) As String
  Dim Centavos As Integer
  Dim Fraccion As String
  Dim Moneda As String
  
  If Not IsNumeric(Valor) Then
    EnLetras = "ERROR"
    Exit Function
  End If
  Moneda = IIf(Int(Abs(Valor)) = 1, " peso", " pesos")
  If Right(Letras(Abs(Int(Valor))), 6) = "illon " Or Right(Letras(Abs(Int(Valor))), 8) = "illones " Then Moneda = "de" & Moneda
  Centavos = Application.Round(Abs(Valor) - Int(Abs(Valor)), 2) * 100
  Fraccion = IIf(Centavos = 1, " centavo", " centavos")
  Fraccion = IIf(Centavos = 0, "", " con " & Letras(Centavos) & Fraccion)
  EnLetras = Letras(Int(Abs(Valor))) & Moneda & Fraccion
  EnLetras = UCase(Left(EnLetras, 1)) & Mid(EnLetras, 2)
  If Valor < 0 Then EnLetras = "menos " & EnLetras
End Function

Private Function Letras(Valor) As String
' Funcion Auxiliar de uso exclusivo de la funcion EnLetras
  Select Case Int(Valor)
    Case 0
      Letras = "cero"
    Case 1
      Letras = "un"
    Case 2
      Letras = "dos"
    Case 3
      Letras = "tres"
    Case 4
      Letras = "cuatro"
    Case 5
      Letras = "cinco"
    Case 6
      Letras = "seis"
    Case 7
      Letras = "siete"
    Case 8
      Letras = "ocho"
    Case 9
      Letras = "nueve"
    Case 10
      Letras = "diez"
    Case 11
      Letras = "once"
    Case 12
      Letras = "doce"
    Case 13
      Letras = "trece"
    Case 14
      Letras = "catorce"
    Case 15
      Letras = "quince"
    Case Is < 20
      Letras = "diez y " & Letras(Valor - 10)
    Case 20
      Letras = "veinte"
    Case Is < 30
      Letras = "veinti" & Letras(Valor - 20)
    Case 30
      Letras = "treinta"
    Case 40
      Letras = "cuarenta"
    Case 50
      Letras = "cincuenta"
    Case 60
      Letras = "sesenta"
    Case 70
      Letras = "setenta"
    Case 80
      Letras = "ochenta"
    Case 90
      Letras = "noventa"
    Case Is < 100
      Letras = Letras(Int(Valor \ 10) * 10) & " y " & Letras(Valor Mod 10)
    Case 100
      Letras = "cien"
    Case Is < 200
      Letras = "ciento " & Letras(Valor - 100)
    Case 200, 300, 400, 600, 800
      Letras = Letras(Int(Valor \ 100)) & "cientos"
    Case 500
      Letras = "quinientos"
    Case 700
      Letras = "setecientos"
    Case 900
      Letras = "novecientos"
    Case Is < 1000
      Letras = Letras(Int(Valor \ 100) * 100) & " " & Letras(Valor Mod 100)
    Case 1000
      Letras = "mil"
    Case Is < 2000
      Letras = "mil " & Letras(Valor Mod 1000)
    Case Is < 1000000
      Letras = Letras(Int(Valor \ 1000)) & " mil"
      If Valor Mod 1000 Then Letras = Letras & " " & Letras(Valor Mod 1000)
    Case 1000000
      Letras = "un millon"
    Case Is < 2000000
      Letras = "un millon " & Letras(Valor Mod 1000000)
    Case Is < 1000000000000#
      Letras = Letras(Int(Valor / 1000000)) & " millones "
      If (Valor - Int(Valor / 1000000) * 1000000) Then
        Letras = Letras & Letras(Valor - Int(Valor / 1000000) * 1000000)
      End If
    Case 1000000000000#
      Letras = "un billon"
    Case Is < 2000000000000#
      Letras = "un billon " & Letras(Valor - Int(Valor / 1000000000000#) * 1000000000000#)
    Case Else
      Letras = Letras(Int(Valor / 1000000000000#)) & " billones"
      If (Valor - Int(Valor / 1000000000000#) * 1000000000000#) Then
        Letras = Letras & " " & Letras(Valor - Int(Valor / 1000000000000#) * 1000000000000#)
      End If
  End Select
End Function


Nota. La funcion no es de mi autoria, tampoco se de quien es. Estuvo dando vuelta en los foros hace un tiempo.

Eso es todo amigos.

viernes, 13 de marzo de 2015

Que dia fue ese dia?

!!!! Hola !!!

Hace un tiempo vi un video de un tipo con una habilidad especial:

Cualquier persona de entre el publico le indicaba una fecha (generalmente su fecha de nacimiento).

El inmediatamente decia que dia de la semana le correspondia.


El algoritmo para realizar ese calculo es simple, lo que impresiona es la capacidad de realizar todos esos calculos mentalmente y de manera inmediata.

Afortunadamente, los que no tenemos esa capacidad podemos hacer lo mismo.
Como?, facil, con la ayuda de Excel y sus funciones.

Ese es el tema de hoy:

Saber que dia de la semana corresponde a una fecha en particular.

Usaremos para esto dos funciones internas de Microsoft Excel:
DIASEM (WEEKDAY) - Devuelve un entero que indica el dia de la semana que se corresponde a una fecha.
ELEGIR (CHOOSE) - Devuelve un valor dependiendo de un indice.

Manos a la obra:
Vamos a calcular, como ejemplo, que dia de la semana correspondera al 7 de abril de 2015, yo se que es martes, pues espero con ansia que llegue ese dia.

Paso 1 - Introducir la fecha
En la celda A1 de una hoja de trabajo, introduce la fecha indicada (o la que tu quieras).
No sabes como introducir una fecha en Excel? escribe 07/04/2015 y listo.

Paso 2 - Calcular el numero correspondiente al dia de la semana
En la celda B1 escribe la siguiente formula: =DIASEM(A1)
El resultado de esta formula es 3, ya que la funcion considera que la semana comienza el dia domingo, asi que el martes le corresponde el dia 3.
Dos comentarios al respecto:
1. El problema ya esta resuelto, ya sabemos que la fecha es un martes, no habria que continuar, sin embargo, lo vamos a hacer, para que la respuesta final sea "Martes" y no el escueto numero 3.
2. Es posible modificar un poco la formula para que no se considere domingo como el primer dia de la semana, si no el lunes (asi se acostumbra en mi pais de origen), pero no es relevante.

Paso 3 - Obtener el nombre del dia con base en el numero del dia
Corrige la fomula de la celda B1 para que quede asi (NO COLOQUES ESPACIOS EN BLANCO SI YO NO LO HAGO)

=ELEGIR(DIASEM(A1), "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes". "Sabado")

Dependiendo de la configuracion del sistema, es posible que en vez de la coma, debas usar el punto y coma en toda la formula (lo sabras si haces las cosas bien y aun asi obtienes un error).

Eso es todo amigos


jueves, 12 de marzo de 2015

Abrir archivos de excel al compas de una cancion

!!! Hola !!!

Te gustaria que al abrir un archivo de Excel, sonara tu cancion favorita?

podrias incluso asignar a cada archivo de Excel una cancion diferente, tal vez quieras que al abrir un archivo de Excel se escuche una instruccion pregrabada respecto al uso y/o utilidad del archivo.

Voy a enseñarte como hacerlo, es facil.
Como es logico, necesitas tener un archivo mp3 en tu computadora (no creo que sea dificil).

Paso No 1.
Insertar el  control ActiveX llamado "Windows media Player" en una de las hojas del libro de trabajo en cuestion.
















No te preocupes si en vez de la ficha "Programador" tu pantalla muestra "Desarrollador" son nombres diferentes para la misma ficha en diferentes versiones de Excel.
Como? no aparece la ficha programador en tu cinta de opciones? En este caso deberas agregarla. Puedes esperar unos dias a que haga una entrada en el blog explicando como se hace esto o simplemente googlea "Mostrar la ficha programador en Excel", es un procedimiento muy sencillo.

Como se observa en la imagen, no aparece el control ActiveX llamado "Windows media Player", seguramente tambien te pasa lo mismo (lo que sucede es que es un control que no se usa mucho, por eso no esta en la lista. Debes hacer click en la ultima opcion "Mas controles".
Busca en la lista el control "Windows media Player" - es de los ultimos, por que estan en orden alfabetico. Boton aceptar y listo
No es que el control vaya a aparecer en el listado de controles. El puntero del mouse mostrara una pequeña cruz que te permitira hacer la insercion del control con un simple click en la hoja de trabajo:



















Hay esta el control. Realmente no importa mucho el tamaño del control, ni el sitio de la hoja donde lo colocaste - pues vamos a hacerlo invisible. (pero mas adelante)

Paso No 2.
El codigo VBA que permitira activar el control al momento de abrir el archivo











Como vez, es un codigo muy corto y sencillo. Lo importante es que se ubique en el procedimiento de evento Open del libro de trabajo, para que sea leido al momento de abrir el archivo.

Paso No 3. (Si quieres)
Vuelve invisible el control para que no estorbe tu trabajo con el archivo (solamente podras manipularlo usando codigo VBA ). Esto puedes hacerlo desde la ficha Programador:
3.1 selecciona el modo diseño si no lo esta.
3.2 selecciona el control Windows media player de la hoja de trabajo y usa el boton propiedades.
3.3 En el cuadro de dialogo propiedades cambia el valor de la propiedad Visible de True a False
Los tres pasos puedes ejecutarlos mas facilmente escribiendo en la ventana inmediato:
Worksheets("Hoja1").WindowsMediaPlayer1 .Visible=False

Paso 4 (y ultimo)
Graba el archivo con formato xlsm (habilitado para macros). Si lo dejas tipo xlsx no va a funcionar.


Eso es todo amigos






miércoles, 11 de marzo de 2015

encontre una momia milenaria

!!! Hola amigos !!!

Si, ya se que el titulo esta un poquitin exagerado, pero fue lo que senti hace un tiempo cuando tuve acceso a una PC de los años 80, !!! funcionando !!!

Me invadio un sentimiento de nostalgia indescriptible.

Funcionaba con diskette, claro.
El sistema operativo: MS2

Empece a buscar a ver que me encontraba:
!!! Dios mio, como hace de falta el mouse !!!

Y asi, buscando ahi estaban.. - No lo podia creer.
Tres momias queridas trabajando para mi como en los viejos tiempos:

Lotus123

















Este, es como el abuelito de Excel. La primera hoja electronica se llamo VisiCalc, pero esta fue la que popularizo el concepto, mas aun, muchas empresas adquirieron su primer computador, solamente para poder utilizar lotus.



WordStar
El abuelo de Word. Todavia recuerdo que para centrar una linea teniamos que usar la combinacion Ctr-O-C pues no habia mouse ni barra de herramientas.

















GWBasic
Con este hice mis primeros pinitos en programacion. Recuerdo que cuando salio Windows, me di a la tarea de que mis programas mostraran las ventanas tambien. Lo hacia dibujando las rayitas y los bordes.


















dicen que en sistemas informaticos, 6 meses equivalen a 10 años de avance en otros temas. Si esto es cierto, mis momias no son milenaras, pero si podria decir que son prehispanicas.

Para terminar, el link de descarga de lotus123: (pensaban que iba a dejar pasar la oprtunidad de copiarlo)
https://drive.google.com/file/d/0B8SVML6_4SPHYmxseTE3V2tsRWs/view?usp=sharing

No creo que les funcione en Windows 7 y menos en Windows 8 (que ese tema de los 64 bits ya no deja ejecutar programas viejitos), pero si pude hacerlo funcionar en Windows XP.

Saludos,

Nombres de las funciones de Excel (En Ingles)

!!! Hola amigos !!!

Todos los que usamos Excel con cierta frecuencia, sabemos que se distribuye en muchos idiomas.

Aunque esto del idioma es solamente una mascara. Me explico:

Cuando sumas un rango de datos escribes dentro de una celda (a veces con a ayuda de la biblioteca de funciones de la cinta de herramientas) "=SUMA(....)"

Esto es lo que escribes (y lo que observas en la barra de formulas), pero internamente Excel procesa la funcion "=SUM(....)". - Si no eres observador, fijate que le falta la "A" al final

De igual manera, todas las demas funciones se muestran y se usan con el nombre asignado en el idioma de la instalacion del programa, pero internamente Excel las procesa con su nombre en Ingles,

Todos estos procesos son automaticos, incluso si creas un archivo en un computador que tiene instalado Excel en otro idioma, cuando lo abras en tu PC, el archivo mostrara los nombres de funciones en tu idioma.

Bueno y que?
que importancia tiene esto?
de que me sirve saber que la funcion SUMA, se llama SUM, que LARGO es en realidad LEN?

De nada, si no estas interesado en aprender a programar en Excel.

Cuando programas en Excel, tienes que usar el nombre de las funciones con su nombre real - y digo real, por que como mencione al principio, los demas idiomas son una mascara.

Ahora si entremos de lleno en el tema:
Como saber el nombre real de una funcion de nuestra hoja de calculo

1.  Utiliza la funcion dentro de una hoja de calculo - En tu idioma (como lo haces siempre)
por ejemplo escribe en la celda B1 la formula: =PROMEDIO(A1:A5)
Espero que tengas datos en ese rango de celdas, de lo contrario la funcion devolvera un error.

2. Selecciona la celda B1 nuevamente (que sea la celda activa)

3. Carga el Ide de VBA (si no sabes lo que es esto, deberias leer mi entrada anterior)

4. En la ventana inmediato del ide, escribe lo siguiente: (Si no ves esta ventana deberias usar la combinacion de teclas Ctrl - G) : ? ActiveCell.Formula (no te olvides de dar enter al final).

Eso es todo. Si lo hiciste bien, la ventana inmediato mostrara =AVERAGE(A1:A5)

AVERAGE es el nombre real de la funcion PROMEDIO de Excel.

Eso es todo amigos





martes, 10 de marzo de 2015

El cuarto de maquinas de Excel

Si usas Excel en forma ocacional o eres nuevo en el manejo del programa, lo mas seguro es que no conozcas lo que yo llamo El cuarto de maquinas de Excel:


Este es el cuarto de maquinas de Excel, mejor conocido como "Ide de VBA"

La imagen no dice mucho,  y si no sabes que es un Ide y tampoco sabes que es VBA, te va a decir menos todavia.
Aunque no parezca, estamos entrando en terrenos de la programacion:

Ide es una abreviacion de "Entorno de desarrollo Integrado" - En ingles, claro
VBA es un lenguaje de programacion

Es decir dentro del Ide de VBA pueden desarrollarse programas que permitan automatizar, mejorar, ampliar, simplificar (y cualquier otro ar que se te ocurra) el trabajo que realizas con Excel.

Si desperte tu curiosidad, sigue mi blog, que a partir de hoy voy a mostrarte como es que es todo este asunto.

Quieres acceder al Ide de VBA? Pulsa la combinacion de teclas ALT-F11