miércoles, febrero 18, 2009

Hipervínculo a una dirección de correo Outlook

Siguiendo en el tema de los hipervínculos, respondemos hoy a la consulta de un de mis lectores: ¿Cómo puedo hacer para crear un hipervínculo a una dirección de correo Outlook dependiendo del valor de una celda con una lista validada?

EL tema es más sencillo de lo que parece en principio, pero hay un pequeño problema por resolver, como en casi todos los aspectos de nuestras vidas.

Empecemos por notar que cuando ponemos en una celda de Excel un texto que sigue el patrón de una dirección de correo electrónico, Excel agrega automáticamente un hipervínculo de tipo “mailto:xxx@yyy.zzz”





Como ya sabemos, podemos crear una lista desplegable usando validación de datos. Para eso creamos una lista de direcciones de mail y le damos un nombre definido. Para más comodidad definimos un rango dinámico con DESREF



Luego creamos la lista desplegable con validación de datos-lista



Ponemos la lista desplegable en la celda B1, de manera que podamos elegir la dirección



El problema con este método, es que a diferencia de cuando introducimos la dirección manualmente, Excel no crea el hipervínculo



Existen dos remedios a esta situación:

1 – después de seleccionar el nombre apretamos F2 (edición) e inmediatamente después Enter.

2 – Creamos un evento de manera que las acciones señaladas en 1 sucedan automáticamente. En el módulo Vba de la hoja1 (en nuestro ejemplo) ponemos este código

Private Sub Worksheet_Change(ByVal Target As Range)

If Union(Target, [B1]).Address = [B1].Address Then
SendKeys "{F2}"
SendKeys "{Enter}"
Application.EnableEvents = False
End If
Application.EnableEvents = True

End Sub

La sentencia SendKeys imita el tecleado de F2 y Enter si la variable Target coincide con la celda que hemos definido como celda que contiene la dirección.





Technorati Tags:

lunes, febrero 16, 2009

Hipervínculo a una celda específica en Excel.

En la nota sobre hipervínculos en Excel vimos como crearlos en forma dinámica. En ese ejemplo mostrábamos como hacer que al elegir un valor de una lista desplegable, el hipervínculo se dirigiera a la primer celda vacía de una columna en una hoja determinada.

También podemos hacer que el vínculo se ligue a una celda determinada de un rango. Por ejemplo, supongamos que tenemos un cuaderno con una lista de clientes en una hoja (para el caso, “clientes”). En otra hoja ponemos una lista desplegable (con validación de datos) que muestre todos los nombres de los clientes. Queremos que al elegir un cliente, la celda que contiene el hipervínculo se actualice y que al pulsarlo nos lleve a la fila de cliente.

Como en el caso anterior, usamos la función HIPERVINCULO. La fórmula es sencilla, pero aprovecharemos la ocasión para mostrar también una técnica para construir fórmulas no tan sencillas.

En la hoja “clientes” tenemos esta lista





Empezamos por crear un rango dinámico con un nombre definido





La fórmula del nombre definido es
=DESREF(Clientes!$A$2,0,0,CONTARA(Clientes!$A:$A)-1,1)

Esta fórmula nos permite que el rango definido por el nombre se vaya adaptando a medida que agregamos o quitamos clientes de la lista.

En otra hoja creamos la lista desplegable basándonos en el nombre definido




En la celda contigua queremos poner la fórmula que cree el hipervínculo al cliente según se haya elegido en la lista desplegable.

Para encontrar en fila del rango de los clientes se encuentra el elegido usamos la función COINCIDIR de esta manera

=COINCIDIR(A1,Clientes,0)+1





Usamos el nombre definido “clientes” pero agregamos 1 al resultado ya que el nombre no toma en cuenta la primer fila del rango (el encabezamiento de la columna A).

Ahora podemos crear con facilidad la dirección de la celda buscada con la función DIRECCION

=DIRECCION(B1,1,,,"clientes")




Podemos usar el resultado en la celda B4 como argumento en la función HIPERVINCULO que pondremos en la celda B1

=HIPERVINCULO("#"&B4,"Ver "&A1)



Pero esto nos obligaría a usar celdas auxiliares. Sencillamente podemos reemplazar la referencia en la función por las fórmulas que hemos usado, quedando

=HIPERVINCULO("#"&DIRECCION(COINCIDIR(A1,Clientes!A:A,0),1,,,"clientes"),"Ver "&A1)






La pregunta que se impone ahora es: ¿cómo hacemos para que al elegir el cliente en la celda A1 Excel se dirija automáticamente a la celda correspondiente sin necesidad de pulsar en B1?

Bien, este será el tema de una futura nota.


Technorati Tags:

domingo, febrero 15, 2009

Como contactarse con JLD Excel Blog

Este blog se nutre, entre otras cosas, de los comentarios a las notas y en particular de las consultas que recibo en mi casilla de correo.

Hoy en día (Febrero de 2009) este blog recibe aproximadamente más 40 mil visitas por mes (entre 80000 a 100000 páginas vistas por mes) y espero que el tráfico siga creciendo. Como seguramente comprenderán, la cantidad de mails que recibo crece en relación al tráfico en el blog. Si bien esto me llena de satisfacción, no tengo hoy en día ninguna posibilidad de responder a todas las consultas.

Antes de enviar un mail, les ruego tomar en cuenta estos criterios:

  • Muchas veces es más eficiente consultar un foro en la red, de donde recibirán muchas respuestas y podrán elegir la que mejor resuelva la consulta. El tiempo que puedo dedicar a cada consulta es muy limitado, tomando en cuenta que este blog es mi pasatiempo.


  • Si deciden enviarme una consulta ésta debe ser precisa, no formulada en términos generales (“¿cómo hacer un sistema de contabilidad para una pequeña empresa en Excel?”). La consulta debe centrarse sobre un único problema que no logran resolver.


  • De ser posible hay que adjuntar un archivo con el ejemplo de lo que quieren resolver. La descripción del problema en el cuerpo del mail debe ser lo más concisa posible.


  • Los archivos adjuntos deben ser Excel; las explicaciones pueden agregarse en cuadros de texto. No enviar imágenes o archivos PDF.


  • El mail tiene que estar escrito de manera inteligible e invirtiendo algún esfuerzo en evitar errores de ortografía. Por favor evitar abreviaciones como “k” en lugar de “que” y otras por el estilo.


  • Ayuda en desarrollo de modelos y todo lo que exceda una cantidad razonable de tiempo para su respuesta, será considerado como un pedido de presupuesto para el desarrollo profesional del modelo. Por supuesto, pueden dirigirse a mí sin ningún compromiso.



La dirección de mail para contactarme: jorgedun@gmail.com