Una cosa lleva a la otra, es indiscutible. Muchas consultas que me realizan a través del correo electrónico las respondo en forma privada, ya que van mas por el lado de la programación que temas de Excel en específico (manejar bases de datos desde PowerPoint, el algoritmo de Floyd-Warshall, el método de Montecarlo, etc, etc, etc). Si bien esta no es exclusiva de mi querido Excel, se encuentra muy ligada a el, y estimo valioso indagar un poco al respecto, por que la suite de Microsoft Office nos ofrece mucho mas que un par de aplicaciones que manejan datos, imágenes o texto: en conjunto (y bien utilizadas) nos brinda varios programas con los cuales podremos interactuar y, en mas de un caso, lograr prescindir de la compra de software adicional.
[+/-] Ver el resto / OcultarHoy trataremos sobre algunos aspectos en la "combinación" de Word con Excel, incorporando el segundo al área de trabajo del primero.
Word es un editor de texto muy poderoso, quizás llegando a límites que, la mayoría, aún no ha explorado. Casi me animaría a decir que eso de "editor de texto" le quedó muy muy chico, algo parecido a "el iPhone es un celular". No quedan dudas sobre la veracidad de la frase "el iPhone es un celular", pero... ¿eso es todo? Bueno, lo mismo pasa con Word.
Dibujemos una tabla. Si luego la seleccionamos y aplicamos algunos de los "formatos rápidos", los resultados serán iguales a los de Excel:
la pestaña "diseño" tiene muchos formatos para ofrecer.
Claro, se me olvidaba. En Excel puedo generar funciones que totalizarían los valores de esa tabla, realizando un manejo de datos mucho mas eficiente. Bueno, en Word también... si, también soporta muchas funciones.
Agregamos una fila mas y hacemos click dentro de la última celda en la columna "soja". Luego vamos a "insertar / elementos rápidos / campo", lo que nos traerá a la pantalla el siguiente formulario:
Omitiremos la ventana de la izquierda, por el momento. Presionamos el botón "Fórmula", para completar los datos requeridos:
La fórmula se autocompleta: =SUM(ABOVE), es decir, que sumo todo "lo que hay arriba". De la lista desplegable seleccioné el formato deseado, obteniendo este resultado:
listo. la suma tal cual la solicitamos. un lujo.
Completo la celda correspondiente al total de la columna "maiz". Como argumento de la función indiqué ABOVE, o sea que sumará todo lo que se encuentre encima de la función, si el dato es numérico. ¿Y si solo necesito abarcar un rango de esa tabla? Como imaginarán también se puede, sin problemas.
Para ello debemos "focalizar" nuestra mente como si estuviésemos dentro de Excel: el encabezado "soja" se encontraría en la celda B1 (fila 1, columna 2 de la tabla). En base a eso.....
indico el rango, tal como lo haría en Excel. Las funciones debemos ingresarlas en Inglés. Noten que aplico otro formato al resultado: 0% (porcentaje)
Y los buenos resultados no se hacen esperar:
=AVERAGE(B2:B4).. exactamente igual a como lo haríamos en Excel.
Si hacemos click derecho sobre cualquiera de los campos calculados, podremos seleccionar la opción "activar o desactivar códigos de campo", para así visualizar la sintaxis de la función, pudiéndola modificar mas fácil y rapidamente:
la sintaxis no es complicada, solo debemos adaptarnos a ella.
Debajo de nuestra tabla (y llendo ahora a la ventana izquierda del formulario que se nos presenta al insertar un "elemento rápido") podemos incluir información varia, que se actualizará al presionar F9. Valga esta aclaración para también actualizar las funciones ingresadas: con F9, igual que en Excel.
Incluímos: fecha de creación del documento, nombre de archivo y la incial del usuario:
Si activo la visualización del código tendré una buena forma de aprender la sintaxis de estos campos calculados y, con un poco de práctica, modificarlos de acuerdo a mis necesidades:
podemos ver como para que el texto se muestre en mayúsculas hay que agregar \*Upper\. Por lógica, con Lower será en minúsculas.
Volvamos un segundo al formulario:
existe la lista desplegable "categorías", en donde podremos seleccionar el tipo de función a insertar: sobre el archivo, datos del usuario, funciones matemáticas, etc, etc, etc. Hay muchísimas y con una gran cantidad de opciones personalizables: es cuestión de investigar un poco.
Selecciono la tabla, desde el encabezado hasta la cuarta fila, omitiendo todas las funciones creadas hasta el momento:
Me dirijo a "inserta / gráfico" y todo queda realizado:
Noten que Word nos incrustó los datos de la tabla en una pequeña hoja de cálculos. Cabe aclarar que los datos que nutren al gráfico dependerán de esa planilla y no de la tabla que realizamos en Word.
Hemos visto como incorporar funciones en Word, un dato no menor y por demás de útil; así no dependeremos de una planilla auxiliar para realizar cálculos.
Pero... Excel es Excel y Word es Word. Si bien ambos aplicativos tiene herramientas para "suplantarse" mutuamente, seguro que nos quedaremos cortos a la hora de realizar un análisis de datos profundos desde Word. De igual forma si pretendiéramos armar un informe impreso en Excel. Y ahí la potencia de combinarlos.
Nos vamos a la pestaña "Insertar / Objeto", para acceder a la larga lista de los mismos, disponibles para acoplar al actual documento de Word:
aquí existen dos opciones: generar una hoja de cálculos nueva o bien navegar hacia una existente e incorporarla al documento.
Creamos uno nuevo. Vean como la barra de herramientas de Word, automáticamente, se transforma en la de Excel, teniendo a nuestra disposición todas sus herramientas:
aun estamos en word (noten el título de la ventana), pero incorporamos a excel.
Haciendo click en cualquier parte del documento, volvemos a Word. Si necesitamos modificar los datos presentes en la hoja de cálculos acoplada, realizamos un doble click sobre el objeto.
Si incorporamos un libro de Excel existente, atención a un detalle:
Al tildar "vincular al archivo" creo una referencia directa: todo dato modificado en el Excel se verá reflejado en Word. Es perfecto para confeccionar informes dinámicos: tengo todos mis datos de avanzada en Excel, y a ese mismo libro lo inserto en Word, con el objetivo de lograr una salida impresa con características totalmente profesionales.
El tema de presiona F9 para actualizar las funciones (vistas al inicio del post), puede resultar bastante incómoda. Podemos diseñar una macro que actualice los campos con funciones presentes en el documento, de esta forma:
Sub AutoOpen() 'defino las variables de uso local Dim rango As Range Dim campo As Field 'recorro todos los rangos creados en el 'documento, actualizando sus campos (update) For Each rango In ActiveDocument.StoryRanges For Each campo In rango.Fields campo.Update Next campo Next rango 'destruyo los objetos, para liberar recursos Set campo = Nothing Set rango = Nothing End Sub
El código arriba señalado lo colocamos en Word: Alt + F11 para acceder a VBA y luego "Insertar / Módulo", igual que en Excel. Vean que aquí también es posible generar el procedimiento que se ejecute al abrir el documento, que difiere levemente al utilizado en Excel:
Sub AutoOpen 'todo junto para Word
Sub Auto_Open 'con guión bajo para Excel
Si ofrecemos a nuestros usuarios la posibilidad de generar un informe en Word nutrido de datos provenientes de Excel, le resultará incómodo ir hasta el .doc y abrirlo para pre-visualizarlo. Pero esto se puede solucionar con muy poco código de VBA, utilizando la sentencia "Shell":
Sub VerDoc() Dim Ruta As String Dim RutaApp As String Dim Doc As String 'tomo la ruta en donde tengo guardado el Word, que 'es el mismo directorio del libro en Excel: Ruta = ActiveWorkbook.Path & "\" 'Nombre del archivo: Doc = "word-excel-01.doc" 'ahora armo la ruta en donde está instalado word: '(recordemos que comparte el mismo directorio de 'instalacion que excel) RutaApp = Application.Path & "\winword.exe" 'ahora utilizo a Sheel: dentro del primer argumento le paso la ruta 'en donde se encuentra instalado Word, para que lo abra y le conca 'teno la ruta y nombre del documento: 'observen el espacio en blanco: si lo omitimos, Shell falla. 'vbNormalFocus es para que la ventana se muestre en vista normal: Shell (RutaApp & " " & Ruta & Doc), vbNormalFocus End Sub
Shell se encarga de ejecutar el archivo .exe que le pasamos como argumento. De allí que primero guarde en una variable la ruta en donde está instalado Word en el ordenador, en el ejemplo dentro de RutaApp. Al saber donde está el ejecutable de Word, luego se lo paso a Shell, para que lo abra. A su vez (y separado por un espacio) paso la dirección en donde se encuentra el archivo (documento existente) que debe abrir, si omito esto último abrirá Word con un nuevo documento en blanco. Desde ya que ambas rutas deben ser correctas, caso contrario fallará.
Repasemos: sabemos agregar funciones a una tabla en Word, vincularle un gráfico, insertar el objeto Excel dentro de Word (con una hoja de cálculos nueva o existente), crear una macro que actualice las funciones presentes en la tabla y crear una macro que (desde Excel) abra el documento en Word para previsualizarlo.
Mas que bien por hoy, solo resta practicar con lo visto hasta ahora... Cosa que no deben dejar de hacer, por que les será de mucha utilidad en sus proyectos, profesionalizando al máximo los mismos.
combinaciones con word
ResponderEliminar