<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;A0ICQn4yeyp7ImA9WhRUGUg.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484</id><updated>2012-01-30T22:39:23.093+01:00</updated><category term="solver" /><category term="economía y finanzas" /><category term="formatos" /><category term="excel avanzado" /><category term="excel mobile" /><category term="FSO" /><category term="utilidades" /><category term="gráficos" /><category term="fórmulas" /><category term="aplicaciones" /><category term="access" /><category term="macros en excel" /><category term="word" /><category term="excel intermedio" /><category term="excel fácil" /><category term="funciones personalizadas" /><category term="validación de datos" /><title>Hojas de cálculo en Excel</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>128</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/ZfEZ" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="blogspot/zfez" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><logo>http://sites.google.com/site/mikorreo/archivos/hojas-de-calculo-en-excel-feed.jpg</logo><entry gd:etag="W/&quot;AkECR3s6eyp7ImA9WhRUFUs.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-5525813815754834921</id><published>2012-01-25T18:14:00.016+01:00</published><updated>2012-01-26T10:04:26.513+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T10:04:26.513+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Plantillas Excel</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0d0c2qMrnO5PJZAWWzlP8DmglzY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0d0c2qMrnO5PJZAWWzlP8DmglzY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0d0c2qMrnO5PJZAWWzlP8DmglzY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0d0c2qMrnO5PJZAWWzlP8DmglzY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Después del cierre de Megaupload, he colocado nuevamente y en los servidores de Mediafire, todos los ejemplos que tenía en el blog de &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com" title="Excel"&gt;&lt;strong&gt;Excel&lt;/strong&gt;&lt;/a&gt;, y en los que había un libro o una plantilla en Excel para descargar.&lt;br /&gt;&lt;br /&gt;Para ahorraros el trabajo, paso a relacionaros todos los artículos donde hay ejercicios o ejemplos con plantillas en Excel, listas para usar, y que están nuevamente online. Si hubiera algún problema con alguna descarga, o me he dejado alguna plantilla de Excel por incluir, por favor, dejad un comentario en este nuevo artículo, para poder corregirlo, y ponerlo a disposición de todos los lectores del blog.&lt;br /&gt;&lt;br /&gt;Aprovecho también para comunicaros que en este mismo artículo, iré incluyendo los ficheros de los nuevos artículos que publique, con lo que será un post de actualización continua, y donde siempre podréis consultar de un simple vistazo, aquellos temas que más os interesen y de los que queráis bajaros algún ejemplo de Excel listo para usar.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" width="100%" cellspacing="0" cellpadding="6" style="border: 1px solid #6a8535; border-collapse: collapse;"&gt;&lt;tr style="background-color: #bcd191;"&gt;&lt;td style="font-size: 12px;"&gt;&lt;strong&gt;Artículo de Excel publicado&lt;/strong&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;strong&gt;Descarga del fichero de Excel&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2011/09/33-utilidades-para-microsoft-excel.html" title="33 utilidades para Microsoft Excel (manual en PDF)"&gt;33 utilidades para Microsoft Excel (manual en PDF)&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?qawpo3v14cp8129" title="Descargar manual en PDF" target="_blank" rel="nofollow"&gt;Descargar manual en PDF&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2011/08/calendario-emergente-en-excel.html" title="Calendario emergente en Excel"&gt;Calendario emergente en Excel&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?pspbc822y38awbk" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2011/06/controlar-vencimientos-de-facturas-y.html" title="Controlar vencimientos de facturas y recibos, con descuento comercial"&gt;Controlar vencimientos de facturas y recibos, con descuento comercial&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?iqbl9idfi0itlcf" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2011/05/buscar-valores-en-un-rango-de-datos.html" title="Buscar valores en un rango de datos"&gt;Buscar valores en un rango de datos&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?412e79dtqdf8u3c" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2011/03/mostrar-imagenes-en-un-formulario.html" title="Mostrar imágenes en un formulario"&gt;Mostrar imágenes en un formulario&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?p3322u2my3uwpwc" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2011/01/medias-ponderadas.html" title="Medias ponderadas"&gt;Medias ponderadas&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?jud43kn8ym6ttoe" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/11/incluir-un-calendario-en-un-formulario.html" title="Incluir un calendario en un formulario"&gt;Incluir un calendario en un formulario&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?kb1m966p0c9l6k9" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/09/calcular-vencimientos.html" title="Calcular vencimientos"&gt;Calcular vencimientos&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?f5ms3dt5yj055lj" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/09/controlar-vencimientos-de-facturas-y.html" title="Controlar vencimientos de facturas y recibos"&gt;Controlar vencimientos de facturas y recibos&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?36yl6wadb39d08a" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/06/prestamos-segun-el-metodo-americano.html" title="Préstamos según el método americano"&gt;Préstamos según el método americano&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?w72nyjqh39wsko9" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/05/prestamos-con-amortizacion-de-capital.html" title="Préstamos con amortización de capital constante"&gt;Préstamos con amortización de capital constante&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?777h1gifdqzh47m" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/04/calculadora-de-tiempos.html" title="Calculadora de tiempos"&gt;Calculadora de tiempos&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?u5bhtyt6n2ljyib" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/03/habilitar-y-deshabilitar-controles-de.html" title="Habilitar y deshabilitar controles de un formulario"&gt;Habilitar y deshabilitar controles de un formulario&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?mj6jyspyurxyrwr" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/02/calcular-la-tae.html" title="Calcular la TAE"&gt;Calcular la TAE&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?7sbkb8s480gc9n5" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/01/prestamos-y-calculo-de-hipotecas.html" title="Préstamos y cálculo de hipotecas"&gt;Préstamos y cálculo de hipotecas&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?3k4w3et82vx4ckk" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/12/modificar-datos-utilizando-un.html" title="Modificar datos utilizando un formulario"&gt;Modificar datos utilizando un formulario&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?p5lmhn47alxl3vx" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/12/protegiendo-nuestros-trabajos-en-excel.html" title="Protegiendo nuestros trabajos en Excel"&gt;Protegiendo nuestros trabajos en Excel&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?59u9ihz3z6d6eaa" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/11/introducir-datos-utilizando-un.html" title="Introducir datos utilizando un fomrulario"&gt;Introducir datos utilizando un fomrulario&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?5aqjfvjdc72ko28" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/11/calendarios-para-imprimir.html" title="Calendarios para imprimir"&gt;Calendarios para imprimir&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?qry48k2xscm9bb3" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/10/enviar-un-email-desde-excel.html" title="Enviar un email desde Excel"&gt;Enviar un email desde Excel&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?5tn89torunb25r8" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/09/obtener-datos-de-una-pagina-web.html" title="Obtener datos de una página web"&gt;Obtener datos de una página web&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?9u76k5oqtmto1xl" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/09/ejecutar-macro-al-seleccionar-combobox.html" title="Ejecutar macro al seleccionar un elemento de un combobox"&gt;Ejecutar macro al seleccionar un elemento de un combobox&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?sq714al8t3budap" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/09/espacio-libre-y-total-en-disco.html" title="Espacio libre y espacio total en disco"&gt;Espacio libre y espacio total en disco&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?cu3z46s78u86qyv" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/08/validar-la-entrada-de-datos-en-un.html" title="Validar la entrada de datos en un formulario"&gt;Validar la entrada de datos en un formulario&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?b918e7p4d5xs0gj" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/06/numeros-aleatorios-no-repetidos.html" title="Números aleatorios no repetidos"&gt;Números aleatorios no repetidos&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?s91tvv7xr6fz195" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/06/escribir-datos-de-otro-fichero-excel.html" title="Escribir datos de otro fichero Excel"&gt;Escribir datos de otro fichero Excel&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?bbc46oajxvyufzc" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/05/formularios-dinamicos.html" title="Formularios dinámicos"&gt;Formularios dinámicos&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?6zt8c92y14a4xl1" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/05/buscar-hojas-ocultas.html" title="Buscar hojas ocultas"&gt;Buscar hojas ocultas&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?20mexywampmatqq" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/04/informar-macro-ejecutandose.html" title="Informar de que está ejecutándose un macro"&gt;Informar de que está ejecutándose un macro&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?gda3fm1imnmvbul" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/03/importar-datos-concretos-de-un-fichero.html" title="Importar datos concretos de un fichero de texto"&gt;Importar datos concretos de un fichero de texto&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?aswcho3cwo398po" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/03/combinar-correspondencia-excel-word.html" title="Combinar correspondencia con Excel y Word"&gt;Combinar correspondencia con Excel y Word&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?806bwnrf5oio5jp" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/02/calcular-vencimientos-reales-de.html" title="Calcular vencimientos reales de facturas"&gt;Calcular vencimientos reales de facturas&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?49lf8o9zvir3zce" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/02/combobox-sacandoles-provecho.html" title="Combobox: sacándoles provecho"&gt;Combobox: sacándoles provecho&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?td1gbzdjcdkvowf" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/01/solver-clculo-de-la-tir.html" title="Solver: cálculo de la TIR"&gt;Solver: cálculo de la TIR&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?7e9zbb539eitzfz" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/12/combobox-dependientes.html" title="Combobox dependientes"&gt;Combobox dependientes&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?d7j9vihdd0nbneh" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/12/impedir-que-se-cambie-el-nombre-una.html" title="Impedir que se cambie el nombre a una hoja"&gt;Impedir que se cambie el nombre a una hoja&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?cg29846vjygqzc1" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/11/evolucin-de-un-capital-inters-simple-y.html" title="Evolución de un capital a interés simple y a interés compuesto"&gt;Evolución de un capital a interés simple y a interés compuesto&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?ylx7qbgrcsb5yk6" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/11/euroconversor.html" title="Euroconversor"&gt;Euroconversor&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?hlb6tw9e0zgm1ji" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/11/listar-los-archivos-de-un-directorio.html" title="Listar los ficheros de un directorio"&gt;Listar los ficheros de un directorio&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?wma8b1xqb1xnk41" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/11/convertir-unidades-de-tiempo-formato.html" title="Convertir unidades de tiempo a formato hh:mm:ss"&gt;Convertir unidades de tiempo a formato hh:mm:ss&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?uhu3d5o2aduh1ah" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/10/calcular-el-umbral-de-rentabilidad-con.html" title="Calcular el umbral de rentabilidad, con Excel"&gt;Calcular el umbral de rentabilidad, con Excel&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?ksun32csn71kgym" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/10/llenar-dinamicamente-un-combobox.html" title="Llenar dinámicamente un combobox"&gt;Llenar dinámicamente un combobox&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?i8tmbda3pd3zoon" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/10/control-horario-horas-normales-y-horas.html" title="Control horario: Horas normales y horas extras"&gt;Control horario: Horas normales y horas extras&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?7ru95oeczyb3pae" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/10/mostrar-y-ocultar-hojas-utilizando.html" title="Mostrar y ocultar hojas, utilizando macros"&gt;Mostrar y ocultar hojas, utilizando macros&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?dztw2sun68cb32u" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/09/mostrar-imgenes-asociadas-un.html" title="Mostrar imágenes asociadas a un desplegable"&gt;Mostrar imágenes asociadas a un desplegable&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?lg8eeobjhosnbgb" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/09/validacin-de-listas-dependientes.html" title="Validación de listas dependientes"&gt;Validación de listas dependientes&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?xzndy9vjbs3zlss" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/08/validacin-con-datos-en-otra-hoja.html" title="Validación con datos en otra hoja"&gt;Validación con datos en otra hoja&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?8zq33dyhq7yah9f" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/07/crear-un-grfico-con-un-macro.html" title="Crear un gráfico, con un macro"&gt;Crear un gráfico, con un macro&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?de3ft50e0jvec4j" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/07/formularios-inteligentes.html" title="Formularios inteligentes"&gt;Formularios inteligentes&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?q5609ur1a9sc35a" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/06/ms-sobre-las-funciones-de-bases-de.html" title="Más sobre las funciones de bases de datos personalizadas"&gt;Más sobre las funciones de bases de datos personalizadas&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?1pl99irfu46djsl" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/06/funciones-de-bases-de-datos.html" title="Funciones de bases de datos personalizadas"&gt;Funciones de bases de datos personalizadas&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?hf6vaot1zbp2mtt" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/06/volviendo-con-los-nmeros-aleatorios.html" title="Volviendo con los números aleatorios"&gt;Volviendo con los números aleatorios&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?aen1bqtamlbw5qp" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/06/sencilla-aplicacin-en-excel.html" title="Sencilla aplicación en Excel"&gt;Sencilla aplicación en Excel&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?piqr7crx7a06nnp" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/05/leer-el-nmero-de-serie-de-los-discos.html" title="Leer el número de serie de los discos"&gt;Leer el número de serie de los discos&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?31mle5c1q1dtqr3" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/04/leer-una-base-de-datos-access.html" title="Leer una base de datos Access"&gt;Leer una base de datos Access&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?n585ybxbv55lm1i" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/04/calcular-la-letra-del-nif-o-del-dni.html" title="Calcular la letra del NIF (o del DNI)"&gt;Calcular la letra del NIF (o del DNI)&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?dwit5a7uvd3sn81" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/04/leer-un-fichero-de-texto-plano.html" title="Leer un fichero de texto plano"&gt;Leer un fichero de texto plano&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?budx7m2oaj0t2qk" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/04/impedir-que-se-cambie-el-nombre-al.html" title="Impedir que se cambie el nombre al fichero"&gt;Impedir que se cambie el nombre al fichero&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?i98ynamdf8dmigm" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/04/uso-de-la-funcin-bdcontar.html" title="La función BDContar"&gt;La función BDContar&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?j396qe063c92ed3" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color: #f4f7ed;"&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/03/crear-hojas-con-un-clic.html" title="Crear hojas con un clic"&gt;Crear hojas con un clic&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?j73i6lfcevd6qig" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/03/tiempo-transcurrido-entre-dos-fechas.html" title="Tiempo transcurrido entre dos fechas"&gt;Tiempo transcurrido entre dos fechas&lt;/a&gt;&lt;/td&gt;&lt;td align="center" style="border: 1px solid #6a8535; font-size: 12px;"&gt;&lt;a href="http://www.mediafire.com/?28s1q11qrimrc3u" title="Descargar plantilla de Excel" target="_blank" rel="nofollow"&gt;Descargar plantilla de Excel&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-5525813815754834921?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/5525813815754834921/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=5525813815754834921" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/5525813815754834921?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/5525813815754834921?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2012/01/plantillas-excel.html" title="Plantillas Excel" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D08NRngyeCp7ImA9WhRUEEo.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-4174437184215379389</id><published>2011-09-14T00:01:00.017+02:00</published><updated>2012-01-20T17:11:37.690+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T17:11:37.690+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aplicaciones" /><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="fórmulas" /><category scheme="http://www.blogger.com/atom/ns#" term="excel intermedio" /><title>33 Utilidades para Microsoft Excel</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XMb1AlY_jRkJdIWmg9TG14-ZQ4w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XMb1AlY_jRkJdIWmg9TG14-ZQ4w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XMb1AlY_jRkJdIWmg9TG14-ZQ4w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XMb1AlY_jRkJdIWmg9TG14-ZQ4w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hoy os presento un manual en pdf, de lo que creo que podrían ser, las 33 mejores utilidades para Microsoft &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com" title="Excel"&gt;Excel&lt;/a&gt; que he publicado en el blog. Quizás algunos de vosotros no estéis de acuerdo, y penséis que hay otros artículos en el blog que deberían incluirse en el manual. Muy probablemente tengáis razón, pero he escogido esas 33 utilidades, después de hacer muchos descartes.&lt;br /&gt;&lt;br /&gt;Este manual con &lt;strong&gt;33 utilidades para Microsoft Excel&lt;/strong&gt;, no pretende ser un manual de cabecera, pero si un manual de consulta, especialmente ideado para aquellos lectores que quieran aprender las posibilidades de las &lt;strong&gt;macros en Excel&lt;/strong&gt;. No obstante, este manual no solo incluye macros, sino que también podréis encontrar en él, funciones propias de Excel, como la &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/05/calcular-la-tir-y-el-van.html" title="TIR"&gt;TIR&lt;/a&gt;, y el VAN, por poner solo dos ejemplos.&lt;br /&gt;&lt;br /&gt;El manual, como todo lo que encontrarás en este humilde blog de Excel, es gratuito y de libre distribución, por lo que puedes imprimirlo, enviárselo a tus amigos, compartirlo, y en definitiva, hacer lo que quieras con el :-)&lt;br /&gt;&lt;br /&gt;En muchos de los artículos, podréis comprobar que al final de los mismos, hay un enlace para descargar un fichero con todo lo explicado, para que el usuario no tenga que partir de cero escribiendo el código fuente en Excel. Asimismo, se incluye un enlace a la entrada original de este blog, por si en algún momento el lector quiere acercarse hasta aquí, para ver si he realizado algún cambio o modificación en algún artículo del blog, como ha ocurrido recientemente por ejemplo, en el que explico como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/09/obtener-datos-de-una-pagina-web.html" title="obtener datos de una página web"&gt;obtener datos de una página web&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Estas son las utilidades que he incluido en el pdf:&lt;br /&gt;&lt;br /&gt;1. Obtener el nombre del archivo.&lt;br /&gt;2. Obtener el nombre de la hoja.&lt;br /&gt;3. Obtener la ruta, el nombre del fichero, y la hoja.&lt;br /&gt;4. Mi primer macro en Excel.&lt;br /&gt;5. Mi primer UserForm.&lt;br /&gt;6. Introducir datos utilizando un formulario.&lt;br /&gt;7. Modificar datos utilizando un formulario.&lt;br /&gt;8. Mi primer ComboBox.&lt;br /&gt;9. Sacándoles provecho a los ComboBox.&lt;br /&gt;10. Macro al abrir o cerrar un libro.&lt;br /&gt;11. Desproteger una hoja de cálculo.&lt;br /&gt;12. Crear carpetas (o directorios), desde Excel.&lt;br /&gt;13. Poner la hora en una celda.&lt;br /&gt;14. Crear hojas con un clic.&lt;br /&gt;15. Buscar hojas ocultas.&lt;br /&gt;16. Mostrar y ocultar hojas, utilizando macros.&lt;br /&gt;17. Leer una base de datos Access.&lt;br /&gt;18. Simultanear filas de colores.&lt;br /&gt;19. Validación con datos en otra hoja.&lt;br /&gt;20. Validación de listas dependientes.&lt;br /&gt;21. Control horario: horas normales y horas extras.&lt;br /&gt;22. Números aleatorios no repetidos.&lt;br /&gt;23. Préstamos y cálculo de hipotecas.&lt;br /&gt;24. Préstamos según el método americano.&lt;br /&gt;25. Préstamos con amortización de capital constante.&lt;br /&gt;26. Calcular la TAE.&lt;br /&gt;27. Calcular la TIR y el VAN.&lt;br /&gt;28. Evolución de un capital a interés simple e interés compuesto.&lt;br /&gt;29. Calcular la letra del NIF/DNI.&lt;br /&gt;30. Controlar vencimientos de facturas y recibos.&lt;br /&gt;31. Calcular vencimientos.&lt;br /&gt;32. Obtener datos de una página web.&lt;br /&gt;33. Calendarios para imprimir.&lt;br /&gt;&lt;br /&gt;Aquí os dejo una imagen de una vista a 4 páginas, para que os hagáis una idea de lo que podéis encontrar en el pdf que podéis descargar más abajo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-vskGV88IfJU/Tm_BuKgANsI/AAAAAAAAHHg/QcpNRYZN7f4/s1600/33-utilidades-para-Microsoft-Excel.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 287px; height: 400px;" src="http://2.bp.blogspot.com/-vskGV88IfJU/Tm_BuKgANsI/AAAAAAAAHHg/QcpNRYZN7f4/s400/33-utilidades-para-Microsoft-Excel.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5651949056209991362" /&gt;&lt;/a&gt;&lt;br /&gt;Ya no os hago esperar más. Aquí tenéis el manual con las &lt;strong&gt;33 utilidades para Microsoft Excel&lt;/strong&gt; (cliquead en la imagen para descargar el manual en pdf):&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href="http://www.mediafire.com/?qawpo3v14cp8129" rel="nofollow" target="_blank" title="33 utilidades para Microsoft Excel"&gt;&lt;img src="http://1.bp.blogspot.com/-6KnSzlNOnpk/Tm_AF8dIGfI/AAAAAAAAHHY/U-NkhJjDi0A/s1600/33-utilidades-para-Microsoft-Excel-en-pdf.png" title="33 utilidades para Microsoft Excel" alt="Descargar el manual con 33 utilidades para Microsoft Excel"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Si te ha gustado este manual en pdf, te agradecería que dejases un comentario.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-4174437184215379389?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/4174437184215379389/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=4174437184215379389" title="61 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/4174437184215379389?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/4174437184215379389?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2011/09/33-utilidades-para-microsoft-excel.html" title="33 Utilidades para Microsoft Excel" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-vskGV88IfJU/Tm_BuKgANsI/AAAAAAAAHHg/QcpNRYZN7f4/s72-c/33-utilidades-para-Microsoft-Excel.gif" height="72" width="72" /><thr:total>61</thr:total></entry><entry gd:etag="W/&quot;D0AEQnY4cCp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-4681068819896954212</id><published>2011-08-09T23:22:00.013+02:00</published><updated>2012-01-20T22:41:43.838+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:41:43.838+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel intermedio" /><title>Calendario emergente en Excel</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/T2ZkY50VgWVzarfwG0QL7ZCNbzI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/T2ZkY50VgWVzarfwG0QL7ZCNbzI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/T2ZkY50VgWVzarfwG0QL7ZCNbzI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/T2ZkY50VgWVzarfwG0QL7ZCNbzI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Este artículo nace como respuesta a una consulta de un lector del blog en otro artículo relacionado, donde explicaba como &lt;a href=" http://hojas-de-calculo-en-excel.blogspot.com/2010/11/incluir-un-calendario-en-un-formulario.html" title="incluir un calendario en un formulario" target="_blank"&gt;incluir un calendario en un formulario&lt;/a&gt;. Concretamente se planteaba la pregunta de si se podía mostrar un &lt;strong&gt;calendario emergente&lt;/strong&gt; en Excel, simplemente cliqueando en una celda.&lt;br /&gt;&lt;br /&gt;La respuesta seguro que ya la sabéis, porque sino, no estaría escribiendo este artículo. Pues sí, se puede. En este caso, lo vamos a hacer sin necesidad de incluir el calendario en un formulario. Simplemente haremos que el calendario aparezca, sin más.&lt;br /&gt;&lt;br /&gt;Creo que el artículo de hoy os puede ser de mucha utilidad, especialmente si trabajamos con hojas de cálculo en las que tengamos que introducir muchas fechas del mes en curso (del mes en el que estamos), pues con un solo clic en el día del calendario, nos aparecerá la fecha en la celda donde estemos. También lo podemos utilizar para introducir fechas correspondientes a otros meses y/o años, pero ya no será tan rápida la introducción de los datos, pues deberemos realizar más de un clic en el calendario (para seleccionar el mes y/o año, y el día). Puede ser interesante por ejemplo, como complemento llevar el control mensual de cobros y pagos, para hacer un presupuesto diario, o para llevar el control de asistencias del personal, por poner solo tres casos.&lt;br /&gt;&lt;br /&gt;Para poder hacer todo esto, lo primero que tendremos que hacer es "dibujar" el calendario. Ojo, con esto de dibujar, me estoy refiriendo simplemente, a darle al calendario las dimensiones que deseemos. Para ello, si usamos Excel 2003, seleccionaremos en Herramientas --&gt; Personalizar --&gt; y en la pestaña de barras de herramientas, seleccionaremos "Cuadro de controles". Una vez hecho esto, nos aparecerá la barra de controles, así que cerraremos la ventana emergente de personalización. Seguidamente, seleccionaremos el icono del final que tiene un dibujillo de un martillo y una llave, y seleccionaremos "Control de calendario 11.0".&lt;br /&gt;&lt;br /&gt;En el caso de que utilicemos Excel 2007 y Excel 2010, para mostrar el Cuadro de controles, antes debemos hacer visible la pestaña "Programador". Para ello, nos iremos a Archivo --&gt; Opciones --&gt; Personalizar cinta de opciones --&gt; y pondremos una muesca en "Programador". Una vez tengamos en la cinta de opciones la ficha Programador, dentro de ella, encontraremos el Cuadro de controles, seleccionando "Insertar", cuyo icono  es el martillo y la llave.&lt;br /&gt;&lt;br /&gt;En el caso concreto de utilizar Excel 2010 es más que probable que no os aparezca el control calendario. Para solucionar este contratiempo, deberéis seguir las instrucciones del comentario que publiqué el 15 de junio de 2011, ante una pregunta de un usuario, y que veréis al final del artículo &lt;a href=" http://hojas-de-calculo-en-excel.blogspot.com/2010/11/incluir-un-calendario-en-un-formulario.html" title="incluir un calendario en un formulario" target="_blank"&gt;incluir un calendario en un formulario&lt;/a&gt;. Os remito directamente a ese comentario, para no duplicar el contenido.&lt;br /&gt;&lt;br /&gt;Aquí tenéis una imagen de Excel 2003, que es la versión que más suelo utilizar:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-9kxWsndGQ3A/TkGq16G4twI/AAAAAAAAG88/SKdBJE5KDlE/s1600/control-calendario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 392px;" src="http://3.bp.blogspot.com/-9kxWsndGQ3A/TkGq16G4twI/AAAAAAAAG88/SKdBJE5KDlE/s400/control-calendario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5638976051552499458" /&gt;&lt;/a&gt;&lt;br /&gt;Una vez tengamos todo listo, y hayamos seleccionado el control calendario, solo nos quedará dibujar el calendario en la hoja de cálculo para que tenga el tamaño que deseemos. Para ello, simplemente deberemos cliquear y arrastrar el mouse, para darle la forma que queramos. Una vez hecho eso, si usamos Excel 2003, pulsaremos en el primer icono de la barra de Cuadro de controles (la escuadra, la regla, y el lápiz), para salir del modo diseño. En Excel 2007 y 2010, simplemente cliquearemos en el icono que hay junto al de Cuadro de controles, con el lápiz, regla y escuadra, para salir del modo diseño. A continuación, cerraremos la barra de Cuadro de controles, pues ya no la vamos a necesitar más.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-DE7eGn4gLzY/TkGurH3u2SI/AAAAAAAAG9E/asE9tQ9OfoY/s1600/control-calendario-en-excel.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 262px;" src="http://2.bp.blogspot.com/-DE7eGn4gLzY/TkGurH3u2SI/AAAAAAAAG9E/asE9tQ9OfoY/s400/control-calendario-en-excel.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5638980264314984738" /&gt;&lt;/a&gt;&lt;br /&gt;Una vez hecho esto, solo nos quedará incluir el código de programación, en la hoja donde queramos hacer que aparezca el en cuestión (no en un módulo). Lo que haremos en nuestro ejemplo, será mostrar el calendario siempre que cliqueemos en una celda de la columna A. Da igual que celda sea, pues cuando cliqueemos sobre la columna A, nos aparecerá el calendario.&lt;br /&gt;&lt;br /&gt;Muchos estaréis pensando: "pero si ya tenemos visible el calendario, ¿cómo va a aparecer de nuevo cuando cliqueemos en una celda de la columna A?". Bueno, la respuesta es sencilla. Lo que haremos será ocultar el calendario siempre que cliqueemos en cualquier celda que no esté en la columna A, y mostrarlo cuando cliqueemos en cualquier celda de la columna A.&lt;br /&gt;&lt;br /&gt;¿Cómo vamos a hacer todo esto?. Pues con un sencillo código que pondremos en el evento SelectionChange. Es decir, un código que se ejecutará al cambiar la selección de la celda. También incluiremos unas sencillas líneas de código para incluir en esa celda (la de la columna A, que ha permitido que el calendario se haga visible), la fecha que seleccionemos en el calendario. Es decir, si cliqueamos en un día del calendario, esa fecha aparecerá el la celda donde estemos situados (esto lo haremos a través del evento Click).&lt;br /&gt;&lt;br /&gt;El código del evento SelectionChange de la hoja, será este:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Worksheet_SelectionChange(ByVal Target As Range)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ejemplo para mostrar el calendario al seleccionar&lt;br /&gt;'cualquier celda de la columna A&lt;/span&gt;&lt;br /&gt;If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ahora le diremos donde queremos que aparezca el calendario&lt;br /&gt;    'para que no se quede fijo en las celdas de arriba, ya que al hacer scroll,&lt;br /&gt;    'se nos quedaría oculto en la parte de arriba.&lt;br /&gt;    'Podemos jugar con estos valores, para ver donde se muestra&lt;br /&gt;    'el calendario, y para que quede a nuestro gusto&lt;/span&gt;&lt;br /&gt;    Calendar1.Left = Target.Left + Target.Width + 60&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'para que no se nos deforme el calendario, si estamos en las últimas filas&lt;br /&gt;    'incluimos un condicional que controlará la celda donde estamos y&lt;br /&gt;    'la comparará con la última fila de la hoja de cálculo&lt;/span&gt;&lt;br /&gt;    If ActiveCell.Row + 20 &gt;= Cells.Rows.Count Then&lt;br /&gt;        Calendar1.Top = Target.Top - 145&lt;br /&gt;    Else&lt;br /&gt;        Calendar1.Top = Target.Top - 50&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'hacemos visible el calendario&lt;/span&gt;&lt;br /&gt;    Calendar1.Visible = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Mostramos la fecha de hoy&lt;/span&gt;&lt;br /&gt;    Calendar1.Today&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ocultamos el calendario, en el caso de no&lt;br /&gt;    'seleccionar una celda de la columna A&lt;/span&gt;&lt;br /&gt;    Calendar1.Visible = False&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Y el del evento Click del calendario será este:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Calendar1_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Al hacer clic en una fecha del calendario&lt;br /&gt;'ponemos el valor en la celda donde estemos situados&lt;/span&gt;&lt;br /&gt;ActiveCell = Calendar1.Value&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ocultamos el calendario&lt;/span&gt;&lt;br /&gt;Calendar1.Visible = False&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Con este sencillo código, obtendremos algo tan vistoso como esto, cada vez que nos situemos en una celda de la columna A:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-LYAL5Wz5yqE/TkIypwFv1hI/AAAAAAAAG9M/RuXIOEIbLy0/s1600/calendario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 257px;" src="http://3.bp.blogspot.com/-LYAL5Wz5yqE/TkIypwFv1hI/AAAAAAAAG9M/RuXIOEIbLy0/s400/calendario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5639125376286316050" /&gt;&lt;/a&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?pspbc822y38awbk" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo. Si os ha sido de utilidad, espero vuestros comentarios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-4681068819896954212?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/4681068819896954212/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=4681068819896954212" title="42 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/4681068819896954212?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/4681068819896954212?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2011/08/calendario-emergente-en-excel.html" title="Calendario emergente en Excel" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-9kxWsndGQ3A/TkGq16G4twI/AAAAAAAAG88/SKdBJE5KDlE/s72-c/control-calendario.gif" height="72" width="72" /><thr:total>42</thr:total></entry><entry gd:etag="W/&quot;D0INR3c7fip7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-5887452063880940365</id><published>2011-06-27T13:52:00.004+02:00</published><updated>2012-01-20T22:39:56.906+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:39:56.906+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aplicaciones" /><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel avanzado" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Controlar vencimientos de facturas y recibos, con descuento comercial</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ywhCQ5qbXrKzMXFVzKDUqKx6C9o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ywhCQ5qbXrKzMXFVzKDUqKx6C9o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ywhCQ5qbXrKzMXFVzKDUqKx6C9o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ywhCQ5qbXrKzMXFVzKDUqKx6C9o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;No hace mucho tiempo, vimos una aplicación en Excel, con la que podíamos &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/09/controlar-vencimientos-de-facturas-y.html" title="controlar vencimientos de facturas y recibos"&gt; controlar vencimientos de facturas y recibos&lt;/a&gt;. Esta aplicación estaba pensada para controlar nuestra cartera de recibos y/o facturas pendientes de cobro, y para alertarnos llegado su vencimiento.&lt;br /&gt;&lt;br /&gt;En el artículo de hoy, hemos añadido una funcionalidad adicional a esa aplicación en Excel, que no es otra que la del control del riesgo bancario por descuento de efectos. No entraré a detallar el código fuente, pues la mayoría de los usuarios harán caso omiso del mismo, ya que lo que buscan es una aplicación que les permita gestionar de una forma medianamente decente su cartera de recibos y de efectos descontados.&lt;br /&gt;&lt;br /&gt;Para el que no sepa que es el &lt;strong&gt;descuento comercial&lt;/strong&gt;, simplemente daré unas pinceladas, para comentar que se trata de una fórmula de financiación, por la cual el acreedor de una deuda, puede anticipar el cobro de la misma, normalmente a través de una entidad financiera, y a cambio de un tipo de interés que suele estar en función del plazo de vencimiento de la deuda. Lo normal es que las empresas soliciten a estas entidades financieras, la apertura de una línea de descuento por un determinado importe, de acuerdo a sus necesidades previamente establecidas. Las entidades financieras, una vez analizada la documentación que les solicitarán a estas empresas, determinarán si es factible la concesión de esa línea de descuento, y el importe de la misma. Las condiciones de esta línea de descuento, se deberían negociar de forma individualizada con la entidad financiera.&lt;br /&gt;&lt;br /&gt;La aplicación que os presento hoy, y que no es más que una revisión de la que vimos en su día (la he llamado versión 2.0, por darle un toque algo más formal), consta en líneas generales de las siguientes mejoras:&lt;br /&gt;&lt;br /&gt;Añade al libro una hoja donde se incluye una relación de las entidades financieras, así como el importe de la línea de descuento de cada una de ellas. Respecto al funcionamiento de la aplicación, en lo que respeta a este límite de descuento, comentar que lo normal es que las empresas no puedan exceder de este límite, pero como no siempre es así y cada empresa es un mundo, ya que a veces las entidades te permiten exceder ese límite, esta &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/search/label/aplicaciones" title="aplicaciones en Excel"&gt;aplicación en Excel&lt;/a&gt; simplemente informa del importe del riesgo que tenemos en ese momento, del límite de la línea de descuento, y de si estamos excedidos o no, y por qué importe. Será el usuario quien decida a partir de esos datos, si la entidad financiera en cuestión, nos va a aceptar o no algún efecto comercial adicional para su descuento.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-58kcTwOSB48/TghZmIwyKiI/AAAAAAAAG4M/m80x7Ty4VW0/s1600/entidades-financieras.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 155px;" src="http://1.bp.blogspot.com/-58kcTwOSB48/TghZmIwyKiI/AAAAAAAAG4M/m80x7Ty4VW0/s400/entidades-financieras.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5622842646494063138" /&gt;&lt;/a&gt;&lt;br /&gt;En la hoja de facturas, se ha añadido una columna, para informar a través de un desplegable, de la entidad financiera en la que vamos a negociar los efectos. En el encabezado de la columna, aparece el texto "Efecto descontado en", tal y como podéis comprobar en la siguiente imagen (si no lo veis bien, cliquead en la imagen para ampliarla):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-LEb3b_DTuZw/TghZwFbXbkI/AAAAAAAAG4U/Iy80WfJKdc0/s1600/detalle-facturas-con-entidades-financieras.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 209px;" src="http://2.bp.blogspot.com/-LEb3b_DTuZw/TghZwFbXbkI/AAAAAAAAG4U/Iy80WfJKdc0/s400/detalle-facturas-con-entidades-financieras.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5622842817397616194" /&gt;&lt;/a&gt;&lt;br /&gt;Una vez hemos seleccionado una entidad financiera por donde descontar el efecto, veremos un MsgBox, de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-0PVjWwFCHCo/TghccAt-LLI/AAAAAAAAG4c/0CjGVuQsnTA/s1600/detalle-facturas-con-entidades-financieras-msgbox.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 220px;" src="http://1.bp.blogspot.com/-0PVjWwFCHCo/TghccAt-LLI/AAAAAAAAG4c/0CjGVuQsnTA/s400/detalle-facturas-con-entidades-financieras-msgbox.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5622845771070975154" /&gt;&lt;/a&gt;&lt;br /&gt;El MsgBox nos informará de lo siguiente:&lt;br /&gt;&lt;br /&gt;- Entidad financiera.&lt;br /&gt;- Riesgo concedido.&lt;br /&gt;- Cantidad descontada (y pendiente de vencimiento).&lt;br /&gt;- Exceso/defecto sobre el límite de riesgo de la póliza de descuento.&lt;br /&gt;&lt;br /&gt;Lo podemos comprobar en el siguiente MsgBox:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-pKJWj4ArZ6w/TgheoB-iIFI/AAAAAAAAG4k/3Sv6lVs_YqU/s1600/msgbox-descuento-comercial.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 257px; height: 159px;" src="http://1.bp.blogspot.com/-pKJWj4ArZ6w/TgheoB-iIFI/AAAAAAAAG4k/3Sv6lVs_YqU/s400/msgbox-descuento-comercial.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5622848176590561362" /&gt;&lt;/a&gt;&lt;br /&gt;Finalmente, y una vez hayamos informado de todo lo necesario para el control de nuestras facturas, pulsaremos el botón &lt;strong&gt;Previsión de cobros&lt;/strong&gt;, que nos llevará a la hoja donde tenemos la previsión de cobros, mes a mes. En esta hoja, se ha añadido una tabla en la que se incluye el riesgo por descuento que tenemos en cada entidad, y el mes de vencimiento de ese riesgo. En la tabla superior, como hasta ahora, tenemos la previsión de cobros, que incluye un cambio respecto a la versión anterior de esta misma aplicación. En esa tabla de cobros, evidentemente no aparecerán todos aquellos efectos que hayan sido negociados y por tanto descontados, pues ya habrán sido cobrados (lo cual no quiere decir que el deudor haya pagado).&lt;br /&gt;&lt;br /&gt;En la aplicación anterior que no controlaba el riesgo por descuento de efectos, y cuyo enlace incluí al principio de este artículo, solo existía una tabla en la hoja de "Previsión de cobros", pero en esta nueva versión hay dos, una tabla para los cobros pendientes, y otra para los efectos descontados (y por tanto cobrados).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-KtjU97lVw8Y/Tghevq6CjRI/AAAAAAAAG4s/wvEF6u2ecIM/s1600/prevision-de-cobros.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://3.bp.blogspot.com/-KtjU97lVw8Y/Tghevq6CjRI/AAAAAAAAG4s/wvEF6u2ecIM/s400/prevision-de-cobros.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5622848307836652818" /&gt;&lt;/a&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?iqbl9idfi0itlcf" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo (resubido, con mejoras en el código, el 09/07/2011). Espero vuestros comentarios, para saber si os ha sido útil o no :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-5887452063880940365?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/5887452063880940365/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=5887452063880940365" title="12 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/5887452063880940365?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/5887452063880940365?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2011/06/controlar-vencimientos-de-facturas-y.html" title="Controlar vencimientos de facturas y recibos, con descuento comercial" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-58kcTwOSB48/TghZmIwyKiI/AAAAAAAAG4M/m80x7Ty4VW0/s72-c/entidades-financieras.gif" height="72" width="72" /><thr:total>12</thr:total></entry><entry gd:etag="W/&quot;D0IESH4zeSp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-425592085978329106</id><published>2011-05-11T00:01:00.009+02:00</published><updated>2012-01-20T22:38:29.081+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:38:29.081+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fórmulas" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Buscar valores en un rango de datos</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/w7ui_hfMqb54DkML7Y7Iq27eDx8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w7ui_hfMqb54DkML7Y7Iq27eDx8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/w7ui_hfMqb54DkML7Y7Iq27eDx8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w7ui_hfMqb54DkML7Y7Iq27eDx8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hace poco, recibíamos una consulta de un usuario en &lt;a href="http://www.facebook.com/excelavanzado" title="hojas-de-calculo-en-excel.blogspot.com en facebook" target="_blank" rel="nofollow"&gt;nuestra página de facebook&lt;/a&gt;, en la que nos preguntaba como localizar determinados valores en un rango de datos. Concretamente, lo necesitaba para determinar la tarifa aplicable por un servicio de transporte o mensajería, en función del peso del envío.&lt;br /&gt;&lt;br /&gt;Vamos a ver como resolver tan interesante cuestión. Para ello, como siempre, ilustraremos la explicación con un sencillo ejemplo. Supongamos que tenemos la siguiente tarifa de transportes, para las localidades que se indican en la tabla adjunta:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-PnI5mI_2eQI/TcmPN-UJx5I/AAAAAAAAGxs/2hDMh0niCl0/s1600/tarifa-de-transportes.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 228px;" src="http://4.bp.blogspot.com/-PnI5mI_2eQI/TcmPN-UJx5I/AAAAAAAAGxs/2hDMh0niCl0/s400/tarifa-de-transportes.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5605168681467889554" /&gt;&lt;/a&gt;&lt;br /&gt;Supongamos ahora, que queremos saber cuanto nos costaría enviar un paquete que pesa 70 kgs. a Sevilla. Visualmente, lo tenemos fácil, pues en la tabla tenemos que localizar la fila correspondiente a los 70 kgs. y la columna correspondiente a Sevilla. Eso  nos dará como resultado, que el precio de ese transporte es de 94,00 euros, dólares, pesos, o cualquier otra unidad monetaria con la que trabajemos. Pero claro, queremos obtener ese dato, de forma automática, simplemente informando en algún sitio, del destino de la mercancía, y del peso.&lt;br /&gt;&lt;br /&gt;Para ello, montaremos esta plantilla de Excel, donde a través de dos listas de validación, podremos seleccionar el destino y el peso del producto, y una vez seleccionados estos datos, debajo nos aparecerá el importe del envío.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/--cXKyX9VOoo/TcmPlx9gKPI/AAAAAAAAGx0/qFNinofzD1w/s1600/plantilla-tarifa-de-transportes.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/--cXKyX9VOoo/TcmPlx9gKPI/AAAAAAAAGx0/qFNinofzD1w/s400/plantilla-tarifa-de-transportes.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5605169090468522226" /&gt;&lt;/a&gt;&lt;br /&gt;Para calcular el precio, todo es muy sencillo, con esta fórmula:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=SUMAPRODUCTO((B6:B15=D21)*(C5:F5=D20)*(C6:F15))&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Esta fórmula, lo que viene a hacer es buscar en el rango de celdas comprendido entre B6 y B15, el dato informado en la lista de validación de D21, es decir, el peso del paquete que enviaremos. Seguidamente, nos busca en el rango de C5 a F5, la localidad informada en la lista desplegable de la celda D20. Y por último, con esos dos datos, lo que hace la fórmula es localizar el importe en el que confluyen ambos datos (peso y localidad), dentro del rango comprendido entre C6 y F15. Como veis, no es nada complicado.&lt;br /&gt;&lt;br /&gt;También obtendremos el mismo resultado, si utilizamos las funciones INDICE y COINCIDIR, en lugar de SUMPARODUCTO, de la siguiente forma:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=INDICE(C6:F15;COINCIDIR(D21;B6:B15;0);COINCIDIR(D20;C5:F5;0))&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;En este caso, la fórmula la leeríamos más o menos así:&lt;br /&gt;&lt;br /&gt;Busca en la matriz de datos que hay entre C6 y F15, la fila cuyo número es el resultado de aplicar la función COINCIDIR(D21;B6:B15;0), y cuya columna es el resultado de aplicar la función COINCIDIR(D20;C5:F5;0).&lt;br /&gt;&lt;br /&gt;COINCIDIR(D21;B6:B15;0) nos indica que posición ocupa en valor de la celda D21, dentro del rango de datos comprendido entre B6 y B15. Una lectura similar se podría hacer de COINCIDIR(D20;C5:F5;0), pues nos indica la posición que ocupa el dato de D20, dentro del rango de datos comprendido entre C5 y F5.&lt;br /&gt;&lt;br /&gt;Esto puede parecer algo complicadillo, pero si lo imprimís y lo leéis de nuevo, teniendo la hoja de cálculo de Excel delante (la que podéis descargar al final de este artículo), os será mucho más fácil de “digerir”.&lt;br /&gt;&lt;br /&gt;Esta segunda opción donde utilizamos las funciones INDICE y COINCIDIR, nos sería especialmente de utilidad, en el caso de tener datos de texto en la matriz, en lugar de importes, pues la función SUMAPRODUCTO nos daría error, al no tener datos numéricos.&lt;br /&gt;&lt;br /&gt;Para hacerlo más elegante, en el ejemplo que podrás descargarte al final de este artículo, hemos puesto un formato condicional a las celdas, para que nos coloree de azul la celda con la tarifa, tal y como se muestra en el siguiente ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-e2iWeHF1vk4/TcmQSd7bl8I/AAAAAAAAGx8/WTjCOpoevx8/s1600/plantilla-tarifa-de-transportes-con-formato-condicional.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 301px;" src="http://4.bp.blogspot.com/-e2iWeHF1vk4/TcmQSd7bl8I/AAAAAAAAGx8/WTjCOpoevx8/s400/plantilla-tarifa-de-transportes-con-formato-condicional.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5605169858185238466" /&gt;&lt;/a&gt;&lt;br /&gt;A este tipo de localización de datos dentro de un rango de datos (o una matriz de datos), lo vamos a llamar &lt;strong&gt;localizar datos en una matriz, con datos de entrada exactos&lt;/strong&gt;. Es decir, introduciremos los datos exactos de la localidad y sobretodo el peso del producto a enviar, para localizar el valor en la tabla. De hecho ya habíamos visto alguna que otra utilidad para localizar datos dentro de una tabla, utilizando algunos  ejemplos de &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/06/funciones-de-bases-de-datos.html" title="funciones personalizadas de bases de datos"&gt;funciones personalizadas de bases de datos&lt;/a&gt; por aquí, y &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/06/ms-sobre-las-funciones-de-bases-de.html" title="más funciones personalizadas de bases de datos"&gt;más funciones personalizadas de bases de datos&lt;/a&gt;, por este otro lado.&lt;br /&gt;&lt;br /&gt;Llegados a este punto, nos encontramos con que la realidad del día a día es bien distinta, pues ese tipo de tarifas no suelen proporcionárnoslo así los transportistas de paquetería. ¿Verdad que cuando enviamos un producto, la tarifa de transportista nos informa de un peso por tramos?. Es decir, el transportista nos cobra en función de si el peso está dentro de un rango (o baremo) de pesos. Por eso, la tabla anterior no nos vale, y el más claro ejemplo es el siguiente: ¿cuánto nos costaría enviar 45,46 kgs. a Sevilla?. Pues siendo estrictos, a la vista de esa tabla anterior, no lo sabemos, pues no aparece ese peso en la tarifa.&lt;br /&gt;&lt;br /&gt;Para solucionar esto, vamos a imaginar que la tarifa del transportista es esta otra:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-XKUsz5fx3Hw/TcmQj_EUqyI/AAAAAAAAGyE/fq2c2iqY_Mw/s1600/tarifa-de-transportes-real.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 196px;" src="http://3.bp.blogspot.com/-XKUsz5fx3Hw/TcmQj_EUqyI/AAAAAAAAGyE/fq2c2iqY_Mw/s400/tarifa-de-transportes-real.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5605170159138679586" /&gt;&lt;/a&gt;&lt;br /&gt;En este caso, ya vemos que la cosa es mucho más realista, pues el transportista, nos va a ofrecer un precio, para un rango determinado de pesos, a cada localidad. En el ejemplo, podemos ver como la empresa de transportes nos va a cobrar 93 euros, dólares, pesos, o cualquier otra unidad monetaria con la que trabajemos, si llevamos entre 60,01 kgs. y 70 kgs., a Madrid. Es decir, si solicitamos que la empresa de paquetería nos lleve un paquete a Madrid, que pesa 62 kgs., nos cobrará lo mismo que si nos lleva 68 kgs.&lt;br /&gt;&lt;br /&gt;A este tipo de localización de datos dentro de un rango de datos (o una matriz de datos), lo vamos a llamar &lt;strong&gt;localizar datos en una matriz, con datos de entrada dentro de un rango de datos&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Para localizar la tarifa correspondiente a un envío de determinado peso a una localidad, montaremos una tabla como esta, donde la localidad será una lista de validación, y el peso lo introduciremos manualmente:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-WzkD5qdzBeI/TcmSycSBloI/AAAAAAAAGyM/QRoYJwa93DU/s1600/plantilla-tarifa-de-transportes-real.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 269px;" src="http://2.bp.blogspot.com/-WzkD5qdzBeI/TcmSycSBloI/AAAAAAAAGyM/QRoYJwa93DU/s400/plantilla-tarifa-de-transportes-real.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5605172606522201730" /&gt;&lt;/a&gt;&lt;br /&gt;Para calcular el precio, solo nos quedará aplicar esta fórmula:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=DESREF(C5;COINCIDIR(D21;B6:B15);COINCIDIR(D20;D5:G5))&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;¿Cómo se lee esta formulita?. Pues de una forma no muy complicada. Las funciones COINCIDIR ya las hemos explicado unos párrafos más arriba, y nos indican tanto la fila donde está el peso seleccionado, y la columna donde está la localidad elegida. La función DESREF, simplemente nos desplaza tantas filas y columnas como nos indican las funciones COINCIDIR, partiendo desde la celda C5.&lt;br /&gt;&lt;br /&gt;Como veis, tenemos una forma bastante sencilla para localizar valores en una tabla, tanto, si se trata de valores exactos, como si se trata de valores dentro de un rango.&lt;br /&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?412e79dtqdf8u3c" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con todo lo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-425592085978329106?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/425592085978329106/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=425592085978329106" title="21 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/425592085978329106?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/425592085978329106?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2011/05/buscar-valores-en-un-rango-de-datos.html" title="Buscar valores en un rango de datos" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-PnI5mI_2eQI/TcmPN-UJx5I/AAAAAAAAGxs/2hDMh0niCl0/s72-c/tarifa-de-transportes.gif" height="72" width="72" /><thr:total>21</thr:total></entry><entry gd:etag="W/&quot;D0QCRX0-eCp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-7576544516149027814</id><published>2011-03-21T00:01:00.002+01:00</published><updated>2012-01-20T22:36:04.350+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:36:04.350+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Mostrar imágenes en un formulario</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/09dCGAChqHJ7ch3DBoPaXRYlOmk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/09dCGAChqHJ7ch3DBoPaXRYlOmk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/09dCGAChqHJ7ch3DBoPaXRYlOmk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/09dCGAChqHJ7ch3DBoPaXRYlOmk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;En un artículo anterior, habíamos visto como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/09/mostrar-imgenes-asociadas-un.html" title="mostrar imágenes asociadas a un desplegable"&gt;mostrar imágenes asociadas a un desplegable&lt;/a&gt;, directamente en nuestra hoja de cálculo Excel. En esta ocasión, os muestro una forma de hacer lo mismo, pero incluyendo las imágenes en un formulario, es decir, en un userform.&lt;br /&gt;&lt;br /&gt;La técnica en ambos casos es muy similar, así que esto lo que explique en este artículo, estará chupado, para aquellos lectores del blog que ya se hayan leído el artículo o que comentaba en el párrafo anterior.&lt;br /&gt;&lt;br /&gt;Como siempre, vamos a ilustrar esta técnica con un sencillo ejemplo. Para ellos, hemos escogido una serie de construcciones, en este caso, torres, de diferentes ciudades, y de diferentes países. Solo hemos puesto unas pocas, para que vosotros añadáis las que creáis convenientes.&lt;br /&gt;&lt;br /&gt;Lo primero que vamos a hacer es montar la lista que se muestra en la siguiente imagen, y de paso también &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/01/asociar-un-macro-un-boton.html" title="crear un botón y asociarlo a un macro"&gt;crearemos un botón, para asociarlo a un macro&lt;/a&gt;, en este caso, al macro que lanza el userform.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-1zEZVHX6X_A/TYZOFN1hSpI/AAAAAAAAGdU/8fAQOyOI7oo/s1600/lista-para-desplegable-en-formulario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 132px;" src="http://2.bp.blogspot.com/-1zEZVHX6X_A/TYZOFN1hSpI/AAAAAAAAGdU/8fAQOyOI7oo/s400/lista-para-desplegable-en-formulario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5586238239320132242" /&gt;&lt;/a&gt;&lt;br /&gt;Lo siguiente que debemos tener, es una lista con las imágenes, y que necesariamente se llamarán de la misma forma a como aparecen en la columna A de la imagen anterior (evidentemente, sin tener en cuenta la extensión correspondiente, en este caso, jpg):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/--t2zxLk4qio/TYZOdJpTceI/AAAAAAAAGdk/MhwS9NQqczg/s1600/imagenes-a-mostrar-en-el-formulario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 88px;" src="http://4.bp.blogspot.com/--t2zxLk4qio/TYZOdJpTceI/AAAAAAAAGdk/MhwS9NQqczg/s400/imagenes-a-mostrar-en-el-formulario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5586238650512011746" /&gt;&lt;/a&gt;&lt;br /&gt;Ahora procederemos a &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/03/mi-primer-userform.html" title="crear un formulario en Excel"&gt;crear un formulario en Excel&lt;/a&gt;, donde incluiremos dos etiquetas (dos label), una para el título del formulario en sí, es decir, un rótulo con el texto "Torres famosas", y otra para mostrar la ciudad y el país donde se encuentra la torre elegida. También incluiremos un ComboBox, donde al desplegarlo, podremos elegir la imagen. Por supuesto, incluiremos también un control de imagen, para que se muestre la imagen elegida en el ComboBox, y finalmente, lo último que incluiremos será un CommandButton para que al pulsar sobre él, se cierre del formulario. Es decir, haremos algo como lo que se muestra en la siguiente imagen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-vRObDd6lkQI/TYZO0PCSA3I/AAAAAAAAGds/41uxmxoEVQI/s1600/fomulario-para-mostrar-imagenes.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 303px;" src="http://3.bp.blogspot.com/-vRObDd6lkQI/TYZO0PCSA3I/AAAAAAAAGds/41uxmxoEVQI/s400/fomulario-para-mostrar-imagenes.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5586239047095944050" /&gt;&lt;/a&gt;&lt;br /&gt;Ahora solo nos quedará incluir el código que irá asociado a los controles. Comenzaremos con el código del ComboBox, al hacer click sobre él:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub ComboBox1_Enter()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'En caso de error, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'limpiamos los datos del Combobox&lt;/span&gt;&lt;br /&gt;ComboBox1.Clear&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Al inciar el formulario,&lt;br /&gt;'seleccionamos la hoja con los datos&lt;/span&gt;&lt;br /&gt;Hoja1.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Seleccionamos la celda B5&lt;/span&gt;&lt;br /&gt;Range("A2").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Vamos a llenar dinámicamente el combobox&lt;br /&gt;'con los nombres de los artículos, hasta&lt;br /&gt;'encontrar una fila vacía&lt;/span&gt;&lt;br /&gt;Do While Not IsEmpty(ActiveCell)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos el nombre del producto&lt;/span&gt;&lt;br /&gt;ComboBox1.AddItem ActiveCell.Value&lt;br /&gt;&lt;span style="color:#009900;"&gt;'bajamos una fila&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(1, 0).Select&lt;br /&gt;Loop&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Ahora le toca el turno al código que nos servirá para mostrar las imágenes, cada vez que cambiemos el item del desplegable, en nuestro caso, del ComboBox:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub ComboBox1_Change()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'definimos la ruta donde tenemos el fichero de excel&lt;br /&gt;'(que será la misma donde tengamos las imágenes)&lt;/span&gt;&lt;br /&gt;ruta = ActiveWorkbook.Path&lt;br /&gt;&lt;span style="color:#009900;"&gt;'definimos los nombres de las imágenes&lt;/span&gt;&lt;br /&gt;imagen = ComboBox1.List(ComboBox1.ListIndex) &amp; ".jpg"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ahora definimos la ruta y la imagen&lt;/span&gt;&lt;br /&gt;ruta_e_imagen = ruta &amp; "\" &amp; imagen&lt;br /&gt;&lt;span style="color:#009900;"&gt;'cargamos esa imagen en el cuadro de la imagen&lt;/span&gt;&lt;br /&gt;Image1.Picture = LoadPicture(ruta_e_imagen)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ahora ponemos el nombre de la ciudad y el país en el label2&lt;/span&gt;&lt;br /&gt;Cells.Find(What:=Replace(imagen, ".jpg", "")).Select&lt;br /&gt;Label2 = ActiveCell.Offset(0, 1) &amp; " (" &amp; ActiveCell.Offset(0, 2) &amp; ")"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Con los dos macros anteriores, lo que hemos hecho, ha sido por un lado llenar el ComboBox al hacer clic en el desplegable (con los datos de la hoja de cálculo), y por otro lado, cada vez que cambiamos el elemento seleccionado en el ComboBox, mostrar la imagen correspondiente a ese elemento seleccionado.&lt;br /&gt;&lt;br /&gt;Ahora solo nos quedará incluir el código que tendremos asociado al botón "Cerrar":&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CommandButton1_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'descargamos el formulario de memoria&lt;/span&gt;&lt;br /&gt;Unload Me&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Todo el código que hemos visto hasta ahora, va incluido dentro del propio UserForm, pues es el código asociado al mismo. En cambio, este último código, que os incluyo, es para lanzar el formulario en sí, por lo que lo pondremos dentro de un módulo:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Lanzar_formulario()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'lanzamos el formulario&lt;/span&gt;&lt;br /&gt;UserForm1.Show&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Con esto tenemos todo listo, para mostrar un formulario tan llamativo como este:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-IT5NQa1Wu_w/TYZs5SRxKCI/AAAAAAAAGd8/uxZnCvO1QFY/s1600/imagenes-en-formulario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 370px; height: 400px;" src="http://3.bp.blogspot.com/-IT5NQa1Wu_w/TYZs5SRxKCI/AAAAAAAAGd8/uxZnCvO1QFY/s400/imagenes-en-formulario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5586272119214385186" /&gt;&lt;/a&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?p3322u2my3uwpwc" rel="nofollow" target="_blank"&gt;descargar un fichero comprimido&lt;/a&gt;, que incluye el fichero Excel y las fotos de las torres, que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-7576544516149027814?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/7576544516149027814/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=7576544516149027814" title="16 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/7576544516149027814?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/7576544516149027814?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2011/03/mostrar-imagenes-en-un-formulario.html" title="Mostrar imágenes en un formulario" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-1zEZVHX6X_A/TYZOFN1hSpI/AAAAAAAAGdU/8fAQOyOI7oo/s72-c/lista-para-desplegable-en-formulario.gif" height="72" width="72" /><thr:total>16</thr:total></entry><entry gd:etag="W/&quot;D0UASHsyeyp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-6754384860278737198</id><published>2011-01-26T00:01:00.013+01:00</published><updated>2012-01-20T22:34:09.593+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:34:09.593+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fórmulas" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Medias ponderadas</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cCN9bCueZBrjv3fGaPMx57TYqvM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cCN9bCueZBrjv3fGaPMx57TYqvM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cCN9bCueZBrjv3fGaPMx57TYqvM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cCN9bCueZBrjv3fGaPMx57TYqvM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hoy os presento un artículo, que aunque no es estrictamente algo que podamos considerar como puramente de Excel, creo que le va a servir a muchos usuarios que utilizan esta popular hoja de cálculo. Se trata de obtener lo que se denomina &lt;strong&gt;media ponderada&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;La Real Academia Española (RAE), define la media ponderada como el "&lt;i&gt;resultado de multiplicar cada uno de los números de un conjunto por un valor particular llamado su peso, sumar las cantidades así obtenidas, y dividir esa suma por la suma de todos los pesos&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;¿Está claro, verdad?. Jajajaja. Probablemente leído así a bote pronto, esa definición lo que hace es confundir más que aclarar, pero si lo vemos con un ejemplo, nos daremos cuenta que es algo bastante sencillo de entender.&lt;br /&gt;&lt;br /&gt;Vamos a suponer que hoy día 26-01-2011, efectuamos dos inversiones, una que nos rinde el 7% de interés nominal anual, y cuyo vencimiento es el 31-12-2011, y otra que rinde el 1% de interés nominal anual, y cuyo vencimiento es dentro de 5 días, es decir, el 31-01-2011. En ambos casos, supondremos que los intereses nos los retribuyen al vencimiento de cada inversión.&lt;br /&gt;&lt;br /&gt;Si pasáramos esta información a nuestra hoja de cálculo de &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com" title="Excel"&gt;Excel&lt;/a&gt;, nos quedaría algo así:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/TTyegh8qd7I/AAAAAAAAGJc/pj8Q_SomdNk/s1600/datos-para-calcular-media-ponderada-1.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 384px; height: 117px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/TTyegh8qd7I/AAAAAAAAGJc/pj8Q_SomdNk/s400/datos-para-calcular-media-ponderada-1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5565497521228904370" /&gt;&lt;/a&gt;&lt;br /&gt;Si alguien nos preguntara, a qué tipo de interés medio nos retribuyen la inversión, podríamos contestarle dos cosas:&lt;br /&gt;&lt;br /&gt;a) Al 4,00% de interés medio, pues esa cifra resulta de hacer la meda de tipos de interés: (7%+1%)/2&lt;br /&gt;b) Nos faltan datos para poder dar una respuesta.&lt;br /&gt;&lt;br /&gt;Si hemos elegido al respuesta a), sin duda estaremos cometiendo un grave error, porque entre otras cosas, las dos inversiones no tienen el mismo vencimiento. Piensa por un momento que la inversión 1 vence dentro de 339 días, es decir, todavía queda mucho, mientras que la inversión 2 está prácticamente finalizada, por lo que debemos valorar esta circunstancia, para calcular el tipo medio de interés de nuestras inversiones, pues en caso de no hacerlo, estaremos ponderando más de la cuenta el tipo de interés de la inversión 2 (la que está a punto de finalizar). Llegados a este punto, podríamos reformular nuestro esquema en Excel, de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/TTyezAKstGI/AAAAAAAAGJk/g8Ij-SKDI5w/s1600/datos-para-calcular-media-ponderada-2.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 101px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/TTyezAKstGI/AAAAAAAAGJk/g8Ij-SKDI5w/s400/datos-para-calcular-media-ponderada-2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5565497838578480226" /&gt;&lt;/a&gt;&lt;br /&gt;Si nos volvieran a preguntar cual es el tipo de interés medio al que retribuyen nuestras inversiones, la respuesta que podríamos dar, sería una de estas:&lt;br /&gt;&lt;br /&gt;a) Al 6,91% de interés medio, pues esa cifra resulta de multiplicar el 7% por los días que quedan hasta el vencimiento de esta primera inversión, es decir 339 días, multiplicando nuevamente el 1% por los días que quedan hasta el vencimiento de esta segunda inversión, es decir, 5 días, y dividiendo todo ello entre la suma de 339 y 5. Es decir, ese tipo medio del 6,91% lo obtendríamos de la siguiente fórmula:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/TTyfFBJPwUI/AAAAAAAAGJs/Q_F__QgLQdc/s1600/formula-para-calcular-media-ponderada-1.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 60px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/TTyfFBJPwUI/AAAAAAAAGJs/Q_F__QgLQdc/s400/formula-para-calcular-media-ponderada-1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5565498148078469442" /&gt;&lt;/a&gt;&lt;br /&gt;b) Nos faltan datos para poder dar una respuesta.&lt;br /&gt;&lt;br /&gt;Como en el caso anterior, si hubiésemos dado como respuesta la a), estaríamos cometiendo un error, pues nos falta el último dato, el importe de cada una de las inversiones (la inversión 1, y la inversión 2), y que es condición necesaria para poder determinar el tipo de interés medio al cual nos retribuyen esas inversiones. En ningún momento hemos dicho que ambas inversiones sean del mismo importe, por eso presuponer ese dato sería un error.&lt;br /&gt;&lt;br /&gt;Vamos a suponer que la inversión 1 es de 10.000 euros, y que la inversión 2 es de 5.000 euros. Reformulemos por tanto nuestro esquema en Excel, para tenerlo todo más claro, de un vistazo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/TTyfMIEzK-I/AAAAAAAAGJ0/8b4o6ePX_jM/s1600/datos-para-calcular-media-ponderada.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 89px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/TTyfMIEzK-I/AAAAAAAAGJ0/8b4o6ePX_jM/s400/datos-para-calcular-media-ponderada.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5565498270197951458" /&gt;&lt;/a&gt;&lt;br /&gt;Si ahora nos hicieran la preguntita de marras, nuestra respuesta sería que el tipo de interés medio resultante de estas inversiones, es del 6,96%, pues lo obtenemos de resolver la siguiente fórmula:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/TTyfa_Hr6rI/AAAAAAAAGJ8/Xe5v3MiG6-A/s1600/formula-para-calcular-media-ponderada-2.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 60px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/TTyfa_Hr6rI/AAAAAAAAGJ8/Xe5v3MiG6-A/s400/formula-para-calcular-media-ponderada-2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5565498525492177586" /&gt;&lt;/a&gt;&lt;br /&gt;En realidad, lo que estamos haciendo, es ponderar (sopesar, o medir de forma proporcional) cada tipo de interés, con respecto al importe de cada una de las inversiones, y con respecto a la fecha de cada uno de los vencimientos. En términos matemáticos, lo que hemos hecho no es más que ponderar la media, o como reza el título de este artículo, calcular la media ponderada.&lt;br /&gt;&lt;br /&gt;Si volvemos a mirar esta última fórmula donde obtenemos ese 6,96% de interés medio (ponderado), y releemos nuevamente la definición que da la RAE sobre la media ponderada, estoy seguro que ahora tendremos las cosas mucho más claras, y habremos entendido esta definición.&lt;br /&gt;&lt;br /&gt;Como colofón de este artículo, vamos a suponer ahora que tenemos 20 inversiones, en lugar de 2, como era el caso que contemplábamos en el ejemplo. En ese caso, en lugar de hacer una fórmula donde el numerador y el denominador van a ser larguísimos, podemos solucionarlo muy fácilmente con el uso de la función &lt;strong&gt;SUMAPRODUCTO&lt;/strong&gt;. Vamos a verlo con un ejemplo, donde podemos contemplar en la imagen, la fórmula que aparece en la barra de fórmulas:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/TTyfkhqqltI/AAAAAAAAGKE/uhJ8WI6EsMM/s1600/calcular-media-ponderada.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 293px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/TTyfkhqqltI/AAAAAAAAGKE/uhJ8WI6EsMM/s400/calcular-media-ponderada.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5565498689384519378" /&gt;&lt;/a&gt;&lt;br /&gt;Podemos construir dos columnas auxiliares, pare ver que efectivamente, la función SUMAPRODUCTO nos arroja el mismo resultado, que una fórmula tradicional:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/TTyfy0r856I/AAAAAAAAGKM/zhTbd-33pZk/s1600/calcular-media-ponderada-con-sumaproducto.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/TTyfy0r856I/AAAAAAAAGKM/zhTbd-33pZk/s400/calcular-media-ponderada-con-sumaproducto.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5565498935008356258" /&gt;&lt;/a&gt;&lt;br /&gt;En realidad, la fórmula SUMAPRODUCTO, lo que va a hacer es multiplicar cada elemento de las matrices que le indiquemos, sumando cada una de las líneas, de tal forma que si por ejemplo ponemos esto:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=SUMAPRODUCTO(C5:C24;E5:E24;F5:F24)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;...le estaremos diciendo que haga esto:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=(C5*E5*F5)+(C6*E6*F6)+(C7*E7*F7)+(C8*E8*F8)+(C9*E9*F9)+(C10*E10*F10)+(C11*E11*F11)+(C12*E12*F12)+(C13*E13*F13)+(C14*E14*F14)+(C15*E15*F15)+(C16*E16*F16)+(C17*E17*F17)+(C18*E18*F18)+(C19*E19*F19)+(C20*E20*F20)+(C21*E21*F21)+(C22*E22*F22)+(C23*E23*F23)+(C24*E24*F24)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Es decir, tanto la función SUMAPRODUCTO que hemos puesto, y esta otra fórmula tradicional tan larga que acabamos de poner, hacen exactamente lo mismo.&lt;br /&gt;&lt;br /&gt;Espero que os haya sido útil este artículo, y que lo podáis aplicar alguna vez en vuestro trabajo. Como siempre, desde aquí podéis &lt;a href="http://www.mediafire.com/?jud43kn8ym6ttoe" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo final que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-6754384860278737198?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/6754384860278737198/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=6754384860278737198" title="10 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/6754384860278737198?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/6754384860278737198?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2011/01/medias-ponderadas.html" title="Medias ponderadas" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_EKImKCCi_hc/TTyegh8qd7I/AAAAAAAAGJc/pj8Q_SomdNk/s72-c/datos-para-calcular-media-ponderada-1.gif" height="72" width="72" /><thr:total>10</thr:total></entry><entry gd:etag="W/&quot;D0YDRHg6eyp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-6032893632683043827</id><published>2010-11-03T00:01:00.002+01:00</published><updated>2012-01-20T22:32:55.613+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:32:55.613+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Incluir un calendario en un formulario</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bdAJI9FhZikKOpDLuoZ_cWTT2x4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bdAJI9FhZikKOpDLuoZ_cWTT2x4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bdAJI9FhZikKOpDLuoZ_cWTT2x4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bdAJI9FhZikKOpDLuoZ_cWTT2x4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hoy veremos como incluir un calendario en un formulario. No se trata de un calendario, como aquel &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/11/calendarios-para-imprimir.html" title="Calendario para imprimir" target="_blank"&gt;calendario para imprimir&lt;/a&gt; que vimos en un artículo anterior, sino de un control de calendario. Igual que en los formularios tenemos controles como pueden ser las etiquetas, los cuadros de texto, los cuadros combinados, o las casillas de verificación, por ejemplo, también podemos añadir un calendario.&lt;br /&gt;&lt;br /&gt;Para ver como funciona, deberemos incluir un formulario desde VBA, seleccionando en el menú “Insertar”, la opción “Userform”. Por defecto, desde VBA, solo se nos muestran en el cuadro de herramientas, aquellos controles que son de uso más común. Para poder ver el resto de controles que podemos incluir en un formulario, deberemos cliquear con el botón derecho del ratón dentro de la ventana “Cuadro de herramientas”, donde nos aparecen los controles, pero en el espacio donde no hay controles. De esa forma, nos aparecerá un menú desplegable donde podremos seleccionar controles adicionales.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/TM_ySiMl0YI/AAAAAAAAEUY/Cj3R6MZgYOo/s1600/Incluir-controles-adicionales-en-un-formulario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/TM_ySiMl0YI/AAAAAAAAEUY/Cj3R6MZgYOo/s400/Incluir-controles-adicionales-en-un-formulario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5534908867292811650" /&gt;&lt;/a&gt;&lt;br /&gt;Seleccionaremos la opción “Controles adicionales”, y en la lista, escogeremos el correspondiente al control de calendario, marcándolo con una muesca. Seguidamente, pulsaremos sobre el botón “Aceptar”, y en el cuadro de herramientas nos aparecerá ahora un nuevo elemento, que será el correspondiente al calendario:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/TM_yfdTeJKI/AAAAAAAAEUg/PUIho6IUjrI/s1600/Cuadro-de-controles-con-calendario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 186px; height: 170px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/TM_yfdTeJKI/AAAAAAAAEUg/PUIho6IUjrI/s400/Cuadro-de-controles-con-calendario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5534909089317790882" /&gt;&lt;/a&gt;&lt;br /&gt;Ahora solo nos quedará pulsar sobre ese botón del calendario, y dibujar el mismo sobre el formulario. Hacer esto, es tan sencillo como pulsar el ratón sobre el formulario, mantener pulsado el botón, y arrastrar hacia abajo y hacia la derecha, para ir viendo como nos aparece un cuadro que es donde al soltar el botón del ratón, nos aparecerá dibujado el calendario. Por defecto, nos aparecerá el mes de la fecha en curso.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/TM_yvW5Bb3I/AAAAAAAAEUo/-Lef9dVslL0/s1600/Control-calendario-insertado-en-un-formulario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 246px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/TM_yvW5Bb3I/AAAAAAAAEUo/-Lef9dVslL0/s400/Control-calendario-insertado-en-un-formulario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5534909362474151794" /&gt;&lt;/a&gt;&lt;br /&gt;Ahora ya solo nos quedará darle alguna utilidad al calendario, más allá de la propia para tener visible el mes. Por ejemplo podremos insertar la fecha que seleccionemos en el calendario, en una celda. Para ello utilizaremos el evento click, que ejecutará las acciones contenidas dentro de ese evento, cada vez que cliqueemos dentro del calendario.&lt;br /&gt;&lt;br /&gt;Por ejemplo, si queremos insertar la fecha que seleccionemos en el calendario, en una celda, utilizaremos esto dentro del código del propio formulario (en este ejemplo, insertamos la fecha en la celda A1):&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Calendar1_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ponemos la fecha en la celda A1&lt;/span&gt;&lt;br /&gt;Range("A1") = Calendar1.Value&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Ahora, incluiremos este otro código dentro del formulario, que lo que hará es cargarse el calendario con el mes y el día de la fecha en que lo abramos (la fecha del sistema). Esto se producirá cada vez que activemos (o carguemos) el formulario:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub UserForm_Activate()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Al activar el formulario, que aparezca&lt;br /&gt;'la fecha de hoy en el calendario&lt;/span&gt;&lt;br /&gt;Calendar1.Today&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;De esta forma tan sencilla, tendremos un calendario bien elegante, insertado dentro de nuestros formularios, para que con un solo clic, incluyamos fechas en nuestra hoja de cálculo. Y no solo eso, sino que además pasará como algo que hemos hecho nosotros, cuando en realidad es un control ya diseñado que incorpora Excel.&lt;br /&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?kb1m966p0c9l6k9" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-6032893632683043827?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/6032893632683043827/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=6032893632683043827" title="23 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/6032893632683043827?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/6032893632683043827?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/11/incluir-un-calendario-en-un-formulario.html" title="Incluir un calendario en un formulario" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_EKImKCCi_hc/TM_ySiMl0YI/AAAAAAAAEUY/Cj3R6MZgYOo/s72-c/Incluir-controles-adicionales-en-un-formulario.gif" height="72" width="72" /><thr:total>23</thr:total></entry><entry gd:etag="W/&quot;D0YEQX44fyp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-6077298710357066723</id><published>2010-09-28T09:07:00.010+02:00</published><updated>2012-01-20T22:31:40.037+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:31:40.037+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fórmulas" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Calcular vencimientos</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VpLHa11SJBBCE5XxQBZQoutRcGk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VpLHa11SJBBCE5XxQBZQoutRcGk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VpLHa11SJBBCE5XxQBZQoutRcGk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VpLHa11SJBBCE5XxQBZQoutRcGk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;En el artículo anterior, donde os dejé una aplicación para &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/09/controlar-vencimientos-de-facturas-y.html" title="controlar vencimientos de facturas y de recibos"&gt;controlar vencimientos de facturas y de recibos&lt;/a&gt;, más de uno os habréis dado cuenta de que en una hoja, había una columna donde informábamos del vencimiento de las facturas. Esta columna utilizaba como referencias los &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/02/ponerle-un-nombre-las-celdas.html" title="Nombres de celdas"&gt;nombres de celdas&lt;/a&gt;, con lo que intentar descifrar esa fórmula podía ser un trabajo de investigación (nada difícil, pero sí, más complicado de lo normal).&lt;br /&gt;&lt;br /&gt;Para solucionar el asunto, vamos a ver ahora en este artículo, esa misma fórmula, pero sin utilizar los nombres de celdas.&lt;br /&gt;&lt;br /&gt;Supongamos que tenemos los siguientes datos, en las siguientes celdas:&lt;br /&gt;&lt;br /&gt;E5: Aquí tenemos el plazo de crédito a los clientes. Puede ser 30, 45, 60, 90 o los días que hayamos acordado.&lt;br /&gt;&lt;br /&gt;E6: Aquí tenemos la fecha de pago fija del cliente. Hay clientes que para centralizar sus pagos en una fecha determinada, suelen pagar sus facturas un único día al mes. Puede ser el día 5, el día 10, el día 15, o cualquier otro día de pago fijo que tenga el cliente. Si nuestros clientes no tienen un día de pago fijo, dejaremos esta celda vacía (sin dato).&lt;br /&gt;&lt;br /&gt;B8: Fecha de emisión de la factura.&lt;br /&gt;&lt;br /&gt;Si queremos calcular el vencimiento de la factura, deberemos poner esta fórmula en la celda donde queramos informar este dato:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=SI($E$6&lt;&gt;"";SI(DIA(B8+$E$5)&gt;$E$6;MIN(FECHA(AÑO(C8);MES(C8)+1;DIA($E$6));FIN.MES(B8+$E$5;1));MIN(FECHA(AÑO(C8);MES(C8);DIA($E$6));FIN.MES(B8+$E$5;0)));B8+$E$5)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Podemos ver una tabla con esa información, en la siguiente imagen (clic para ampliarla):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/TKGVg9EFMTI/AAAAAAAAD9w/WMBelaeGocc/s1600/Vencimiento-de-facturas.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 167px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/TKGVg9EFMTI/AAAAAAAAD9w/WMBelaeGocc/s400/Vencimiento-de-facturas.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5521859011512971570" /&gt;&lt;/a&gt;&lt;br /&gt;Si os fijáis en la tabla de la imagen anterior, la segunda columna muestra el vencimiento teórico, o vencimiento inicial, con independencia de que el cliente tenga o no, un día de pago fijo. En la tercera columna, vemos ya el efecto de desplazar ese vencimiento inicial, a aquel que le correspondería realmente, teniendo en cuenta el día de pago fijo que tiene el cliente. En la cuarta columna se muestran los días de vencimiento real contados desde la fecha de emisión de la factura.&lt;br /&gt;&lt;br /&gt;Para que nos funcione la fórmula anterior, donde aparece la función FIN.MES, debemos tener habilitadas las "Herramientas para análisis", en Excel 2003 podemos hacerlo desde el menú Herramientas,  seleccionando la opción de menú Complementos. En Excel 2007 deberemos pulsar el botón de Microsoft Office (arriba a la izquierda), seleccionaremos el botón de Opciones de Excel (situado en la parte inferior de la ventana que nos aparecerá), luego seleccionaremos Complementos, y a continuación nos situaremos encima de las Herramientas para análisis. Pulsaremos sobre el botón "Ir", y habilitaremos esta opción marcando la muesca correspondiente.&lt;br /&gt;&lt;br /&gt;Si lo que necesitamos es algo más sencillo, como simplemente sumar unos días de vencimiento a una fecha, podemos hacerlo de esta otra forma, mucho más sencilla, tal y como se muestra en la imagen, donde sumamos 30 días a la fecha de factura:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/TKGV6OTK2mI/AAAAAAAAD94/iJ-K0LuObxY/s1600/Vencimiento-de-facturas-formula-sencilla.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 346px; height: 172px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/TKGV6OTK2mI/AAAAAAAAD94/iJ-K0LuObxY/s400/Vencimiento-de-facturas-formula-sencilla.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5521859445636389474" /&gt;&lt;/a&gt;&lt;br /&gt;Si os fijáis, en imagen anterior podemos ver que la celda C5 tenemos como fórmula, el valor de la celda C4, y le hemos sumado 30 días. Para que en esas dos celdas los datos nos aparezcan como en la imagen anterior, simplemente deberemos darle formato personalizado a las celdas, con formato dd-mm-aaaa.&lt;br /&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?f5ms3dt5yj055lj" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo. En este fichero encontraréis una tabla con todos los días del año, y el vencimiento de las facturas en función del día de emisión de las mismas, teniendo en cuenta el plazo de crédito que concedamos al cliente, y la fecha de pago fija que tiene (si es que la tiene).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-6077298710357066723?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/6077298710357066723/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=6077298710357066723" title="4 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/6077298710357066723?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/6077298710357066723?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/09/calcular-vencimientos.html" title="Calcular vencimientos" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_EKImKCCi_hc/TKGVg9EFMTI/AAAAAAAAD9w/WMBelaeGocc/s72-c/Vencimiento-de-facturas.gif" height="72" width="72" /><thr:total>4</thr:total></entry><entry gd:etag="W/&quot;Dk4CR3o6eSp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-9079817330749631378</id><published>2010-09-01T00:01:00.011+02:00</published><updated>2012-01-20T22:29:26.411+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:29:26.411+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aplicaciones" /><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel avanzado" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Controlar vencimientos de facturas y recibos</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KSTdoNoo0VUX8LWdzZRo-I8WCeA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KSTdoNoo0VUX8LWdzZRo-I8WCeA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KSTdoNoo0VUX8LWdzZRo-I8WCeA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KSTdoNoo0VUX8LWdzZRo-I8WCeA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Si tienes cosas que hacer, mejor deja la lectura de este artículo para cuando dispongas de tiempo, porque una vez redactado todo, acabo de darme cuenta que ocupa la friolera de 16 páginas en DIN-A4. En cualquier caso, si prefieres descargarte la aplicación ahora, y leerte el resto más tarde, puedes hacerlo desde aquí: &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/09/controlar-vencimientos-de-facturas-y.html#control-de-vencimientos-de-facturas-y-recibos" title="Descargar la aplicación para controlar los vencimientos de facturas y recibos"&gt;descargar la aplicación para el control de vencimientos de facturas y recibos&lt;/a&gt;. Eso sí, al menos léete los párrafos iniciales para saber de qué va esta aplicación en Excel, y los párrafos finales de este artículo, para saber cual es el procedimiento que debes seguir como usuario de la aplicación, para su correcto funcionamiento, y saber como debes introducir los datos, para no obtener errores inesperados.&lt;br /&gt;&lt;br /&gt;Son muchas las pequeñas empresas, ya sean talleres, asociaciones, fundaciones, cooperativas, microempresas, e inclusos profesionales o empresarios individuales, que por su volumen de facturación y por su carga de trabajo administrativo, no requieren del uso de complejos programas para llevar el control de sus facturas, y saber cuando tienen que presentar los recibos al cobro, o cuando tienen que llamar al cliente para reclamar el pago de las facturas.&lt;br /&gt;&lt;br /&gt;Normalmente estas aplicaciones de control de recibos, forman parte de los propios programas de contabilidad, pero como muchas de esas empresas, probablemente tengan externalizada su contabilidad, delegando este trabajo en una gestoría o asesoría fiscal y contable, he pensado que podría ser de utilidad a más de uno, esta sencilla pero útil aplicación.&lt;br /&gt;&lt;br /&gt;Como siempre, se trata de una aplicación en Excel para el control de vencimientos de facturas y recibos, y es de libre distribución, como todo lo que puedes encontrar en este blog de Excel. Es una aplicación que no está protegida, por lo que podéis copiarla, enviársela a un amigo, o simplemente cambiar lo que os apetezca para adaptarla a vuestras necesidades. Respecto a esto último, solo quiero comentar que la aplicación va a servirle al 99,99% de los usuarios (por no decir al 100%), pues no está diseñada para un sector de actividad en concreto, de tal forma que servirá tanto para una empresa industrial como de servicios, ejerciten la actividad que ejerciten.&lt;br /&gt;&lt;br /&gt;Voy a explicar un poco por encima, cómo debe utilizarse esta aplicación, para un correcto funcionamiento. No es nada complicado su uso, pues incluso los más vagos pueden saltarse este pequeño tutorial, que no va a tener problemas para hacerse con él, en menos de un minuto :-)&lt;br /&gt;&lt;br /&gt;La aplicación consta de 5 hojas. Estas hojas no están ocultas, pero lo que sí que hemos hecho es ocultar las etiquetas de las hojas para que el usuario interactúe con los botones, y no a través de clics en las pestañas. Las hojas en cuestión, son las siguientes:&lt;br /&gt;&lt;br /&gt;- Una hoja para el menú principal.&lt;br /&gt;&lt;br /&gt;- Otra hoja para dar de alta, modificar, y ver los datos de nuestros clientes.&lt;br /&gt;&lt;br /&gt;- Otra hoja para dar de alta, modificar, y ver las condiciones de pago (condiciones de cobro de nuestras facturas).&lt;br /&gt;&lt;br /&gt;- Otra hoja para dar de alta, modificar, y ver las facturas que hemos emitido. Las facturas se tienen que generar con otra aplicación informática (programa de facturación), pues esta aplicación en Excel no es un programa de facturación, sino de control de vencimientos de facturas.&lt;br /&gt;&lt;br /&gt;- Otra hoja para obtener una previsión de cobros, en función de los datos de las facturas que hemos introducido. Esta previsión de cobros, nos muestra los cobros previstos mes a mes, así como un total general por cliente.&lt;br /&gt;&lt;br /&gt;Vamos a explicar para qué sirve cada hoja, y que es lo que encontraremos en cada una de ellas:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Menú principal:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Pocas cosas podemos decir sobre la funcionalidad de esta hoja, porque es más que evidente. Un pantallazo nos sacará de dudas:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/THyd1XruIxI/AAAAAAAADqA/7mScg3u-Uu4/s1600/control-de-vencimientos-de-facturas-y-recibos-menu-principal.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 329px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/THyd1XruIxI/AAAAAAAADqA/7mScg3u-Uu4/s400/control-de-vencimientos-de-facturas-y-recibos-menu-principal.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511453584210666258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El macro que tenemos en esta hoja (la hoja1), nos sirve para proteger la hoja al activarse la misma, y su código es el siguiente:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Worksheet_Activate()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;strong&gt;Alta y modificación de clientes:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Desde esta hoja, daremos de alta nuestros clientes, con todos los datos fiscales, y de contacto, así como su forma de pago, seleccionándola del desplegable que se genera automáticamente al dar de alta el nombre del cliente. También se generará una validación de datos automática, por lo que si el cliente tiene fecha de pago fija, solo podremos introducir un número entre el 1 y el 31.&lt;br /&gt;&lt;br /&gt;Este sería un pantallazo con un ejemplo donde salen nuestros clientes (clic sobre la imagen, para ampliarla):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/THyeuGtncYI/AAAAAAAADqI/Nvj_TEzjQ6Y/s1600/control-de-vencimientos-de-facturas-y-recibos-clientes.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 50px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/THyeuGtncYI/AAAAAAAADqI/Nvj_TEzjQ6Y/s400/control-de-vencimientos-de-facturas-y-recibos-clientes.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511454558907756930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En esta hoja tenemos dos macros. Uno que se ejecuta al activarse la hoja (la hoja2), y nos sirve para proteger la hoja:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Worksheet_Activate()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Este otro macro se ejecutará cuando cambiemos un dato de la hoja en cuestión. Si el cambio afecta a la columna A, entonces ocurrirá lo que comentaba anterior mente, es decir, se generará un desplegable de forma automática, y se generará también una validación de datos:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Worksheet_Change(ByVal Target As Range)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos la celda donde estamos&lt;/span&gt;&lt;br /&gt;celda = ActiveCell.Address&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si introducimos datos en la columna A,&lt;br /&gt;'entonces añadimos la validación de datos en&lt;br /&gt;'las dos columnas finales&lt;/span&gt;&lt;br /&gt;If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'añadimos la lista de validación de las formas de pago&lt;/span&gt;&lt;br /&gt;    Cells(Target.Row, 11).Select&lt;br /&gt;    With Selection.Validation&lt;br /&gt;        .Delete&lt;br /&gt;        .Add Type:=xlValidateList, Formula1:="=FPA"&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'añadimos la lista de validación del día de pago fijo&lt;/span&gt;&lt;br /&gt;    Cells(ActiveCell.Row, 12).Select&lt;br /&gt;    With Selection.Validation&lt;br /&gt;        .Delete&lt;br /&gt;        .Add Type:=xlValidateWholeNumber, Operator:=xlBetween, _&lt;br /&gt;        Formula1:="1", Formula2:="31"&lt;br /&gt;        .ErrorMessage = "El día de pago debe estar entre el 1 y el 31."&lt;br /&gt;    End With&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos donde estábamos&lt;/span&gt;&lt;br /&gt;Range(celda).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;strong&gt;Alta y modificación de formas de pago:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Esta hoja nos sirve para dar de alta las diferentes formas de pago, que luego serán las que se muestren en el desplegable al dar de alta los clientes. Un ejemplo de ello es el pantallazo que os presento a continuación (clic sobre la imagen, para ampliarla):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/THyfj9OGqjI/AAAAAAAADqQ/IHIcVihQD3o/s1600/control-de-vencimientos-de-facturas-y-recibos-formas-de-pago.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 184px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/THyfj9OGqjI/AAAAAAAADqQ/IHIcVihQD3o/s400/control-de-vencimientos-de-facturas-y-recibos-formas-de-pago.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511455484072602162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El macro que tenemos en esta hoja con las formas de pago (la hoja3), nos sirve para proteger la hoja al activarse la misma, y su código es el siguiente:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Worksheet_Activate()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;strong&gt;Facturas emitidas:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Aquí es donde iremos introduciendo las facturas de nuestra empresa. Solo tendremos que seleccionar el cliente desde el desplegable que nos aparecerá en la columna A. Este desplegable se genera automáticamente al colocarnos en una celda de esa columna, y toma los datos de la hoja de clientes (evidentemente de los clientes que hayamos introducido). Si generamos una nueva factura, antes deberemos dar de alta al cliente, y su forma de pago si es que no la tenemos ya en nuestra hoja de forma de pago.&lt;br /&gt;&lt;br /&gt;El aspecto que presenta esta hoja de facturas es similar a la de este ejemplo (clic sobre la imagen, para ampliarla):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/THygK2y6VMI/AAAAAAAADqY/JAYemb4BI8E/s1600/control-de-vencimientos-de-facturas-y-recibos-facturas.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 265px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/THygK2y6VMI/AAAAAAAADqY/JAYemb4BI8E/s400/control-de-vencimientos-de-facturas-y-recibos-facturas.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511456152362833090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el caso de haber facturas vencidas, la fila nos saldrá de color azul celeste, para tenerlas más a la vista. Solo nos quedará llamar a los clientes que no han pagado todavía, para recordarles que su factura ha vencido, y no hemos recibido el cobro. Una vez las hayamos cobrado, eliminaremos las facturas, situándonos en cualquier celda de la fila, y pulsando el botón "Eliminar fila".&lt;br /&gt;&lt;br /&gt;Lo primero que tenemos que hacer para dar de alta un cliente, es seleccionarlo del desplegable, tal y como se muestra en este ejemplo (clic sobre la imagen, para ampliarla):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/THyg4QyuHVI/AAAAAAAADqg/RTISPVwaC6w/s1600/control-de-vencimientos-de-facturas-y-recibos-ejemplo-desplegable-facturas.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 93px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/THyg4QyuHVI/AAAAAAAADqg/RTISPVwaC6w/s400/control-de-vencimientos-de-facturas-y-recibos-ejemplo-desplegable-facturas.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511456932435467602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una vez seleccionado el cliente, automáticamente nos aparecerán a la derecha una serie de datos, algunos de ellos son propuestas que evidentemente podemos modificar, como el número de factura (nos genera el siguiente nº de factura presuponiendo que el de la fila anterior es el último número de factura), y la fecha de la factura (presuponiendo que es la misma que la fecha de la fila anterior). El vencimiento evidentemente no lo debemos introducir, pues lo obtenemos automáticamente a partir de la fecha de emisión de la factura, y de las condiciones de pago (forma de pago).&lt;br /&gt;&lt;br /&gt;Con todo ello, y siguiendo con nuestro ejemplo, al seleccionar en el desplegable, nos aparecerá algo como lo de este ejemplo (clic sobre la imagen, para ampliarla):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/THyhL2JKGHI/AAAAAAAADqo/UAmDxj_SX_k/s1600/control-de-vencimientos-de-facturas-y-recibos-ejemplo-desplegable-facturas-autorrelleno-de-celdas.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 53px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/THyhL2JKGHI/AAAAAAAADqo/UAmDxj_SX_k/s400/control-de-vencimientos-de-facturas-y-recibos-ejemplo-desplegable-facturas-autorrelleno-de-celdas.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511457268879202418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los macros que nos encontraremos en esta hoja (la hoja4), son los siguientes. Uno de ellos, para proteger la hoja, en el momento de activarse:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Worksheet_Activate()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro que se ejecuta al seleccionar una celda de la columna A, y que nos sirve para generar el desplegable con los clientes a seleccionar:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Worksheet_SelectionChange(ByVal Target As Range)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si seleccionamos una celda de la columna A,&lt;br /&gt;'entonces añadimos la validación de datos en&lt;br /&gt;'la celda en cuestión&lt;/span&gt;&lt;br /&gt;If Not Application.Intersect(Target, Range("A:A")) _&lt;br /&gt;Is Nothing And ActiveCell.Row &gt;= 5 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'añadimos la lista de validación de los clientes&lt;/span&gt;&lt;br /&gt;    Cells(Target.Row, 1).Select&lt;br /&gt;    With Selection.Validation&lt;br /&gt;        .Delete&lt;br /&gt;        .Add Type:=xlValidateList, Formula1:="=CLI"&lt;br /&gt;    End With&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Y este otro macro que se ejecutará cuando cambiemos un dato de la columna A, y que nos generará todos los datos que comentábamos anteriormente (número de factura, fecha de factura, vencimiento, días hasta el vencimiento, y días de exceso sobre el vencimiento):&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Worksheet_Change(ByVal Target As Range)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si modificamos una celda de la columna A, añadimos&lt;br /&gt;'las fórmulas en las columnas correspondientes&lt;/span&gt;&lt;br /&gt;If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si no tenemos cliente o fecha de fra., borramos el vto. si&lt;br /&gt;    'lo hay así como los días de exceso, y los días hasta el vto.&lt;/span&gt;&lt;br /&gt;    If ActiveCell = "" Then&lt;br /&gt;        ActiveCell.Offset(0, 1) = ""&lt;br /&gt;        ActiveCell.Offset(0, 2) = ""&lt;br /&gt;        ActiveCell.Offset(0, 4) = ""&lt;br /&gt;        ActiveCell.Offset(0, 5) = ""&lt;br /&gt;        ActiveCell.Offset(0, 6) = ""&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si seleccionamos un cliente en el desplegable&lt;br /&gt;    'añadimos la fra. previsible, la fecha de fra. previsible,&lt;br /&gt;    'el vto., los días de exceso, y los días hasta el vto.&lt;/span&gt;&lt;br /&gt;    If ActiveCell &lt;&gt; "" Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'añadimos el nº de fra. previsible&lt;/span&gt;&lt;br /&gt;        If ActiveCell.Offset(-1, 1) &lt;&gt; "" And ActiveCell.Offset(0, 1) = "" Then&lt;br /&gt;            ActiveCell.Offset(0, 1) = ActiveCell.Offset(-1, 1) + 1&lt;br /&gt;        End If&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'añadimos la fecha de fra. previsible&lt;/span&gt;&lt;br /&gt;        If ActiveCell.Offset(-1, 2) &lt;&gt; "" And ActiveCell.Offset(0, 2) = "" Then&lt;br /&gt;            ActiveCell.Offset(0, 2) = ActiveCell.Offset(-1, 2)&lt;br /&gt;        End If&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'añadimos el vencimiento&lt;/span&gt;&lt;br /&gt;        If ActiveCell.Offset(-1, 4) &lt;&gt; "" And ActiveCell.Offset(0, 4) = "" Then&lt;br /&gt;            ActiveCell.Offset(0, 4).FormulaR1C1 = "=IF(VLOOKUP(RC[-4]," &amp; _&lt;br /&gt;            "TCLI,12,0)&lt;&gt;"""",IF(DAY(RC[-2]+VLOOKUP(VLOOKUP(RC[-4],TCLI,11,0)" &amp; _&lt;br /&gt;            ",TFPA,2,0))&gt;VLOOKUP(RC[-4],TCLI,12,0),MIN(DATE(YEAR(RC[-2]" &amp; _&lt;br /&gt;            "+VLOOKUP(VLOOKUP(RC[-4],TCLI,11,0),TFPA,2,0)),MONTH(RC[-2]" &amp; _&lt;br /&gt;            "+VLOOKUP(VLOOKUP(RC[-4],TCLI,11,0),TFPA,2,0))+1,DAY(VLOOKUP" &amp; _&lt;br /&gt;            "(RC[-4],TCLI,12,0))),FIN.MES(RC[-2]+VLOOKUP(VLOOKUP(RC[-4]," &amp; _&lt;br /&gt;            "TCLI,11,0),TFPA,2,0),1)),MIN(DATE(YEAR(RC[-2]+" &amp; _&lt;br /&gt;            "VLOOKUP(VLOOKUP(RC[-4],TCLI,11,0),TFPA,2,0)),MONTH(RC[-2]" &amp; _&lt;br /&gt;            "+VLOOKUP(VLOOKUP(RC[-4],TCLI,11,0),TFPA,2,0)),DAY(VLOOKUP" &amp; _&lt;br /&gt;            "(RC[-4],TCLI,12,0))),FIN.MES(RC[-2]+VLOOKUP(VLOOKUP" &amp; _&lt;br /&gt;            "(RC[-4],TCLI,11,0),TFPA,2,0),0))),RC[-2]+VLOOKUP(VLOOKUP" &amp; _&lt;br /&gt;            "(RC[-4],TCLI,11,0),TFPA,2,0))"&lt;br /&gt;        End If&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'añadimos los días hasta el vencimiento&lt;/span&gt;&lt;br /&gt;        If ActiveCell.Offset(-1, 5) &lt;&gt; "" And ActiveCell.Offset(0, 5) = "" Then&lt;br /&gt;            ActiveCell.Offset(0, 5) = "=IF(TODAY()-RC[-1]&lt;0,RC[-1]-TODAY(),0)"&lt;br /&gt;        End If&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'añadimos los días de exceso sobre el vencimiento&lt;/span&gt;&lt;br /&gt;        If ActiveCell.Offset(-1, 6) &lt;&gt; "" And ActiveCell.Offset(0, 6) = "" Then&lt;br /&gt;            ActiveCell.Offset(0, 6) = "=IF(TODAY()-RC[-2]&gt;=0,TODAY()-RC[-2],0)"&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;strong&gt;Previsión de cobros:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Una vez tengamos dadas de alta todas las facturas, simplemente deberemos acceder a la hoja donde se nos genera de forma automática la previsión de cobros. Para ello, pulsaremos el botón "Previsión de cobros".&lt;br /&gt;&lt;br /&gt;Lo que obtendremos será algo similar a lo que se muestra en el siguiente ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/THyjMU_027I/AAAAAAAADqw/6NrkHLNUJLU/s1600/control-de-vencimientos-de-facturas-y-recibos-prevision-de-cobros.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 119px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/THyjMU_027I/AAAAAAAADqw/6NrkHLNUJLU/s400/control-de-vencimientos-de-facturas-y-recibos-prevision-de-cobros.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511459476184816562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En esta hoja no tenemos ningún macro, pues todo el código que genera la previsión de cobros, lo tenemos en un macro dentro del Módulo1.&lt;br /&gt;&lt;br /&gt;Vamos a entrar ahora a comentar los macros que tenemos en el Módulo1. Lo primero que hay es el macro Auto_open(), que como sabéis es el macro que se ejecuta al abrir el fichero. El código de nuestro macro Auto_open() es el siguiente (lo he modificado una vez publicado el artículo, para que se carguen automáticamente las herramientas para análisis, y no tener problemas con la función FIN.MES):&lt;br /&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Auto_open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'activamos las herramientas para análisis,&lt;br /&gt;'para no tener problemas con la función FIN.MES&lt;/span&gt;&lt;br /&gt;AddIns("Herramientas para análisis").Installed = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'no mostramos las pestañas (las hojas)&lt;/span&gt;&lt;br /&gt;ActiveWindow.DisplayWorkbookTabs = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'buscamos si hay alguna factura vencida, y también&lt;br /&gt;'si hay facturas para vencer en los próximos 7 días&lt;/span&gt;&lt;br /&gt;Hoja4.Select&lt;br /&gt;Range("G5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si no hay facturas, saltamos a la línea correspondiente&lt;/span&gt;&lt;br /&gt;If ActiveCell.Offset(0, -6) = "" Then GoTo sinfacturas&lt;br /&gt;&lt;span style="color:#009900;"&gt;'para todo el rango de datos de la columna J&lt;/span&gt;&lt;br /&gt;For i = 5 To Selection.End(xlDown).Row&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'miramos si hay facturas vencidas&lt;/span&gt;&lt;br /&gt;    If ActiveCell &gt; 0 Then vencidas = vencidas + 1&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'miramos si hay facturas que&lt;br /&gt;    'vencen en los próximos 7 días&lt;/span&gt;&lt;br /&gt;    If ActiveCell.Offset(0, -1) &lt;= 7 And _&lt;br /&gt;    ActiveCell.Offset(0, -1) &gt; 0 Then proximas = proximas + 1&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'bajamos una fila&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(1, 0).Select&lt;br /&gt;Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos para escribir la siguiente factura&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, -6).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos un mensaje si hay facturas vencidas&lt;/span&gt;&lt;br /&gt;If vencidas = 1 Then MsgBox ("Hoy es " &amp; FormatDateTime(Date, vbLongDate) &amp; _&lt;br /&gt;"," + Chr(10) + "y hay " &amp; vencidas &amp; " factura vencida.") _&lt;br /&gt; , , "Facturas vencidas"&lt;br /&gt;If vencidas &gt; 1 Then MsgBox ("Hoy es " &amp; FormatDateTime(Date, vbLongDate) &amp; _&lt;br /&gt;"," + Chr(10) + "y hay " &amp; vencidas &amp; " facturas vencidas.") _&lt;br /&gt; , , "Facturas vencidas"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos un mensaje si hay facturas próximas a vencer&lt;/span&gt;&lt;br /&gt;If proximas = 1 Then MsgBox ("Hay " &amp; proximas &amp; " factura que vence " _&lt;br /&gt;+ "en los próximos 7 días."), , "Facturas para vencer"&lt;br /&gt;If proximas &gt; 1 Then MsgBox ("Hay " &amp; proximas &amp; " facturas que vencen " _&lt;br /&gt;+ "en los próximos 7 días."), , "Facturas para vencer"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en el menú principal&lt;/span&gt;&lt;br /&gt;sinfacturas:&lt;br /&gt;Hoja1.Select&lt;br /&gt;Range("E12").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;No comentaré mucho sobre lo que hace el macro Auto_open(), porque con leer los comentarios del propio macro, lo tenemos todo chupado. Dentro de ese código, hay dos partes importantes que sí que me gustaría recalcar. Una de ellas, es que se nos mostrará un aviso informándonos de las facturas que tenemos vencidas. Este aviso se nos mostrará con tan solo abrir el fichero, siempre y cuando tengamos facturas vencidas, claro está. En el caso de haber facturas vencidas, se nos mostrará un mensaje similar a este que os muestro a continuación, donde nos avisa que hay 9 facturas vencidas:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/THyj8RyVpeI/AAAAAAAADq4/Tlh0oMQlt8w/s1600/control-de-vencimientos-de-facturas-y-recibos-aviso-facturas-vencidas.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 245px; height: 120px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/THyj8RyVpeI/AAAAAAAADq4/Tlh0oMQlt8w/s400/control-de-vencimientos-de-facturas-y-recibos-aviso-facturas-vencidas.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511460299956659682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el caso de tener facturas que venzan en los próximos 7 días, la aplicación también nos mostrará un aviso como el que se nos muestra a continuación, donde nos avisa que tenemos 1 factura que nos vence en los próximos 7 días:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/THykKfboALI/AAAAAAAADrA/1uPqcN9rmNY/s1600/control-de-vencimientos-de-facturas-y-recibos-aviso-facturas-a-vencer.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 260px; height: 107px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/THykKfboALI/AAAAAAAADrA/1uPqcN9rmNY/s400/control-de-vencimientos-de-facturas-y-recibos-aviso-facturas-a-vencer.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5511460544137658546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Aparte del macro Auto_open(), tenemos estos otros macros cuyo código os incluyo a continuación. Un macro para imprimir:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Imprimir()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Imprimimos la hoja&lt;/span&gt;&lt;br /&gt;ActiveWindow.SelectedSheets.PrintOut Copies:=1&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para guardar el fichero pero sin cerrar la aplicación, es decir, para guardar los datos, y continuar trabajando:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Guardar()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Guardamos el libro&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Save&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para ir a la hoja de clientes:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Clientes()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Vamos a la hoja2&lt;/span&gt;&lt;br /&gt;Hoja2.Select&lt;br /&gt;Range("A5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en la primera fila libre&lt;/span&gt;&lt;br /&gt;Selection.End(xlDown).Offset(1, 0).Select&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para acceder a la hoja con las formas de pago:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Formas_de_pago()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Vamos a la hoja3&lt;/span&gt;&lt;br /&gt;Hoja3.Select&lt;br /&gt;Range("B5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en la primera fila libre&lt;/span&gt;&lt;br /&gt;Selection.End(xlDown).Offset(1, 0).Select&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para acceder a la hoja de facturas:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Facturas()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Vamos a la hoja4&lt;/span&gt;&lt;br /&gt;Hoja4.Select&lt;br /&gt;Range("A5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en la primera fila libre&lt;/span&gt;&lt;br /&gt;If ActiveCell.Offset(0, 1) &lt;&gt; "" Then&lt;br /&gt;    Selection.End(xlDown).Offset(1, 0).Select&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para volver al menú principal:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Volver_al_menu()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos al menú, pero dependiendo&lt;br /&gt;'de la hoja donde estemos, ordenaremos&lt;br /&gt;'también los datos&lt;/span&gt;&lt;br /&gt;If ActiveSheet.CodeName = "Hoja2" Then Ordenar_clientes&lt;br /&gt;If ActiveSheet.CodeName = "Hoja3" Then Ordenar_formas_de_pago&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos al menú&lt;/span&gt;&lt;br /&gt;Hoja1.Select&lt;br /&gt;Range("E12").Select&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para ordenar alfabéticamente los clientes:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Ordenar_clientes()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos la celda donde estamos, para volver a ella&lt;/span&gt;&lt;br /&gt;celda_donde_estamos = ActiveCell.Address&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos la primera fila con datos&lt;/span&gt;&lt;br /&gt;Range("A5:K5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ordenamos las celdas hasta el final&lt;/span&gt;&lt;br /&gt;Range(Selection, Selection.End(xlDown)).Select&lt;br /&gt;Selection.Sort Key1:=Range("A5")&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo&lt;br /&gt;'desde A5 hasta abajo del todo&lt;/span&gt;&lt;br /&gt;Range("A5").Select&lt;br /&gt;Selection.End(xlDown).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'le ponemos un nombre a ese rango&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Names.Add Name:="CLI", RefersToR1C1:="='" _&lt;br /&gt;&amp; ActiveSheet.Name &amp; "'!R5C1:R" &amp; ActiveCell.Row &amp; "C1"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ahora le ponemos un nombre a toda la tabla&lt;/span&gt;&lt;br /&gt;Range("A5").Select&lt;br /&gt;Selection.End(xlDown).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'le ponemos un nombre a ese rango&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Names.Add Name:="TCLI", RefersToR1C1:="='" _&lt;br /&gt;&amp; ActiveSheet.Name &amp; "'!R5C1:R" &amp; ActiveCell.Row &amp; "C12"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos donde estábamos&lt;br /&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos a la celda donde estábamos&lt;/span&gt;&lt;br /&gt;Range(celda_donde_estamos).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;MsgBox ("Se han ordenado alfabéticamente los clientes.") _&lt;br /&gt;, , "Clientes ordenados"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para ordenar alfabéticamente las formas de pago:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Ordenar_formas_de_pago()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos la celda donde estamos, para volver a ella&lt;/span&gt;&lt;br /&gt;celda_donde_estamos = ActiveCell.Address&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos la primera fila con datos&lt;/span&gt;&lt;br /&gt;Range("B5:C5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ordenamos las celdas hasta el final&lt;/span&gt;&lt;br /&gt;Range(Selection, Selection.End(xlDown)).Select&lt;br /&gt;Selection.Sort Key1:=Range("B5")&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo&lt;br /&gt;'desde B5 hasta abajo del todo&lt;/span&gt;&lt;br /&gt;Range("B5").Select&lt;br /&gt;Selection.End(xlDown).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'le ponemos un nombre a ese rango&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Names.Add Name:="FPA", RefersToR1C1:="='" _&lt;br /&gt;&amp; ActiveSheet.Name &amp; "'!R5C2:R" &amp; ActiveCell.Row &amp; "C2"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ahora le ponemos un nombre a toda la tabla&lt;/span&gt;&lt;br /&gt;Range("B5").Select&lt;br /&gt;Selection.End(xlDown).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'le ponemos un nombre a ese rango&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Names.Add Name:="TFPA", RefersToR1C1:="='" _&lt;br /&gt;&amp; ActiveSheet.Name &amp; "'!R5C2:R" &amp; ActiveCell.Row &amp; "C3"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos donde estábamos&lt;br /&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos a la celda donde estábamos&lt;/span&gt;&lt;br /&gt;Range(celda_donde_estamos).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;MsgBox ("Se han ordenado alfabéticamente las formas de pago.") _&lt;br /&gt;, , "Formas de pago ordenadas"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Tomad un poco de aire, que aún quedan unos cuantos macros más. El siguiente que nos encontraremos es para eliminar clientes:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Eliminar_cliente()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos el nombre del cliente a buscar&lt;br /&gt;'y la celda donde estamos&lt;/span&gt;&lt;br /&gt;cliente = Cells(ActiveCell.Row, 1)&lt;br /&gt;celda = ActiveCell.Address&lt;br /&gt;&lt;span style="color:#009900;"&gt;'antes de borrar un cliente, buscaremos que no tengamos&lt;br /&gt;'facturas emitidas a nombre de ese cliente a eliminar&lt;/span&gt;&lt;br /&gt;Hoja4.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'buscamos el cliente, y si existe en las facturas&lt;br /&gt;'creamos una variable&lt;/span&gt;&lt;br /&gt;If Not Cells.Find(cliente) Is Nothing And cliente &lt;&gt; "" Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si ese cliente tiene facturas,&lt;br /&gt;    'creamos una variable&lt;/span&gt;&lt;br /&gt;    borrar_fila = "no"&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos a la hoja2&lt;/span&gt;&lt;br /&gt;Hoja2.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'y a la celda donde estábamos&lt;/span&gt;&lt;br /&gt;Range(celda).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si borrar_fila = "no", mostramos un mensaje&lt;br /&gt;'de que no podemos borrar la fila&lt;/span&gt;&lt;br /&gt;If borrar_fila = "no" Then&lt;br /&gt;    MsgBox ("Antes de borrar este cliente, debes borrar sus facturas." _&lt;br /&gt;    + Chr(10) + "Por favor, accede a la hoja de Faturas, para eliminarlas.") _&lt;br /&gt;    , , "Imposible borrar este cliente"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'finalizamos el macro&lt;/span&gt;&lt;br /&gt;    Exit Sub&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si estamos en la fila 5 o superior,&lt;br /&gt;'eliminamos la fila&lt;/span&gt;&lt;br /&gt;If Selection.Row &gt;= 5 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Unprotect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos la fila donde estamos&lt;/span&gt;&lt;br /&gt;    Selection.EntireRow.Delete&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("Los datos de este cliente, han sido eliminados.") _&lt;br /&gt;    , , "Cliente eliminado"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Protect&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para eliminar formas de pago:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Eliminar_forma_de_pago()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos el nombre de la forma de pago a buscar&lt;br /&gt;'y la celda donde estamos&lt;/span&gt;&lt;br /&gt;formadepago = Cells(ActiveCell.Row, 2)&lt;br /&gt;celda = ActiveCell.Address&lt;br /&gt;&lt;span style="color:#009900;"&gt;'antes de borrar una forma de pago, buscaremos&lt;br /&gt;'que no tengamos facturas emitidas a clientes&lt;br /&gt;'con esa forma de pago a eliminar&lt;/span&gt;&lt;br /&gt;Hoja2.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'buscamos la forma de pago, y si existe en&lt;br /&gt;'algún cliente, creamos una variable&lt;/span&gt;&lt;br /&gt;If Not Cells.Find(formadepago) Is Nothing And formadepago &lt;&gt; "" Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si ese cliente tiene facturas,&lt;br /&gt;    'creamos una variable&lt;/span&gt;&lt;br /&gt;    borrar_fila = "no"&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos a la hoja3&lt;/span&gt;&lt;br /&gt;Hoja3.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'y a la celda donde estábamos&lt;/span&gt;&lt;br /&gt;Range(celda).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si borrar_fila = "no", mostramos un mensaje&lt;br /&gt;'de que no podemos borrar la fila&lt;/span&gt;&lt;br /&gt;If borrar_fila = "no" Then&lt;br /&gt;    MsgBox ("Antes de borrar esta forma de pago, debes borrar o cambiar la forma" _&lt;br /&gt;    + Chr(10) + "de pago de los clientes que utilizan esta modalidad de pago a borrar." _&lt;br /&gt;    + Chr(10) + Chr(10) + "Por favor, accede a la hoja de Clientes, para editarlos.") _&lt;br /&gt;    , , "Imposible borrar esta forma de pago"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'finalizamos el macro&lt;/span&gt;&lt;br /&gt;    Exit Sub&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si estamos en la fila 5 o superior,&lt;br /&gt;'eliminamos la fila&lt;/span&gt;&lt;br /&gt;If Selection.Row &gt;= 5 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Unprotect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos la fila donde estamos&lt;/span&gt;&lt;br /&gt;    Selection.EntireRow.Delete&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("Esta forma de pago, ha sido eliminada.") _&lt;br /&gt;    , , "Forma de pago eliminada"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Protect&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Otro macro para eliminar facturas:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Eliminar_factura()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si estamos en la fila 5 o superior,&lt;br /&gt;'eliminamos la fila&lt;/span&gt;&lt;br /&gt;If Selection.Row &gt;= 5 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Unprotect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos la fila donde estamos&lt;/span&gt;&lt;br /&gt;    Selection.EntireRow.Delete&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("La factura seleccionada, ha sido eliminada.") _&lt;br /&gt;    , , "Factura eliminada"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Protect&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Y el último macro que nos encontraremos, y también el más largo, es este, que nos sirve para generar nuestra previsión de cobros, detallando los vencimientos por meses y por clientes:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Prevision_de_cobros()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'cambiamos el texto del botón de la hoja1 y hoja4&lt;/span&gt;&lt;br /&gt;If ActiveSheet.CodeName = "Hoja1" Or _&lt;br /&gt;ActiveSheet.CodeName = "Hoja4" Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'creamos una variable&lt;/span&gt;&lt;br /&gt;    If ActiveSheet.CodeName = "Hoja1" Then hoja = "menu"&lt;br /&gt;    If ActiveSheet.CodeName = "Hoja4" Then hoja = "facturas"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Unprotect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seleccionamos el botón&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Shapes("Botón 2").Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'le cambiamos el nombre, y lo ponemos en rojo&lt;/span&gt;&lt;br /&gt;    Selection.Characters.Text = "Procesando..."&lt;br /&gt;    With Selection.Font&lt;br /&gt;        .ColorIndex = 3&lt;br /&gt;    End With&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'comprobamos que tengamos facturas&lt;/span&gt;&lt;br /&gt;If Hoja4.Range("A5") = "" Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si no hay facturas, mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("Por favor, revisa todo, para poder continuar.") _&lt;br /&gt;    + Chr(10) + Chr(10) + "Al parecer no hay facturas, y por tanto no se" _&lt;br /&gt;    + Chr(10) + "puede generar la previsión de cobros." _&lt;br /&gt;    , , "Hay errores"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seleccionamos el botón2&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Shapes("Botón 2").Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'le cambiamos el nombre&lt;/span&gt;&lt;br /&gt;    Selection.Characters.Text = "Previsión de cobros"&lt;br /&gt;    If Hoja = "menu" Then&lt;br /&gt;        With Selection.Characters(Start:=1, Length:=13).Font&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;        With Selection.Characters(Start:=14, Length:=6).Font&lt;br /&gt;            .ColorIndex = 3&lt;br /&gt;        End With&lt;br /&gt;    ElseIf Hoja = "facturas" Then&lt;br /&gt;        With Selection.Font&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Protect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'finalizamos el macro&lt;/span&gt;&lt;br /&gt;    Exit Sub&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos la celda donde estamos&lt;/span&gt;&lt;br /&gt;celda = ActiveCell.Address&lt;br /&gt;&lt;span style="color:#009900;"&gt;'eliminamos todo lo que haya en la hoja5&lt;/span&gt;&lt;br /&gt;Hoja5.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos la celda A5&lt;/span&gt;&lt;br /&gt;Range("A5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo&lt;/span&gt;&lt;br /&gt;Range(Selection, Selection.End(xlDown)).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'borramos las filas (los clientes)&lt;/span&gt;&lt;br /&gt;Selection.EntireRow.Delete&lt;br /&gt;&lt;span style="color:#009900;"&gt;'borramos ahora las fechas&lt;/span&gt;&lt;br /&gt;Range("B4").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo por la derecha&lt;/span&gt;&lt;br /&gt;Range(Selection, Selection.End(xlToRight)).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'borramos las filas (los clientes)&lt;/span&gt;&lt;br /&gt;Selection.EntireColumn.Delete&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos la hoja2&lt;/span&gt;&lt;br /&gt;Hoja2.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en la primera celda con datos&lt;/span&gt;&lt;br /&gt;Range("A5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo&lt;/span&gt;&lt;br /&gt;Range(Selection, Selection.End(xlDown)).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'copiamos los datos&lt;/span&gt;&lt;br /&gt;Selection.Copy&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos la celda A5&lt;/span&gt;&lt;br /&gt;Range("A5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos la hoja5&lt;/span&gt;&lt;br /&gt;Hoja5.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos la celda A5&lt;/span&gt;&lt;br /&gt;Range("A5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'pegamos los datos&lt;/span&gt;&lt;br /&gt;Selection.PasteSpecial Paste:=xlPasteValues&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos la fila máxima&lt;/span&gt;&lt;br /&gt;fila_maxima = Selection.End(xlDown).Row&lt;br /&gt;&lt;span style="color:#009900;"&gt;'vamos a la hoja4, donde tenemos las facturas&lt;br /&gt;'y seleccionamos la fecha menor y mayor&lt;/span&gt;&lt;br /&gt;Hoja4.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo&lt;br /&gt;'desde A5 hasta abajo del todo&lt;/span&gt;&lt;br /&gt;Range("A5").Select&lt;br /&gt;Selection.End(xlDown).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'le ponemos un nombre a ese rango&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Names.Add Name:="FRAS", RefersToR1C1:="='" _&lt;br /&gt;&amp; ActiveSheet.Name &amp; "'!R5C1:R" &amp; ActiveCell.Row &amp; "C1"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo&lt;br /&gt;'desde D5 hasta abajo del todo&lt;/span&gt;&lt;br /&gt;Range("D5").Select&lt;br /&gt;Selection.End(xlDown).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'le ponemos un nombre a ese rango&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Names.Add Name:="IMPORTES", RefersToR1C1:="='" _&lt;br /&gt;&amp; ActiveSheet.Name &amp; "'!R5C4:R" &amp; ActiveCell.Row &amp; "C4"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo&lt;br /&gt;'desde E5 hasta abajo del todo&lt;/span&gt;&lt;br /&gt;Range("E5").Select&lt;br /&gt;Selection.End(xlDown).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'le ponemos un nombre a ese rango&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Names.Add Name:="VTOS", RefersToR1C1:="='" _&lt;br /&gt;&amp; ActiveSheet.Name &amp; "'!R5C5:R" &amp; ActiveCell.Row &amp; "C5"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos a E5&lt;/span&gt;&lt;br /&gt;Range("E5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'definimos dos variables (fecha mínima y máxima)&lt;/span&gt;&lt;br /&gt;minimo = ActiveCell&lt;br /&gt;maximo = ActiveCell&lt;br /&gt;Do While Not IsEmpty(ActiveCell)&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seleccionamos la fecha mínima y máxima&lt;/span&gt;&lt;br /&gt;    If ActiveCell &lt; minimo Then minimo = ActiveCell&lt;br /&gt;    If ActiveCell &gt; maximo Then maximo = ActiveCell&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'controlamos que no falten datos: nombre del cliente,&lt;br /&gt;    'fecha de factura, vencimiento e importe.&lt;br /&gt;    'Comenzamos controlando el vencimiento&lt;/span&gt;&lt;br /&gt;    If IsDate(ActiveCell) &lt;&gt; True Then incorrecto = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'controlamos la fecha de la factura&lt;/span&gt;&lt;br /&gt;    If IsDate(ActiveCell.Offset(0, -2)) &lt;&gt; True Then incorrecto = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'controlamos el importe&lt;/span&gt;&lt;br /&gt;    If Not IsNumeric(ActiveCell.Offset(0, -1)) Or _&lt;br /&gt;    ActiveCell.Offset(0, -1) = "" Then incorrecto = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'controlamos que exista el cliente&lt;/span&gt;&lt;br /&gt;    If ActiveCell.Offset(0, -4) = "" Then incorrecto = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'bajamos una fila&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(1, 0).Select&lt;br /&gt;Loop&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si hay errores, mostramos un mensaje&lt;/span&gt;&lt;br /&gt;If Err.Number &lt;&gt; 0 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("Existen errores." _&lt;br /&gt;    + Chr(10) + Chr(10) + "Por favor, revisa todo, para poder continuar.") _&lt;br /&gt;    , , "Datos incorrectos"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'volvemos a la hoja4&lt;/span&gt;&lt;br /&gt;    Hoja4.Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'nos situábamos en la celda donde estábamos&lt;/span&gt;&lt;br /&gt;    Range(celda).Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'vamos a la línea "boton"&lt;/span&gt;&lt;br /&gt;    GoTo boton&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si hay errores, mostramos un mensaje&lt;/span&gt;&lt;br /&gt;If incorrecto = True Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("Existen errores en algunas de estas columnas:" _&lt;br /&gt;    + Chr(10) + Chr(10) + "- Nombre de los clientes." _&lt;br /&gt;    + Chr(10) + "- Fecha de las facturas." _&lt;br /&gt;    + Chr(10) + "- Importe de las facturas." _&lt;br /&gt;    + Chr(10) + "- Vencimiento de las facturas." _&lt;br /&gt;    + Chr(10) + Chr(10) + "Por favor, revísalo, para poder continuar.") _&lt;br /&gt;    , , "Datos incorrectos"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'volvemos a la hoja4&lt;/span&gt;&lt;br /&gt;    Hoja4.Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'nos situábamos en la celda donde estábamos&lt;/span&gt;&lt;br /&gt;    Range(celda).Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'vamos a la línea "boton"&lt;/span&gt;&lt;br /&gt;    GoTo boton&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ahora seleccionamos el primer día del mes del mínimo y máximo&lt;/span&gt;&lt;br /&gt;minimo = "01" &amp; "/" &amp; Month(minimo) &amp; "/" &amp; Year(minimo)&lt;br /&gt;maximo = "01" &amp; "/" &amp; Month(maximo) &amp; "/" &amp; Year(maximo)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'recuerda que esta aplicación ha salido de&lt;br /&gt;'http://hojas-de-calculo-en-excel.blogspot.com&lt;br /&gt;'calculamos la diferencia en meses entre el mínimo y el máximo&lt;/span&gt;&lt;br /&gt;meses = DateDiff("m", minimo, maximo)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si la diferencia de meses es superior a 120&lt;br /&gt;'mostramos un mensaje de error&lt;/span&gt;&lt;br /&gt;If meses &gt; 120 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("Hay más de 10 años de diferencia entre el " _&lt;br /&gt;    + Chr(10) + "primer vencimiento, y el último vencimiento." _&lt;br /&gt;    + Chr(10) + Chr(10) + "Por favor, revísalo, para poder continuar.") _&lt;br /&gt;    , , "Vencimientos incorrectos"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'volvemos a la hoja4&lt;/span&gt;&lt;br /&gt;    Hoja4.Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'nos situábamos en la celda donde estábamos&lt;/span&gt;&lt;br /&gt;    Range(celda).Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'vamos a la línea "boton"&lt;/span&gt;&lt;br /&gt;    GoTo boton&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos a la hoja5&lt;/span&gt;&lt;br /&gt;Hoja5.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'escribimos los meses para planificar los cobros,&lt;br /&gt;'primero escribiendo los meses&lt;/span&gt;&lt;br /&gt;Range("A4").Select&lt;br /&gt;For i = 0 To meses&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seleccionamos la columna de la derecha&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(0, 1).Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'escribimos el mes&lt;/span&gt;&lt;br /&gt;    ActiveCell = DateAdd("m", i, minimo)&lt;br /&gt;Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'escribimos el total&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, 1) = "TOTAL"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos la columna máxima&lt;/span&gt;&lt;br /&gt;columna_maxima = Selection.End(xlToRight).Column&lt;br /&gt;&lt;span style="color:#009900;"&gt;'copiamos el formato de la celda A4&lt;/span&gt;&lt;br /&gt;Range("A4").Select&lt;br /&gt;ActiveCell.Copy&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo por&lt;br /&gt;'la derecha, desde la segunda columna&lt;/span&gt;&lt;br /&gt;Range(Selection.Offset(0, 1), Selection.End(xlToRight)).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'pegamos los formatos&lt;/span&gt;&lt;br /&gt;Selection.PasteSpecial Paste:=xlPasteFormats&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos los formatos de fecha (mes y año)&lt;/span&gt;&lt;br /&gt;Selection.NumberFormat = "[$-340A]mmm yyyy"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'alineamos esos encabezados a la derecha&lt;/span&gt;&lt;br /&gt;Range("B4").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'seleccionamos todo el rango continuo por la derecha&lt;/span&gt;&lt;br /&gt;Range(Selection, Selection.End(xlToRight)).Select&lt;br /&gt;With Selection&lt;br /&gt;    .HorizontalAlignment = xlRight&lt;br /&gt;End With&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en la celda B5&lt;/span&gt;&lt;br /&gt;Range("B5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'escribimos la fórmula&lt;/span&gt;&lt;br /&gt;ActiveCell.FormulaR1C1 = _&lt;br /&gt;"=SUMPRODUCT((FRAS=RC1)*(MONTH(VTOS)=MONTH(R4C))*(YEAR(VTOS)=YEAR(R4C))*IMPORTES)"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'copiamos y pegamos la fórmula en toda la tabla&lt;/span&gt;&lt;br /&gt;Selection.Copy&lt;br /&gt;Range(Cells(5, 2), Cells(fila_maxima, columna_maxima - 1)).Select&lt;br /&gt;ActiveSheet.Paste&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos los totales&lt;/span&gt;&lt;br /&gt;Range("A5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en la primera fila libre&lt;/span&gt;&lt;br /&gt;Selection.End(xlDown).Offset(1, 0).Select&lt;br /&gt;ActiveCell = "TOTALES"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'pasamos a la siguiente columna&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, 1).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'escribimos las sumas totales de cada mes&lt;/span&gt;&lt;br /&gt;For i = 2 To columna_maxima&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'escribimos el total&lt;/span&gt;&lt;br /&gt;    ActiveCell.FormulaR1C1 = "=SUM(R[-" &amp; fila_maxima - 4 &amp; _&lt;br /&gt;    "]C:R[-1]C)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'nos movemos a la derecha&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(0, 1).Select&lt;br /&gt;Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos a la última columna, y&lt;br /&gt;'seleccionamos toda la fila&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, -1).Select&lt;br /&gt;Range(Selection, Selection.End(xlToLeft)).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos la fila en negrita, con&lt;br /&gt;'bordes, y con la trama de color amarillo&lt;/span&gt;&lt;br /&gt;Selection.Font.Bold = True&lt;br /&gt;With Selection.Borders(xlEdgeTop)&lt;br /&gt;    .LineStyle = xlContinuous&lt;br /&gt;End With&lt;br /&gt;With Selection.Borders(xlEdgeBottom)&lt;br /&gt;    .LineStyle = xlContinuous&lt;br /&gt;    .Weight = xlMedium&lt;br /&gt;End With&lt;br /&gt;With Selection.Interior&lt;br /&gt;    .ColorIndex = 36&lt;br /&gt;End With&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos vamos a la última columna,&lt;br /&gt;'es decir, la de los totales&lt;/span&gt;&lt;br /&gt;Cells(5, columna_maxima).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'escribimos las sumas totales de cada cliente&lt;/span&gt;&lt;br /&gt;For i = 5 To fila_maxima&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'escribimos el total&lt;/span&gt;&lt;br /&gt;    ActiveCell.FormulaR1C1 = "=SUM(RC[-" &amp; columna_maxima - 2 &amp; _&lt;br /&gt;    "]:RC[-1])"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'nos movemos hacia abajo&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(1, 0).Select&lt;br /&gt;Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos todas esas sumas de cada cliente, en negrita&lt;/span&gt;&lt;br /&gt;Range(Selection, Selection.End(xlUp)).Select&lt;br /&gt;Selection.Font.Bold = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'le volvemos a poner el nombre correcto al botón&lt;/span&gt;&lt;br /&gt;boton:&lt;br /&gt;If hoja = "menu" Or hoja = "facturas" Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seleccionamos la hoja1 o la hoja4&lt;/span&gt;&lt;br /&gt;    If hoja = "menu" Then Hoja1.Select&lt;br /&gt;    If hoja = "facturas" Then Hoja4.Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Unprotect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seleccionamos el botón2&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Shapes("Botón 2").Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'le cambiamos el nombre&lt;/span&gt;&lt;br /&gt;    Selection.Characters.Text = "Previsión de cobros"&lt;br /&gt;    If hoja = "menu" Then&lt;br /&gt;        With Selection.Characters(Start:=1, Length:=13).Font&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;        With Selection.Characters(Start:=14, Length:=6).Font&lt;br /&gt;            .ColorIndex = 3&lt;br /&gt;        End With&lt;br /&gt;    ElseIf hoja = "facturas" Then&lt;br /&gt;        With Selection.Font&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Protect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'finalizamos el macro, si hay errores&lt;/span&gt;&lt;br /&gt;    If Err.Number &lt;&gt; 0 Or incorrecto = True Or meses &gt; 120 Then Exit Sub&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en la fila con el rótulo de los&lt;br /&gt;'totales, de la hoja5&lt;/span&gt;&lt;br /&gt;Hoja5.Select&lt;br /&gt;Range("A5").Select&lt;br /&gt;Selection.End(xlDown).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Finalmente comentar que el procedimiento correcto para inicializar la aplicación sería este, y necesariamente en este orden que os incluyo a continuación, pues en caso de no seguir este procedimiento, la aplicación puede responder con errores o de forma inesperada:&lt;br /&gt;&lt;br /&gt;1. Dar de alta las formas de pago.&lt;br /&gt;2. Dar de alta los clientes.&lt;br /&gt;3. Dar de alta las facturas.&lt;br /&gt;&lt;br /&gt;A&lt;a name="control-de-vencimientos-de-facturas-y-recibos"&gt;&lt;/a&gt; partir de ese momento, y si nuestros clientes son los que son, y no generamos nuevos clientes, tan solo tendremos que preocuparnos por introducir las facturas. Si tenemos un cliente nuevo, deberemos darlo de alta previamente, y si su forma de pago es nueva, deberemos dar de alta ésta lo primero de todo, siguiendo el esquema explicado en el párrafo anterior.&lt;br /&gt;&lt;br /&gt;Espero que os sea de utilidad esta aplicación. Desde aquí podéis &lt;a href="http://www.mediafire.com/?36yl6wadb39d08a" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo (resubido, con mejoras en el código, el 09/07/2011).&lt;br /&gt;&lt;br /&gt;Si hacéis algún cambio a la aplicación, os ruego que no me pidáis modificaciones personalizadas para vuestro caso en concreto o el de vuestra empresa, porque mi tiempo es muy limitado, y prefiero utilizarlo en resolver cuestiones de uso común. Si por el contrario, crees que sería interesante introducir alguna mejora en la aplicación, para que sea de uso público y los demás puedan aprovechar esa utilidad, entonces gustoso intentaré darle solución, si mis limitados conocimientos me lo permiten.&lt;br /&gt;&lt;br /&gt;Si en vuestra empresa trabajáis con descuento comercial (descuento de efectos), en este otro artículo podréis descargar la aplicación para &lt;a href=" http://hojas-de-calculo-en-excel.blogspot.com/2011/06/controlar-vencimientos-de-facturas-y.html " title=" controlar vencimientos de facturas y recibos, con descuento comercial "&gt;controlar vencimientos de facturas y recibos, con descuento comercial&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Por cierto, al hilo de esta aplicación para el control de vencimientos de facturas y recibos, solo quiero recordaros a los que realizáis actividades empresariales o profesionales en territorio español, que la reciente publicación de la &lt;a href="http://boe.es/boe/dias/2010/07/06/pdfs/BOE-A-2010-10708.pdf" title="Ley antimorosidad" rel="nofollow" target="_blank"&gt;ley de lucha contra la morosidad comercial&lt;/a&gt;, solo permite un &lt;strong&gt;máximo de 60 días de crédito&lt;/strong&gt; para aquellas operaciones que se realicen a partir del 1 de enero de 2013. Es decir, a partir de esa fecha, no podréis darle a vuestros clientes un plazo de pago superior a los 60 días (si los clientes tienen fecha fija de pago, deberéis tener en cuenta esta circunstancia, para adaptar las condiciones de pago, y que no exceda del límite marcado en la ley). No obstante, hasta esa fecha (1 de enero de 2013) uno no puede hacer lo que desee, ya que desde la entrada en vigor de la ley (7 de julio de 2010), existe un periodo transitorio para adaptarnos a ese máximo de 60 días, y no tener que bajar de golpe de los 180, 150, 120, 90 días, o los que vuestra empresa de a sus clientes. De esta forma, todas las empresas competirán en las mismas condiciones crediticias. Algo muy importante que como novedad incorpora la ley (en sustitución de la anterior ley antimorosidad), es que &lt;strong&gt;no admite el acuerdo entre las partes, para alargar los plazos de crédito a los clientes&lt;/strong&gt;, es decir, bajo ningún concepto se podrá superar el límite de los 60 días de crédito comercial,  pues no se permite que pactes alargar ese límite con tus clientes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-9079817330749631378?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/9079817330749631378/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=9079817330749631378" title="61 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/9079817330749631378?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/9079817330749631378?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/09/controlar-vencimientos-de-facturas-y.html" title="Controlar vencimientos de facturas y recibos" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_EKImKCCi_hc/THyd1XruIxI/AAAAAAAADqA/7mScg3u-Uu4/s72-c/control-de-vencimientos-de-facturas-y-recibos-menu-principal.gif" height="72" width="72" /><thr:total>61</thr:total></entry><entry gd:etag="W/&quot;Dk8GQXg5fyp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-4871645226394707455</id><published>2010-06-09T00:01:00.007+02:00</published><updated>2012-01-20T22:27:00.627+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:27:00.627+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aplicaciones" /><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel avanzado" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Préstamos según el método americano</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7Scti1R-GxrxLzIXOfCySfwowwE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7Scti1R-GxrxLzIXOfCySfwowwE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7Scti1R-GxrxLzIXOfCySfwowwE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7Scti1R-GxrxLzIXOfCySfwowwE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Existe un método de amortización de préstamos, que consiste en liquidar únicamente intereses en cada cuota, excepto en la cuota final, que aparte de los intereses, también amortizaremos el préstamo, y además lo haremos de golpe. Este método de amortización de préstamos, se denomina método americano, y su uso aunque no está muy extendido, siempre puede sernos útil.&lt;br /&gt;&lt;br /&gt;Las características básicas de este tipo de préstamos, son las siguientes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tienen casi todas las cuotas constantes (excepto la última).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;El capital se amortiza en la última cuota.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Los intereses que se pagan, son constantes en cada cuota.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Como siempre, el que quiera &lt;a href="#descarga-prestamo-americano" title="Descargar la aplicación para calcular préstamos según el sistema americano"&gt;descargar la aplicación&lt;/a&gt; sin tener que leer todo este artículo, puede hacerlo desde el enlace que acabo de incluir, pero es recomendable una lectura rápida, al menos para saber de qué estamos hablando.&lt;br /&gt;&lt;br /&gt;Como en el &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/01/prestamos-y-calculo-de-hipotecas.html" title="método francés de amortización de préstamos"&gt;método francés&lt;/a&gt; (que es el sistema habitual para el cálculo de préstamos e hipotecas), expliqué detenidamente todo el código fuente, aquí solo incluiré la parte del código que varía con respecto al resto de métodos, que no es otra que las fórmulas de la tabla de amortización que se obtiene.&lt;br /&gt;&lt;br /&gt;Los más avispados se darán cuenta que hemos eliminado todo lo relativo a la carencia en este método de amortización de préstamos, pues implícitamente la carencia ya viene incluida en la propia metodología de cálculo del sistema americano, ya que no se amortiza el principal hasta la última cuota.&lt;br /&gt;&lt;br /&gt;Antes os mostraré unos pantallazos, tanto del formulario de información del método americano, como del propio formulario donde introduciremos los datos necesarios para realizar los cálculos:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/TA3qzl7SIKI/AAAAAAAADco/bkAR76ZKqU8/s1600/informacion-prestamos-metodo-americano.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 366px; height: 234px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/TA3qzl7SIKI/AAAAAAAADco/bkAR76ZKqU8/s400/informacion-prestamos-metodo-americano.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5480294493654753442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/TA3qz934kAI/AAAAAAAADcw/RNL2yUYA_Ak/s1600/prestamos-metodo-americano.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/TA3qz934kAI/AAAAAAAADcw/RNL2yUYA_Ak/s400/prestamos-metodo-americano.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5480294500082946050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El código fuente correspondiente a la parte más importante (las fórmulas del préstamo americano), es este:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="color:#009900;"&gt;'Seguimos poniendo el capital vivo&lt;br /&gt;    'antes del pago de la 1ª cuota&lt;/span&gt;&lt;br /&gt;    Range("E18").Select&lt;br /&gt;    ActiveCell.Formula = "=R7C[1]"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo el capital amortizado&lt;br /&gt;    'en la primera cuota (que es cero)&lt;/span&gt;&lt;br /&gt;    Range("F18").Select&lt;br /&gt;    ActiveCell = 0&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo los intereses pagados&lt;/span&gt;&lt;br /&gt;    Range("G18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-5]&lt;=R9C6,RC[-2]*R8C6/R10C6,0)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo el capital amortizado acumulado&lt;/span&gt;&lt;br /&gt;    Range("H18").Select&lt;br /&gt;    ActiveCell = 0&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo los intereses acumulados&lt;/span&gt;&lt;br /&gt;    Range("I18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-2]&lt;&gt;0,RC[-2],0)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo la cuota total&lt;/span&gt;&lt;br /&gt;    Range("J18").Select&lt;br /&gt;    ActiveCell.Formula = "=RC[-4]+RC[-3]"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo el resto de datos, es decir&lt;br /&gt;    'el capital vivo antes del pago de cada cuota,&lt;br /&gt;    'el capital amortizado, los intereses, el capital&lt;br /&gt;    'amortizado acumulado, los intereses acumulados,&lt;br /&gt;    'y el importe de las cuotas&lt;/span&gt;&lt;br /&gt;    Range("E18").Select&lt;br /&gt;    For i = 1 To CuotasTotales - 1&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'hasta la penúltima cuota...&lt;/span&gt;&lt;br /&gt;        If i &lt; CuotasTotales - 1 Then&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'el capital vivo&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Formula = "=R[-1]C-R[-1]C[1]"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'el capital amortizado&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 1).Formula = "=R[-1]C"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'los intereses pagados&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 2).Formula = "=IF(RC[-5]&lt;=R9C6,RC[-2]*R8C6/R10C6,0)"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'el capital amortizado acumulado&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 3).Formula = "=R[-1]C"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'los intereses acumulados&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 4).Formula = "=IF(RC[-7]&lt;&gt;0,R[-1]C+RC[-2],0)"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'la cuota total&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 5).Formula = "=RC[-4]+RC[-3]"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'bajamos a la fila siguiente&lt;br /&gt;            'y seguimos con el bucle&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Select&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'si estamos en la última cuota...&lt;/span&gt;&lt;br /&gt;        Else&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'el capital vivo&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Formula = "=R[-1]C-R[-1]C[1]"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'el capital amortizado&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 1).Formula = "=RC[-1]"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'los intereses pagados&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 2).Formula = "=IF(RC[-5]&lt;=R9C6,RC[-2]*R8C6/R10C6,0)"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'el capital amortizado acumulado&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 3).Formula = "=RC[-2]"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'los intereses acumulados&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 4).Formula = "=IF(RC[-7]&lt;&gt;0,R[-1]C+RC[-2],0)"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'la cuota total&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 5).Formula = "=RC[-4]+RC[-3]"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'bajamos a la fila siguiente&lt;br /&gt;            'y seguimos con el bucle&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Select&lt;br /&gt;        End If&lt;br /&gt;    Next&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Y el resultado que obtendríamos sería algo como lo que os muestro en este ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/TA3sKUf0ozI/AAAAAAAADc4/1be1Sxi4vRY/s1600/prestamo-americano.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 238px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/TA3sKUf0ozI/AAAAAAAADc4/1be1Sxi4vRY/s400/prestamo-americano.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5480295983624790834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Desde&lt;a name="descarga-prestamo-americano"&gt;&lt;/a&gt; aquí podéis &lt;a href="http://www.mediafire.com/?w72nyjqh39wsko9" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo. Espero que lo disfrutéis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-4871645226394707455?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/4871645226394707455/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=4871645226394707455" title="5 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/4871645226394707455?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/4871645226394707455?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/06/prestamos-segun-el-metodo-americano.html" title="Préstamos según el método americano" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_EKImKCCi_hc/TA3qzl7SIKI/AAAAAAAADco/bkAR76ZKqU8/s72-c/informacion-prestamos-metodo-americano.gif" height="72" width="72" /><thr:total>5</thr:total></entry><entry gd:etag="W/&quot;DkAHSHczeyp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-1545327345266099778</id><published>2010-05-17T10:57:00.019+02:00</published><updated>2012-01-20T22:25:39.983+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:25:39.983+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aplicaciones" /><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel avanzado" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Préstamos con amortización de capital constante</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/44TbcS1Jf3YTZPyadCwXmpTDN70/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/44TbcS1Jf3YTZPyadCwXmpTDN70/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/44TbcS1Jf3YTZPyadCwXmpTDN70/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/44TbcS1Jf3YTZPyadCwXmpTDN70/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hoy utilizaremos nuestra potente hoja de cálculo Excel, para montar un sistema de amortización de préstamos, siguiendo el mismo mecanismo y la metodología que ya aplicamos en su momento para el modelo de amortización de préstamos siguiendo el &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/01/prestamos-y-calculo-de-hipotecas.html" title="Amortización de préstamos según el sistema francés"&gt;sistema francés&lt;/a&gt;, que es el modelo estándar para el cálculo de préstamos e hipotecas. En esta ocasión, lo que haremos será calcular la amortización del préstamo, pero amortizando en cada cuota la misma cantidad de capital, es decir, en esta ocasión trabajaremos los préstamos con amortización de capital constante. Como siempre, tendremos también en cuenta la posibilidad de que exista un periodo de carencia en el que no se amorticen cuotas del principal del préstamo.&lt;br /&gt;&lt;br /&gt;Las características básicas de este tipo de préstamos, son las siguientes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Los intereses se devengan al vencimiento de cada cuota.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;El capital que se amortiza es constante en cada cuota, es decir, el principal del préstamo que se va pagando, es siempre del mismo importe, a medida que va transcurriendo el tiempo, y a medida que vamos liquidando las cuotas.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Los intereses van disminuyendo y son menores en cada cuota.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Las cuotas totales que se pagan, son variables y cada vez menores, debido a que los intereses son cada vez menores.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Como siempre, el que quiera &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/05/prestamos-con-amortizacion-de-capital.html#descarga-prestamos-amortizacion-capital-constante" title="Descargar la aplicación para calcular préstamos con amortización de capital constante"&gt;descargar la aplicación&lt;/a&gt; sin tener que leer todo este artículo, puede hacerlo en cualquier momento, pero es recomendable al menos, una lectura rápida por encima, para hacernos una idea y saber de que estamos hablando.&lt;br /&gt;Lo primero que haremos en nuestra aplicación financiera para el cálculo de préstamos con amortización de capital constante, será construir un formulario con información sobre el préstamo, tal y como aparece en la siguiente imagen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/S_ENyQh20XI/AAAAAAAADYo/t3N_8W-qMm4/s1600/formulario-de-informacion-del-prestamo-con-amortizacion-de-capital-constante.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 366px; height: 225px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/S_ENyQh20XI/AAAAAAAADYo/t3N_8W-qMm4/s400/formulario-de-informacion-del-prestamo-con-amortizacion-de-capital-constante.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5472170179313455474" /&gt;&lt;/a&gt;&lt;br /&gt;Para no escribir líneas de código innecesarias, solo añadiré aquí el código fuente (o la parte del código fuente) que sea diferente a la aplicación que ya vimos en su momento cuando estudiamos el método francés de amortización de préstamos.&lt;br /&gt;&lt;br /&gt;Para lanzar el formulario con la información sobre este tipo de préstamos, tal y como muestra la imagen anterior, simplemente tendremos que añadir estas líneas de código en un módulo (al formulario le hemos puesto por nombre InfoPrestamoCapitalConstante):&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Prestamo_Capital_constante()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Lanzamos el formulario con info sobre&lt;br /&gt;'el préstamo con amortización de capital constante&lt;/span&gt;&lt;br /&gt;InfoPrestamoCapitalConstante.Show&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Una vez hayamos lanzado ese formulario, y pulsemos el botón “Si”, nos aparecerá este segundo formulario, para informar directamente de las características del préstamo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/S_EKgUM7LWI/AAAAAAAADYY/dk4VpRDTda4/s1600/formulario-del-prestamo-con-amortizacion-de-capital-constante.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/S_EKgUM7LWI/AAAAAAAADYY/dk4VpRDTda4/s400/formulario-del-prestamo-con-amortizacion-de-capital-constante.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5472166572526873954" /&gt;&lt;/a&gt;&lt;br /&gt;Para no ser excesivamente aburrido, aquí os dejo solo la parte del código que está directamente relacionada con los préstamos con amortización de capital constante, y más concretamente la parte correspondiente a las fórmulas de la tabla resultante:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="color:#009900;"&gt;'Seguimos poniendo el capital vivo&lt;br /&gt;    'antes del pago de la 1ª cuota&lt;/span&gt;&lt;br /&gt;    Range("E18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-3]&amp;lt;=R14C6+1,R7C6,IF(RC[-3]&lt;=R7C6,R[-1]C-R[-1]C[1],0))"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo el capital amortizado&lt;br /&gt;    'en la primera cuota&lt;/span&gt;&lt;br /&gt;    Range("F18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-4]&amp;lt;R14C6+1,0,IF(RC[-4]&lt;=(R9C6+R14C6),R7C6/R9C6,0))"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo los intereses pagados&lt;/span&gt;&lt;br /&gt;    Range("G18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-5]&lt;(R14C6+1),RC[-2]*R13C6/R10C6,IF(RC[-5]&lt;=(R9C6+R14C6)," &amp; _&lt;br /&gt;    "RC[-2]*R8C6/R10C6,0))"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo el capital amortizado acumulado&lt;/span&gt;&lt;br /&gt;    Range("H18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-2]&lt;&gt;0,RC[-2],0)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo los intereses acumulados&lt;/span&gt;&lt;br /&gt;    Range("I18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-2]&lt;&gt;0,RC[-2],0)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo la cuota total&lt;/span&gt;&lt;br /&gt;    Range("J18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-8]&lt;=R18C5,RC[-3]+RC[-4],0)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo el resto de datos, es decir&lt;br /&gt;    'el capital vivo antes del pago de cada cuota,&lt;br /&gt;    'el capital amortizado, los intereses, el capital&lt;br /&gt;    'amortizado acumulado, los intereses acumulados,&lt;br /&gt;    'y el importe de las cuotas&lt;/span&gt;&lt;br /&gt;    Range("E18").Select&lt;br /&gt;    For i = 1 To CuotasTotales - 1&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'el capital vivo&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 0).Formula = "=IF(RC[-3]&lt;=R14C6+1,R7C6,IF(RC[-3]&lt;=R7C6,R[-1]C-R[-1]C[1],0))"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'el capital amortizado&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 1).Formula = "=IF(RC[-4]&amp;lt;R14C6+1,0,IF(RC[-4]&lt;=(R9C6+R14C6),R7C6/R9C6,0))"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'los intereses pagados&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 2).Formula = "=IF(RC[-5]&lt;(R14C6+1),RC[-2]*R13C6/R10C6,IF(RC[-5]&lt;=(R9C6+R14C6)," &amp; _&lt;br /&gt;        "RC[-2]*R8C6/R10C6,0))"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'el capital amortizado acumulado&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 3).Formula = "=IF(RC[-2]&lt;&gt;0,RC[-2],0)"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'los intereses acumulados&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 4).Formula = "=IF(RC[-2]&lt;&gt;0,RC[-2],0)"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'la cuota total&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 5).Formula = "=IF(RC[-8]&lt;=R18C5,RC[-3]+RC[-4],0)"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'bajamos a la fila siguiente&lt;br /&gt;        'y seguimos con el bucle&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 0).Select&lt;br /&gt;    Next&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Lo que obtendremos será una tabla como la que podemos ver en este ejemplo (aquí solo sale una parte de la tabla). En ella podréis ver que en cada cuota, se amortiza siempre la misma cantidad de capital (del principal del préstamo):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/S_ELjeW5FAI/AAAAAAAADYg/GhM0PpT0g5c/s1600/calculo-de-prestamos-amortizacion-capital-constante.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 263px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/S_ELjeW5FAI/AAAAAAAADYg/GhM0PpT0g5c/s400/calculo-de-prestamos-amortizacion-capital-constante.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5472167726304269314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Llegados&lt;a name="descarga-prestamos-amortizacion-capital-constante"&gt;&lt;/a&gt; a este punto, solo me queda por comunicaros a todos los lectores del blog, que desde aquí podéis &lt;a href="http://www.mediafire.com/?777h1gifdqzh47m" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-1545327345266099778?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/1545327345266099778/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=1545327345266099778" title="25 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/1545327345266099778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/1545327345266099778?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/05/prestamos-con-amortizacion-de-capital.html" title="Préstamos con amortización de capital constante" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_EKImKCCi_hc/S_ENyQh20XI/AAAAAAAADYo/t3N_8W-qMm4/s72-c/formulario-de-informacion-del-prestamo-con-amortizacion-de-capital-constante.gif" height="72" width="72" /><thr:total>25</thr:total></entry><entry gd:etag="W/&quot;Ck8CQ38zeSp7ImA9WxFSGE0.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-2789560304385857269</id><published>2010-04-21T00:01:00.003+02:00</published><updated>2010-04-21T00:01:02.181+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-21T00:01:02.181+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Calcular el VAN, para periodos irregulares</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iphMJOkKJbePSUiYobXLMKupYCE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iphMJOkKJbePSUiYobXLMKupYCE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iphMJOkKJbePSUiYobXLMKupYCE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iphMJOkKJbePSUiYobXLMKupYCE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;En un artículo anterior, ya explicamos como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/02/calcular-la-tir-de-una-inversion-para.html" title="Calcular la TIR, para periodos de tiempo irregulares"&gt;calcular la TIR de una inversión, para periodos de tiempo irregulares&lt;/a&gt; o no constantes. Ahora le toca el turno a la VAN (Valor Actual Neto), en el caso de encontrarnos con periodos también irregulares.&lt;br /&gt;&lt;br /&gt;Lo más habitual es que nos encontremos con periodos de tiempo siempre constantes, como por ejemplo, cuando invertimos una cantidad X hoy, y cobramos otra cantidad Y cada final de año, durante una cantidad de años determinada. En ese caso, con utilizar la función &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/05/calcular-la-tir-y-el-van.html" title="Calcular la TIR"&gt;TIR&lt;/a&gt;, tenemos resuelto el tema cómo calcular la tasa interna de rendimiento. Lo mismo nos pasará con el VAN, si utilizamos la función &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/05/calcular-la-tir-y-el-van.html" title="Calcular el VAN"&gt;VNA&lt;/a&gt;, para calcular el valor actual neto, en el caso de que queramos saber que cantidad deberíamos invertir (supondremos en un principio, que la inversión inicial es cero, para que el valor actual neto sea precisamente el valor actual, es decir, la inversión que tenemos que hacer), cobrando esas cantidades Y cada año, a medida que vamos jugando y probando con diferentes tipos de interés.&lt;br /&gt;&lt;br /&gt;Ahora vamos a ver como calcular el valor actual de una inversión, para periodos que no siempre son constantes, sabiendo los cobros futuros, y el tipo de interés, pero sin determinar el valor inicial de la inversión (para obtener ese valor actual, utilizaremos la función VNA.NO.PER). Para ello, utilizaremos un ejemplo, que es la mejor forma de explicar el funcionamiento de una función en Excel. Vamos a determinar cual debería ser la cantidad a invertir hoy (suponemos que hoy es 21 de abril de 2010), en el caso de que recibamos los siguientes cobros, en las fechas en las que se indica en la siguiente tabla, y suponiendo que el tipo de interés efectivo de mercado, sea del 4,50%:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/S8wZUmRmc3I/AAAAAAAADSI/V9S6ZjREMJY/s1600/tabla-cobros-valor-actual-neto.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 140px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/S8wZUmRmc3I/AAAAAAAADSI/V9S6ZjREMJY/s400/tabla-cobros-valor-actual-neto.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5461768289756017522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si nos fijamos bien, lo que queremos determinar es el valor de la celda C4, que es la inversión inicial que tenemos que hacer, para cobrar todos esos importes en las fechas dadas, sabiendo que el tipo de interés es del 4,50%. Si observamos la tabla anterior con detenimiento, veremos que en la columna de la fecha, los periodos de tiempo no son constantes, por lo que para calcular el valor actual, lo apropiado es utilizar la función VNA.NO.PER de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=VNA.NO.PER(tipo de interés; flujos de caja; fechas)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Eso sí, antes de utilizar esta función aplicada a nuestro ejemplo, deberemos introducir en la celda C4, un cero, pues no debe quedar en blanco, ya que sino, la función siguiente nos daría error:&lt;br /&gt;&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=VNA.NO.PER(C12;C4:C9;B4:B9)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;De tal forma que obtendríamos algo como esto que nos aparece en la siguiente imagen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/S8wZqSt4J_I/AAAAAAAADSQ/J_SvkG8kz3o/s1600/tabla-van-valor-actual-neto.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 163px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/S8wZqSt4J_I/AAAAAAAADSQ/J_SvkG8kz3o/s400/tabla-van-valor-actual-neto.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5461768662463031282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si nos fijamos lo que acabamos de obtener es el valor actual, es decir, el importe que debemos invertir hoy 21 de abril de 2010, sabiendo que el tipo de interés efectivo es del 4,50%, y sabiendo también que cobraremos o recuperaremos las cantidades indicadas en la tabla y en las fechas indicadas.&lt;br /&gt;&lt;br /&gt;Si en lugar de utilizar la función como os ponía en el ejemplo, la cambiamos y ponemos esto (fijaos que cambiamos el rango, empezando desde la fila 5, en lugar de la fila 4), estaríamos haciendo las cosas mal:&lt;br /&gt;&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=VNA.NO.PER(C12;C5:C9;B5:B9)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Lo que obtendríamos sería el valor actual, peroooooooo a la fecha del 14 de Julio de 2010, y no al 21 de abril de 2010, que es lo que nos interesa evaluar. De ahí que debamos incluir la fecha en la que queremos obtener el valor actual, poniendo cero como fujo de caja (ni cobro, ni pago).&lt;br /&gt;&lt;br /&gt;Podemos hacer una comprobación de que necesitaremos invertir esos 35.043,98 euros (pesos, soles, dólares, o la moneda que queráis), al 4,50% de interés efectivo anual, sabiendo que cobraremos en las fechas indicadas, las cantidades que aparecen en las tablas anteriores. Para ello, utilizaremos la función &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/02/calcular-la-tir-de-una-inversion-para.html" title="TIR, para periodos de tiempo irregulares"&gt;TIR.NO.PER&lt;/a&gt; que vimos en otro artículo. Solo tendremos que construir la tabla de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/S8waMvLez6I/AAAAAAAADSY/-ukijvh3RJY/s1600/tabla-van-tir-valor-actual-neto.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 151px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/S8waMvLez6I/AAAAAAAADSY/-ukijvh3RJY/s400/tabla-van-tir-valor-actual-neto.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5461769254218944418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si os fijáis bien, como siempre a la hora de calcular la TIR, hemos incluido la inversión inicial en negativo, para diferenciarla de los cobros (es como si pagáramos la inversión inicial, para cobrarla posteriormente poco a poco, en los plazos indicados).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-2789560304385857269?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/2789560304385857269/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=2789560304385857269" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/2789560304385857269?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/2789560304385857269?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/04/calcular-el-van-para-periodos.html" title="Calcular el VAN, para periodos irregulares" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_EKImKCCi_hc/S8wZUmRmc3I/AAAAAAAADSI/V9S6ZjREMJY/s72-c/tabla-cobros-valor-actual-neto.gif" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkEHQnw9fip7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-8590782305850160500</id><published>2010-04-07T11:14:00.011+02:00</published><updated>2012-01-20T22:23:53.266+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:23:53.266+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Calculadora de tiempos</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EpdDkgZhX1oD3kdOsFz7ENoHb0o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EpdDkgZhX1oD3kdOsFz7ENoHb0o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EpdDkgZhX1oD3kdOsFz7ENoHb0o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EpdDkgZhX1oD3kdOsFz7ENoHb0o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Dado que son muchos los usuarios que llegan a este blog, buscando como operar con unidades de tiempo, y como complemento a los artículos donde explicaba como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/12/horas-de-100-minutos-y-conversin-de.html" title="Convertir horas de 100 minutos"&gt;convertir horas de 100 minutos&lt;/a&gt;, o como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/11/convertir-unidades-de-tiempo-formato.html" title="Convertir unidades de tiempo a formato hh:mm:ss"&gt;convertir unidades de tiempo a formato hh:mm:ss&lt;/a&gt;, o como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/08/convertir-unidades-de-tiempo-horas.html" title="Convertir unidades de tiempo: horas, minutos, y segundos"&gt;convertir unidades de tiempo: horas, minutos, y segundos&lt;/a&gt;, o incluso como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/10/control-horario-horas-normales-y-horas.html" title="Calcular horas normales y horas extras"&gt;calcular horas normales y horas extras&lt;/a&gt;, hoy os presento una pequeña utilidad para convertir horas, minutos y segundos, a unidades decimales, todo ello presentado a través de un formulario, pero que se puede adaptar para cualquier otro modo de presentación, como por ejemplo incluyendo los resultados en diferentes celdas, de nuestra hoja de cálculo Excel.&lt;br /&gt;&lt;br /&gt;Lo que tendremos que hacer es diseñar un UserForm (un formulario), con este aspecto:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S7xQ8o8cgjI/AAAAAAAADQ4/PFNKoSgr29w/s1600/formulario-calcularora-de-tiempos.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 310px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S7xQ8o8cgjI/AAAAAAAADQ4/PFNKoSgr29w/s400/formulario-calcularora-de-tiempos.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5457325851179516466" /&gt;&lt;/a&gt;&lt;br /&gt;No penséis que hay una etiqueta (label) supergrande. En realidad hay varias etiquetas, lo que pasa es que están ligeramente superpuestas, de ahí que parezca que solo hay una. &lt;br /&gt;&lt;br /&gt;Para lanzar el UserForm, simplemente tendremos que añadir estas líneas a un módulo:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub lanzar_userform()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'lanzamos el userform&lt;/span&gt;&lt;br /&gt;UserForm1.Show&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Y este sería el código para que cuando se cargue el formulario, nos llene los tres ComboBox, el de las horas, el de los minutos, y el de los segundos:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub UserForm_Initialize()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Al cargar el Userform, mostramos&lt;br /&gt;'el listado de horas, minutos y segundos,&lt;br /&gt;'para ello le pondremos un tope de 1000&lt;br /&gt;'horas en el combobox, aunque se puede cambiar&lt;/span&gt;&lt;br /&gt;For i = 0 To 1000&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Añadimos las horas&lt;/span&gt;&lt;br /&gt;    ComboBox1.AddItem i&lt;br /&gt;    If i &lt;= 59 Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'Añadimos los minutos&lt;/span&gt;&lt;br /&gt;        ComboBox2.AddItem i&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'Añadimos los segundos&lt;/span&gt;&lt;br /&gt;        ComboBox3.AddItem i&lt;br /&gt;    End If&lt;br /&gt;Next&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Este otro será el código que se ejecutará, al cliquear sobre el botón que hay en el formulario, y que tiene como etiqueta el nombre "Calcular":&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CommandButton1_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Hacemos los cálculos que mostraremos&lt;br /&gt;'en las diferentes etiquetas, para lo cual&lt;br /&gt;'pasamos el item seleccionado, a variables&lt;/span&gt;&lt;br /&gt;horas = ComboBox1.List(ComboBox1.ListIndex)&lt;br /&gt;minutos = ComboBox2.List(ComboBox2.ListIndex)&lt;br /&gt;segundos = ComboBox3.List(ComboBox3.ListIndex)&lt;br /&gt;If IsEmpty(horas) Then horas = 0&lt;br /&gt;If IsEmpty(minutos) Then minutos = 0&lt;br /&gt;If IsEmpty(segundos) Then segundos = 0&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos los años&lt;/span&gt;&lt;br /&gt;Label5 = Format((horas + (minutos / 60) + _&lt;br /&gt;(segundos / 60 / 60)) / 24 / 365, "#,##0.0000") &amp; " años"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos los meses&lt;/span&gt;&lt;br /&gt;Label6 = Format((horas + (minutos / 60) + _&lt;br /&gt;(segundos / 60 / 60)) / 24 / 30, "#,##0.0000") &amp; " meses"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos las semanas&lt;/span&gt;&lt;br /&gt;Label7 = Format((horas + (minutos / 60) + _&lt;br /&gt;(segundos / 60 / 60)) / 24 / 7, "#,##0.0000") &amp; " semanas"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos los días&lt;/span&gt;&lt;br /&gt;Label8 = Format((horas + (minutos / 60) + _&lt;br /&gt;(segundos / 60 / 60)) / 24, "#,##0.0000") &amp; " días"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos las horas&lt;/span&gt;&lt;br /&gt;Label9 = Format(horas + (minutos / 60) + _&lt;br /&gt;(segundos / 60 / 60), "#,##0.0000") &amp; " horas"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos los minutos&lt;/span&gt;&lt;br /&gt;Label10 = Format((horas * 60) + minutos + segundos / 60, _&lt;br /&gt;"#,##0.0000") &amp; " minutos"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos los segundos&lt;/span&gt;&lt;br /&gt;Label11 = Format((horas * 60 * 60) + (minutos * 60) + _&lt;br /&gt;segundos, "#,##0") &amp; " segundos"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos un mensaje al pie del formulario&lt;/span&gt;&lt;br /&gt;Label12 = "Los datos presentados, están en formato decimal."&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Como veis, no tiene ninguna complejidad montar un formulario de este tipo, pues solamente tenemos que tener claro las fórmulas para convertir las horas en minutos, en segundos, etc. Aquí os dejo varios pantallazos con el formulario al cargarse, y con un ejemplo, una vez seleccionadas las horas, minutos y segundos, y tras pulsar el botón "Calcular":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/S7xSXE1ZLQI/AAAAAAAADRA/fsUE7FKAjtQ/s1600/cargar-formulario-calcularora-de-tiempos.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 330px; height: 351px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/S7xSXE1ZLQI/AAAAAAAADRA/fsUE7FKAjtQ/s400/cargar-formulario-calcularora-de-tiempos.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5457327404854357250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S7xSn06byFI/AAAAAAAADRI/fGdiHK4lt6Y/s1600/calcularora-de-tiempos.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 330px; height: 351px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S7xSn06byFI/AAAAAAAADRI/fGdiHK4lt6Y/s400/calcularora-de-tiempos.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5457327692638308434" /&gt;&lt;/a&gt;&lt;br /&gt;Desde aquí &lt;a target="_blank" rel="nofollow" href="http://www.mediafire.com/?u5bhtyt6n2ljyib"&gt;descargar el fichero de excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-8590782305850160500?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/8590782305850160500/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=8590782305850160500" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/8590782305850160500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/8590782305850160500?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/04/calculadora-de-tiempos.html" title="Calculadora de tiempos" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_EKImKCCi_hc/S7xQ8o8cgjI/AAAAAAAADQ4/PFNKoSgr29w/s72-c/formulario-calcularora-de-tiempos.gif" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DkIGRHw9eCp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-9127822557235657175</id><published>2010-03-17T00:01:00.003+01:00</published><updated>2012-01-20T22:22:05.260+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:22:05.260+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Habilitar y deshabilitar controles de un formulario</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yw6QNJIGcJ7WGEotbkoVU5EOYXQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yw6QNJIGcJ7WGEotbkoVU5EOYXQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yw6QNJIGcJ7WGEotbkoVU5EOYXQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yw6QNJIGcJ7WGEotbkoVU5EOYXQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Quien haya tenido la santa paciencia de mirarse con detalle el artículo en el que explicaba como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/01/prestamos-y-calculo-de-hipotecas.html" title="calcular préstamos y cuotas de una hipoteca"&gt;calcular préstamos y cuotas de una hipoteca&lt;/a&gt;, se habrá dado cuenta que hay algunas cosillas que no he explicado, pero que a simple vista son fácilmente digeribles. Concretamente me estoy refiriendo al hecho de habilitar o deshabilitar controles (cuadros de texto especialmente), dependiendo como interactúa el usuario con el formulario.&lt;br /&gt;&lt;br /&gt;En ese artículo al que hacía referencia, podéis ver que hay un apartado para informar de si el préstamo tiene carencia o no. Si no tiene carencia, no tiene sentido completar la información relacionada con la misma, y que se solicita en dos TextBox, concretamente los que hay debajo del ComboBox donde se pregunta si el préstamo tiene carencia, y que corresponden al tipo de interés durante el periodo de carencia, y al número de cuotas de carencia. Parece evidente que no tiene sentido permitir que el usuario introduzca un tipo de interés para la carencia, y un número de cuotas de carencia, si el préstamo carece de esta última, ¿verdad?.&lt;br /&gt;&lt;br /&gt;Pues eso es lo que vamos a explicar de una forma muy sencilla, para que no tengáis que investigar a ciegas a través del código de ese artículo sobre préstamos.&lt;br /&gt;&lt;br /&gt;Para explicar como funciona esto, lo haremos con un ejemplo sencillo. Lo primero que haremos será crear un UserForm como el que vemos en la siguiente imagen, y que consta de tres Label, un ComboBox, un TextBox, y un CommandButton).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/S5-hahPc0eI/AAAAAAAADNA/4SO7p9hvU1A/s1600-h/formulario-habilitar-deshabilitar-controles.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 228px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/S5-hahPc0eI/AAAAAAAADNA/4SO7p9hvU1A/s400/formulario-habilitar-deshabilitar-controles.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5449251551113433570" /&gt;&lt;/a&gt;&lt;br /&gt;Como curiosidad, y antes de seguir con el tema, para poder escribir varias líneas en el TextBox, debemos cambiar la propiedad MultiLine a true, tal y como se muestra en la siguiente imagen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S5-hnEwL87I/AAAAAAAADNI/SSYbUNkCE3Y/s1600-h/textbox-con-multilineas.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 235px; height: 400px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S5-hnEwL87I/AAAAAAAADNI/SSYbUNkCE3Y/s400/textbox-con-multilineas.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5449251766804411314" /&gt;&lt;/a&gt;&lt;br /&gt;Una vez tengamos diseñado el formulario, solo nos quedará incluir el código asociado a los controles. En nuestro caso necesitaremos los tres códigos siguientes. El primero de ellos, corresponde a lo que tiene que suceder al activarse el formulario:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub UserForm_Activate()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'al activarse sl formulario, añadimos&lt;br /&gt;'las opciones del desplegable&lt;/span&gt;&lt;br /&gt;ComboBox1.AddItem "SI"&lt;br /&gt;ComboBox1.AddItem "NO"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'bloqueamos por defecto el TextBox2,&lt;br /&gt;'si no se ha seleccionado en el desplegable&lt;/span&gt;&lt;br /&gt;TextBox1.Enabled = False&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Como veis, en el código anterior, estamos añadiendo dos elementos (ítems) al ComboBox, y que son las respuestas que el usuario puede seleccionar en el Combo, un SI y un NO. Además, al activarse el formulario, también se deshabilita el TextBox1.&lt;br /&gt;&lt;br /&gt;El siguiente código que necesitaremos será el que corresponde al ComboBox, y que se ejecutará al seleccionar alguno de los ítems del desplegable:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub ComboBox1_Change()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'activamos o desactivamos el TextBox1&lt;br /&gt;'dependiendo de la respuesta del desplegable&lt;/span&gt;&lt;br /&gt;If ComboBox1.ListIndex = 0 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si se elige SI habilitamos el TextBox1&lt;br /&gt;    '(el primer valor es cero), lo activamos&lt;/span&gt;&lt;br /&gt;    TextBox1.Enabled = True&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'en caso contrario, si se elige NO habilitar&lt;br /&gt;    'el TexBox1, entonces lo desactivamos&lt;/span&gt;&lt;br /&gt;    TextBox1 = ""&lt;br /&gt;    TextBox1.Enabled = False&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Como veis, se trata del código asociado al ComboBox, de tal manera que si el usuario elige el primer elemento del ComboBox (el ListIndex = 0, porque comienza a numerarse por 0), entonces se habilita el TextBox1 con esa línea donde pone &lt;strong&gt;TextBox1.Enabled = True&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;En caso contrario, si se selecciona el segundo elemento del desplegable (o el 3º, o el 4, o el n, si lo hubiera), eliminaremos el contenido del TextBox1, y además lo deshabilitaremos.&lt;br /&gt;&lt;br /&gt;Por último, el tercer código es simplemente para descargar de memoria el formulario, al pulsar sobre el CommandButton:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CommandButton1_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Descargamos el formulario de memoria&lt;/span&gt;&lt;br /&gt;Unload Me&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Esos tres códigos, como ya sabéis, deben ir incluidos dentro del UserForm. El código que a continuación os muestro es el que lanza el formulario, y que podemos asociar a un botón. Este código debe ir en un módulo:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub lanzar_userform()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Lanzamos el UserForm1&lt;/span&gt;&lt;br /&gt;UserForm1.Show&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Como veis es una muy técnica sencilla, y muy útil, que le dará un aspecto más profesional a nuestros formularios:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/S5-kEeqlTPI/AAAAAAAADNQ/xk1NUij3ku8/s1600-h/habilitar-deshabilitar-controles.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 306px; height: 270px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/S5-kEeqlTPI/AAAAAAAADNQ/xk1NUij3ku8/s400/habilitar-deshabilitar-controles.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5449254470999690482" /&gt;&lt;/a&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?mj6jyspyurxyrwr" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-9127822557235657175?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/9127822557235657175/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=9127822557235657175" title="7 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/9127822557235657175?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/9127822557235657175?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/03/habilitar-y-deshabilitar-controles-de.html" title="Habilitar y deshabilitar controles de un formulario" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_EKImKCCi_hc/S5-hahPc0eI/AAAAAAAADNA/4SO7p9hvU1A/s72-c/formulario-habilitar-deshabilitar-controles.gif" height="72" width="72" /><thr:total>7</thr:total></entry><entry gd:etag="W/&quot;DkMFSHw4eSp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-2233596792241425725</id><published>2010-03-01T11:25:00.006+01:00</published><updated>2012-01-20T22:20:19.231+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:20:19.231+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>La hoja de cálculo</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sNvB0lk2H8m5busJzH37I76gJmg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sNvB0lk2H8m5busJzH37I76gJmg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sNvB0lk2H8m5busJzH37I76gJmg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sNvB0lk2H8m5busJzH37I76gJmg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Quizás a estas alturas, y después de haber cumplido dos años publicando en el  blog sobre las virtudes la hoja de cálculo Excel, plantearse una pregunta del tipo "&lt;strong&gt;¿Qué es una hoja de cálculo?&lt;/strong&gt;", puede parecer fuera de lugar. Pero no, no creo que lo esté, precisamente porque pocas veces se ha intentado dar respuesta a preguntas tan básicas como esta.&lt;br /&gt;&lt;br /&gt;Como son muchos los usuarios que llegan a este blog de Excel, buscando información sobre la &lt;i&gt;hoja de cálculo&lt;/i&gt;, vamos a dar unas pinceladas sin entrar en excesivos tecnicismos, intentando explicar &lt;strong&gt;para qué sirve una hoja de cálculo&lt;/strong&gt;, o incluso &lt;strong&gt;qué es una hoja de cálculo&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Lo primero que tenemos que decir, es que si utilizas un ordenador hoy en día, ya sea para tu trabajo o incluso para tu ocio, se hace imprescindible el uso de determinados programas, y sin los cuales es muy difícil poder decir que somos usuarios de las herramientas informáticas.&lt;br /&gt;&lt;br /&gt;No es difícil encontrarse hoy en día, gente que domina el uso de las redes sociales, los gadgets electrónicos del tipo de los iphones, los smatphones, las pdas, etc., los programas de retoque fotográfico como Photoshop o Paint Shop Pro, la edición de video digital, los juegos online multijugador, y mil cosas más, pero en cambio, no saben hacer un sencillo presupuesto de ingresos y gastos del mes, con el programa más adecuado para ello.&lt;br /&gt;&lt;br /&gt;La &lt;strong&gt;hoja de cálculo&lt;/strong&gt; forma parte de ese grupo de programas que no debería faltar nunca en cualquier ordenador, ya sea del ordenador de nuestro trabajo, o del ordenador de nuestra casa. La hoja de cálculo, junto con el &lt;strong&gt;procesador de textos&lt;/strong&gt;, son -o deberían ser- básicos para cualquier usuario de la informática. Si sabes encender un ordenador, pulsando el botón on/off, deberías tener las nociones mínimas para poder escribir una carta con un procesador de textos, o para hacer unas sumas y unas restas, con una hoja de cálculo. Estos dos tipos de herramientas (la hoja de cálculo y el procesador de textos), son básicos en cualquier paquete ofimático (un paquete de programas, o una suite de programas, básico para su uso en oficinas y despachos).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;¿Qué es una hoja de cálculo?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Una hoja de cálculo, es un documento informático formado por filas (horizontales) y columnas (verticales), donde cada intersección entre ambas (entre una fila y una columna), recibe el nombre de &lt;strong&gt;celda&lt;/strong&gt; (un grupo de celdas, recibe el nombre de &lt;strong&gt;rango&lt;/strong&gt;). Hacer referencia a cada celda, es tan fácil como jugar al juego de la "guerra de barcos", pues cada celda tiene unas coordenadas. De la misma forma a como jugamos a la guerra de barcos, cuando damos unas coordenadas del tipo A4, o B6, y decimos que estamos tocados, o hundidos, lo mismo podemos hacer, para referirnos a una celda, pues además esta intersección entre columna y fila, nos aparece resaltada. Podemos averiguarlo, haciendo referencia a la columna, que está formada por letras, y a la fila, que está formada por números. De tal forma, por ejemplo, podemos saber que la celda B6 nos está haciendo referencia a la segunda columna (la columna B, pues están por orden alfabético: A, B, C, D, etc...) y a la sexta fila.&lt;br /&gt;&lt;br /&gt;Este es el aspecto general de una hoja de cálculo (concretamente una hoja de cálculo de Excel), donde no tenemos ningún dato escrito:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uPoSV7PxI/AAAAAAAADBg/2e5F4odvz3c/s1600-h/hoja-de-calculo.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uPoSV7PxI/AAAAAAAADBg/2e5F4odvz3c/s400/hoja-de-calculo.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443602496888717074" /&gt;&lt;/a&gt;&lt;br /&gt;En esta otra pantalla, podemos ver que estamos situados en la celda B6, pues se muestra resaltada tanto la celda, como la referencia a la columna y a la fila que forman esa intersección:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uPoiGCP-I/AAAAAAAADBo/ZwYWipH438w/s1600-h/hoja-de-calculo-y-celda.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uPoiGCP-I/AAAAAAAADBo/ZwYWipH438w/s400/hoja-de-calculo-y-celda.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443602501117034466" /&gt;&lt;/a&gt;&lt;br /&gt;Desplazarnos de una celda a otra, es tan sencillo como colocar el cursor en la celda deseada. Nos situamos con el puntero del ratón en la intersección de la columna y la celda donde queramos situarnos, y pulsamos el botón izquierdo del ratón. Tan sencillo como eso, para situarnos en esa nueva celda o esa nueva ubicación, dentro de la hoja de cálculo.&lt;br /&gt;&lt;br /&gt;Las hojas de cálculo están integradas en lo que se denominan libros (libros de cálculo), de tal forma que en cada libro podemos tener desde una hoja de cálculo, hasta tantas como nos admita la aplicación que estamos utilizando. Por ejemplo, si ampliamos la imagen anterior, veremos que en la parte inferior de la misma, aparecen 3 pestañas, y que son cada una de las hojas que conforman el libro. Como mínimo, un libro debe contener una hoja, es decir, una pestaña, y se les puede cambiar el nombre que tienen por defecto (Hoja1, Hoja2, Hoja3, etc.).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;¿Para qué sirve una hoja de cálculo?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;La hoja de cálculo es una herramienta informática, que nos ahorra muchísimo trabajo diario a todos aquellos que trabajamos habitualmente con números, cifras, y datos. Una hoja de cálculo nos puede servir para elaborar un presupuesto, para hacer facturas, para calcular las cuotas de un préstamo, para hacer un balance y una cuenta de resultados, o para llevar el control de notas de unos alumnos, por poner unos cuantos ejemplos. Todo aquello que sea cuantificable, y valorable económicamente, puede ser tratado, medido, ordenado y controlado, mediante una hoja de cálculo.&lt;br /&gt;&lt;br /&gt;Un ejemplo sencillo de la utilidad de la hoja de cálculo, podría ser la elaboración de un presupuesto mensual, como el que podemos ver en la siguiente imagen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S4uQ7W-astI/AAAAAAAADBw/Ew8wj0rovWM/s1600-h/hoja-de-calculo-fragmento.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S4uQ7W-astI/AAAAAAAADBw/Ew8wj0rovWM/s400/hoja-de-calculo-fragmento.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443603924061434578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Como podéis ver, se trata de un fragmento de una hoja de cálculo, donde solo he incluido unas pocas columnas y filas, para que lo veáis mejor. Si os fijáis, también podemos ver en esa imagen, que se pueden ampliar las columnas, para hacerlas más anchas, y ajustarlas al contenido que tengamos. También os podéis fijar que le podemos dar color a las celdas, pero lo más importante, y la verdadera utilidad de la hoja de cálculo, viene ahora...¿Qué pasaría si nos subiese la hipoteca o el alquiler de 820 euros mensuales, a 880 euros?. Si esta operación la hiciésemos sobre un papel, si ayuda de un ordenador, deberíamos hacer un par de operaciones. La primera de ellas, sería saber cuánto nos ha subido la hipoteca o el alquiler (60 euros = 880 euros – 820 euros), y segundo, sería restar al saldo neto del mes (el ahorro), esos 60 euros extras de aumento de la hipoteca o alquiler, con lo que nos quedaría un ahorro mensual, de 20 euros en lugar de 80 (20 euros = 80 euros – 60 euros).&lt;br /&gt;&lt;br /&gt;Si os fijáis bien, veréis que la columna C está resaltada, y la fila 14 también, con lo que la intersección entre ambas, es decir, la celda C14, está remarcada, para indicarnos que estamos situados sobre ella. Si os fijáis, precisamente arriba a la izquierda de esa imagen anterior, se ve precisamente la celda donde estamos (C14), y a la derecha, se nos muestra el contenido de esa celda. En nuestro caso pone =C5-C6. Sin saber demasiado de fórmulas, ya nos estamos haciendo una idea de lo que hay en C14, y no es otra cosa que una resta entre lo que hay en C5 y lo que hay en C6, que son los ingresos y los gastos mensuales.&lt;br /&gt;&lt;br /&gt;Una hoja de cálculo nos va a servir para cambiar el dato de una celda cualquiera, y que se nos recalcule todo de forma automática, sin hacer absolutamente nada. Lo primero que tenemos que saber, y siguiendo con el ejemplo anterior, es que en la celda C6 tenemos una suma de todos los gastos que hay justo debajo. Si cambiamos una de esas cifras (por ejemplo el de la hipoteca o alquiler, que aparece en la celda C7), y en lugar de tener un gasto de 820 euros, tenemos un gasto mensual de 880 euros, ocurrirán dos cosas, la primera de ellas es que se recalculará la suma de gastos, y ahora tendremos 60 euros más (1.480 euros de gasto total), y segundo, que el ahorro se reducirá en esos 60 euros de aumento de hipoteca o alquiler, pasando de 80 euros de saldo neto, a solo 20 euros. Miradlo en esa imagen que os adjunto:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uQ7mamE5I/AAAAAAAADB4/xJB9rQt2kCg/s1600-h/hoja-de-calculo-presupuesto.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uQ7mamE5I/AAAAAAAADB4/xJB9rQt2kCg/s400/hoja-de-calculo-presupuesto.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443603928206152594" /&gt;&lt;/a&gt;&lt;br /&gt;Como podéis ver, el ahorro de tiempo es considerable, ya que con tan solo cambiar un dato, la suma de gastos y el saldo neto se recalculan automáticamente, pues tiene fórmulas (sumas y restas) que evalúan esos nuevos datos que hemos cambiado, para mostrar el nuevo resultado. Por tanto, la utilidad de la hoja de cálculo es más que evidente, tanto más, cuanto más complejos sean los cálculos y las operaciones, con el consiguiente ahorro de tiempo que ello comporta.&lt;br /&gt;&lt;br /&gt;Este es un sencillo ejemplo de la utilidad de las &lt;strong&gt;hojas de cálculo&lt;/strong&gt;, pero podemos hacer de todo lo que se nos ocurra, y que conlleve el tratamiento de datos numéricos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;¿Qué es Excel?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Pues Excel es un programa con el que podemos hacer hojas de cálculo. Igual que con Photoshop podemos retocar imágenes, y con Internet Explorer podemos navegar por Internet, con Excel podemos hacer hojas de cálculo. De la misma forma que Photohop no es el único programa para retoque de fotos o imágenes, ni Internet Explorer es el único navegador para acceder a Internet, Excel tampoco es el único programa para hacer hojas de cálculo.&lt;br /&gt;&lt;br /&gt;Excel es un producto del fabricante Microsoft (el mismo que hace Windows XP, Windows Vista, o Windows 7, por ejemplo), y se suministra dentro del paquete Microsoft Office, en el que incluye también, entre otras aplicaciones Microsoft Word, que es un programa para tratamiento de textos (un programa para hacer escritos, cartas, informes, etc.).&lt;br /&gt;&lt;br /&gt;Microsoft Office, y por tanto el programa Excel que incluye, es un programa de pago, pero aún así, se trata del software para elaborar hojas de cálculo más extendido del mercado, y toda una referencia para su competencia, pues en mi opinión, es la mejor herramienta de este tipo que podemos encontrar en el mercado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;¿Qué otros programas hay para hacer hojas de cálculo, aparte de Excel?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Pues aparte de Excel, podemos recurrir a otros interesantes programas para el tratamiento de hojas de cálculo. Los más extendidos, aparte de Excel, son los siguientes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Lotus 123&lt;/strong&gt;, propiedad de Lotus Development Corporation, adquirida por IBM. Fue una de las aplicaciones para hoja de cálculo, más famosas y extendidas en la década de los años 80, pero Excel acabaría con su hegemonía en la década siguiente:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S4uRb1Rgp4I/AAAAAAAADCA/65_z9fKcK2U/s1600-h/hoja-de-calculo-Lotus-123.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S4uRb1Rgp4I/AAAAAAAADCA/65_z9fKcK2U/s400/hoja-de-calculo-Lotus-123.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443604481950394242" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Gnumeric&lt;/strong&gt;, desarrollado para Gnome, dentro de lo que se denomina software libre, aunque también existe una versión para Windows:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S4uRcyfAQMI/AAAAAAAADCY/6HwsNGA1t-k/s1600-h/hoja-de-calculo-Gnumeric.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 297px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S4uRcyfAQMI/AAAAAAAADCY/6HwsNGA1t-k/s400/hoja-de-calculo-Gnumeric.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443604498381553858" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Kspread&lt;/strong&gt;, desarrollado también como software libre, para el proyecto KDE, e incorporado dentro de la suite ofimática KOffice:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/S4uRdPaduNI/AAAAAAAADCg/HM7QgXnWnyg/s1600-h/hoja-de-calculo-Kspread.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/S4uRdPaduNI/AAAAAAAADCg/HM7QgXnWnyg/s400/hoja-de-calculo-Kspread.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443604506147141842" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Quatro Pro&lt;/strong&gt;, desarrollado originalmente por Borland, ahora propiedad de Corel Corporation. Esta aplicación se suministra dentro del paquete Corel WordPerfect Office. La principal funcionalidad de esta aplicación es que ya desde su versión 9 (allá por 1999), permitía trabajar con hojas de cálculo de hasta 1.000.000 de filas, mientras que Excel tenía limitado el número de filas en 65.536 filas, hasta su versión Excel 2007:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/S4uSFCjNZYI/AAAAAAAADCo/b_9OEIYa9pA/s1600-h/hoja-de-calculo-Quattro-Pro.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 290px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/S4uSFCjNZYI/AAAAAAAADCo/b_9OEIYa9pA/s400/hoja-de-calculo-Quattro-Pro.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443605189888927106" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Calc&lt;/strong&gt;, del paquete StarOffice, de Sun Microsystems, y base de la suite ofimática de código libre OpenOffice:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uRcmUqHkI/AAAAAAAADCQ/WoyMVu1m69E/s1600-h/hoja-de-calculo-Calc-StarOffice.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 306px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uRcmUqHkI/AAAAAAAADCQ/WoyMVu1m69E/s400/hoja-de-calculo-Calc-StarOffice.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443604495116934722" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Calc&lt;/strong&gt;, que forma parte del paquete OpenOffice, software de código libre. Se trata del único software para hojas de cálculo que actualmente puede plantarle algo de cara a Excel (más que por la potencia del mismo, por lo extendido que está entre los usuarios), aunque en lo personal, creo que todavía le queda mucho para poder hacerle sombra a la todopoderosa hoja de cálculo de Microsoft:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S4uRcAwLuzI/AAAAAAAADCI/-qz1i3uM274/s1600-h/hoja-de-calculo-Calc-OpenOffice.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 348px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S4uRcAwLuzI/AAAAAAAADCI/-qz1i3uM274/s400/hoja-de-calculo-Calc-OpenOffice.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5443604485031836466" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Aparte de esas aplicaciones para hoja de cálculo que hemos mencionado, y que son las más destacables, en el mercado podemos encontrar infinidad de programas, que nos van a ser igualmente útiles, incluyendo el software para hojas de cálculo online como el que integra &lt;a href="http://www.docs.google.com" title="Google Docs" target="_blank"&gt;Google Docs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Macros&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Cuando en el uso avanzado de hojas de cálculo, nos vemos ante una tarea repetitiva o compleja, donde las funciones propias que incorpora el programa en sí, no son suficientes para resolver el problema o la tarea, es cuando entra en escena la programación mediante &lt;strong&gt;macros&lt;/strong&gt;. A través de los macros, podemos realizar tareas repetitivas o ciertamente complejas, añadiendo líneas de programación. No todas las aplicaciones para hojas de cálculo admiten esta programación mediante macros, pero Excel concretamente sí, y de una forma ciertamente potente.&lt;br /&gt;&lt;br /&gt;Algunos ejemplos del uso de macros en Excel, los tenéis en este mismo blog de Excel, por ejemplo con esta aplicación para &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/01/prestamos-y-calculo-de-hipotecas.html" title="Calcular las cuotas de una hipoteca"&gt;calcular las cuotas de una hipoteca&lt;/a&gt;, o esta otra para &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/11/introducir-datos-utilizando-un.html" title="Introducir datos en una hoja de cálculo, utilizando formularios"&gt;introducir datos en una hoja de cálculo, utilizando formularios&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Las macros pueden ser muy sencillas o extremadamente complejas, dependiendo de nuestras necesidades, y del problema que pretendamos resolver. Si el primero de los macros de ejemplo del párrafo anterior tiene cierta complejidad, este otro en el que podemos &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/02/contar-las-hojas-de-un-libro.html" title="Contar las hojas de un libro"&gt;contar las hojas de un libro&lt;/a&gt;, sería sumamente sencillo.&lt;br /&gt;&lt;br /&gt;Como veis, la hoja de cálculo es una herramienta imprescindible en cualquier ordenador de hoy en día, se llame Excel, Calc, Quattro Pro, o incluso la hoja de cálculo que Google a través de Google Docs, pone a disposición de todos los usuarios, de forma gratuita.&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-2233596792241425725?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/2233596792241425725/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=2233596792241425725" title="22 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/2233596792241425725?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/2233596792241425725?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/03/hoja-de-calculo.html" title="La hoja de cálculo" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_EKImKCCi_hc/S4uPoSV7PxI/AAAAAAAADBg/2e5F4odvz3c/s72-c/hoja-de-calculo.gif" height="72" width="72" /><thr:total>22</thr:total></entry><entry gd:etag="W/&quot;DkQAQng4fyp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-4360622848159877431</id><published>2010-02-23T01:00:00.009+01:00</published><updated>2012-01-20T22:19:03.637+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:19:03.637+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fórmulas" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Calcular la TAE</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mXXUBWvyzn2j0dPb5b1P-K6bWpY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mXXUBWvyzn2j0dPb5b1P-K6bWpY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mXXUBWvyzn2j0dPb5b1P-K6bWpY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mXXUBWvyzn2j0dPb5b1P-K6bWpY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;La TAE es la tasa anual equivalente, o también llamada, tasa anual efectiva. Lo que realmente nos interesa, es saber que significa eso, y como se calcula.&lt;br /&gt;&lt;br /&gt;Antes de entrar en materia, comentaros que os dejo una mini aplicación que os permitirá calcular la TAE de una operación financiera, con intereses pagaderos al vencimiento. Tan solo tendréis que informar el tipo de interés nominal, y el plazo de pago de los intereses:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S4JmgkkOKwI/AAAAAAAAC6g/AYZBsDGHols/s1600-h/tae-tasa-anual-efectiva-desplegable.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 247px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S4JmgkkOKwI/AAAAAAAAC6g/AYZBsDGHols/s400/tae-tasa-anual-efectiva-desplegable.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5441024009574427394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S4JmgxXFABI/AAAAAAAAC6o/CKS3ydFRa4M/s1600-h/tae-tasa-anual-equivalente.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 177px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S4JmgxXFABI/AAAAAAAAC6o/CKS3ydFRa4M/s400/tae-tasa-anual-equivalente.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5441024013008961554" /&gt;&lt;/a&gt;&lt;br /&gt;En un artículo anterior ya hablamos sobre el &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/01/solver-clculo-de-la-tir.html" title="Cálculo de la TIR"&gt;cálculo de la TIR&lt;/a&gt; con Solver, así que gran parte de lo que aquí explicaremos, lo podéis ampliar con la información contenida allí, aunque en principio no será necesario. También podéis ver el uso de la TAE en una operación financiera como es el caso de un contrato de préstamo, pues en el artículo donde colgué la plantilla para el &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/01/prestamos-y-calculo-de-hipotecas.html" title="Cálculo de préstamos"&gt;cálculo de préstamos&lt;/a&gt;, está incorporada esta función.&lt;br /&gt;&lt;br /&gt;Vamos a explicar qué es la TAE con un sencillo ejemplo. Imaginemos que disponemos de 5.000 euros, y queremos invertirlos en un depósito a plazo fijo a un año, pero tenemos dos opciones:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;El Banco A nos ofrece un tipo de interés nominal del 7% anual, pagadero al vencimiento.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;El Banco B nos ofrece un tipo de interés nominal del 6,95% anual, pagadero mensualmente.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Así a bote pronto, podemos pensar que la opción que nos plantea el Banco A, es más interesante, porque nos da 350 euros al cabo de ese año (5.000 x 0,07), mientras que el Banco B nos da solamente 347,50 euros (5.000 x 0,0695). Es decir, el Banco A nos da 2,50 euros más de intereses al año (350 – 347,50).&lt;br /&gt;&lt;br /&gt;Desde un punto de vista financiero, nuestro objetivo es siempre maximizar el beneficio procedente de una inversión, por lo que hay que analizar la rentabilidad efectiva de ambas operaciones que nos plantean los bancos, antes de decidirnos. Vamos a ver como analizar la rentabilidad efectiva, es decir, obtener la TAE de ambas operaciones.&lt;br /&gt;&lt;br /&gt;Si el Banco A nos paga los intereses al vencimiento, lo que está claro, es que solo podremos disponer de ellos a la finalización del contrato que hemos firmado con el banco, es decir, al vencimiento del depósito (al cabo de ese año). El Banco B en cambio, nos paga cada mes los intereses, por lo que podemos disponer de ellos mensualmente. Esto implica que podemos retirar esas cantidades (los intereses mensuales) para gastarlos en lo que queramos, o mejor aún, para invertirlos nuevamente. Es aquí donde entra en juego el concepto de la TAE, pues el propio concepto de la TAE para lleva implícito que vamos a reinvertir esos intereses.&lt;br /&gt;&lt;br /&gt;La opción del Banco A es muy clara, pues al cabo de un año, podremos retirar el capital inicialmente invertido (5.000 euros), más los intereses (350 euros). Es decir, al cabo de 1 año, dispondremos de 5.350 euros.&lt;br /&gt;&lt;br /&gt;En cambio la opción del Banco B tenemos que analizarla con más detenimiento, pues nos pagan intereses cada mes. Para saber que intereses mensuales obtendremos, tenemos dos opciones:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Podemos coger el tipo de interés nominal anual, dividirlo entre los 12 meses, y aplicar ese tipo de interés a los 5.000 euros: 0,0695 / 12 x 5.000 = 28,9583 euros de intereses mensuales.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;O también podemos calcularlo, aplicando a los 5.000 euros, el tipo de interés que nos da el Banco B, y dividiendo esos intereses totales, por 12, porque los cobraremos mensualmente: 5.000 x 0,0695 / 12 = 28,9583 euros mensuales.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Como habéis visto, ambas opciones para calcular los intereses mensuales son idénticas, porque matemáticamente son lo mismo.&lt;br /&gt;&lt;br /&gt;Pero... ¿qué pasaría si esos intereses de 28,9583 que cobraríamos también al cabo de un mes, y los invirtiéramos al mismo tipo de interés del 6,95%, durante los 11 meses que nos quedan hasta finalizar el contrato del depósito a plazo fijo?. Esta pregunta es básica, y es la que tendríamos que hacernos siempre, para comprender el auténtico significado de la TAE.&lt;br /&gt;&lt;br /&gt;Vamos a ver en una tabla de Excel, que pasaría, si los intereses que cobramos mensualmente con la opción del Banco B, los invertimos por el tiempo que reste hasta finalizar ese año, en el que recuperaríamos la inversión inicial de los 5.000 euros.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/S5FVRjFBbGI/AAAAAAAADH4/SbiafBPVuHU/s1600-h/tabla-tae.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 334px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/S5FVRjFBbGI/AAAAAAAADH4/SbiafBPVuHU/s400/tabla-tae.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5445227184430083170" /&gt;&lt;/a&gt;&lt;br /&gt;La columna bajo el título de "Capital invertido" incluye los 5.000 euros invertidos inicialmente, más los intereses que nos van pagando cada mes, y que también se reinvierten por el periodo que resta hasta finalizar la imposición. Por ejemplo, la recuperación del capital, más los intereses que nos pagan el primer mes, los podemos reinvertir durante 11 meses. La recuperación del capital, más los intereses que nos pagan al cabo del segundo mes, los podemos reinvertir durante 10 meses, y así sucesivamente, hasta que al final, cuando cobramos los intereses del mes nº 12, ya no podemos reinvertir nada nuevamente, porque ha finalizado el plazo de tiempo por el que abrimos el depósito a plazo fijo.&lt;br /&gt;&lt;br /&gt;También podemos ilustrarlo con este otro ejemplo, donde más claramente se puede observar como reinvertimos los intereses:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/TLasV3eTspI/AAAAAAAAEKY/XmYDdsd3BP4/s1600/TAE-reinversion-de-intereses.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/TLasV3eTspI/AAAAAAAAEKY/XmYDdsd3BP4/s400/TAE-reinversion-de-intereses.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5527795084312162962" /&gt;&lt;/a&gt;&lt;br /&gt;Como veis, hemos conseguido 347,50 euros de intereses con la opción del Banco B, y reinvirtiéndolos, nos darían 11,29 euros adicionales, es decir, obtendríamos un total de 358,79 euros, si optimizásemos la inversión (reinvirtiendo los intereses). También hemos calculado la TAE de la operación, que no es más que dividir los intereses totales que obtendríamos (358,79 euros), entre el capital invertido (5.000 euros), porque es a un año, lo que nos da una TAE del 7,1757%.&lt;br /&gt;&lt;br /&gt;Llegados a este punto, ya estamos en condiciones de saber que inversión es más rentable desde un punto de vista financiero (optimizando la inversión). El Banco A nos da unos intereses de 350 euros al año, mientras que con la opción del Banco B podemos obtener 358,79 euros.&lt;br /&gt;&lt;br /&gt;En el caso del Banco A, el tipo de interés nominal del 7%, es también la TAE, porque no podemos reinvertir los intereses, ya que los obtenemos al final, cuando finaliza el depósito a plazo fijo. En el caso del Banco B, el tipo de interés nominal es del 6,95%, pero la TAE es del 7,1757%, lo cual desde un punto de vista financiero, nos deja las cosas muy claras: el Banco B es la mejor opción.&lt;br /&gt;&lt;br /&gt;Como habéis visto, aunque aparentemente el Banco A inicialmente era la mejor opción, hemos demostrado que no es así, y que el Banco B nos ofrecía desde un punto de vista financiero, la mejor opción para maximizar nuestros beneficios (nuestros intereses).&lt;br /&gt;&lt;br /&gt;Para calcular la TAE de una operación financiera, os dejo una hoja de cálculo para descargar, que os simplificará mucho la tarea, pues tan solo tenéis que introducir el tipo de interés nominal anual, y los periodos de pago al año (pagos semestrales, pagos trimestrales, pagos mensuales, etc.). Es la plantilla de Excel cuyas imágenes podéis ver al principio de este artículo.&lt;br /&gt; &lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?7sbkb8s480gc9n5" rel="nofollow" target="_blank"&gt;descargar los dos ficheros de Excel&lt;/a&gt;, comprimidos en formato zip, con los ejemplos que hemos visto en este artículo. En uno de ellos tenéis la tabla con el estudio de rentabilidad de la opción ofrecida por el Banco B (la tabla de la última imagen de este artículo), y en el otro fichero Excel tenéis la calculadora de la TAE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-4360622848159877431?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/4360622848159877431/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=4360622848159877431" title="8 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/4360622848159877431?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/4360622848159877431?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/02/calcular-la-tae.html" title="Calcular la TAE" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_EKImKCCi_hc/S4JmgkkOKwI/AAAAAAAAC6g/AYZBsDGHols/s72-c/tae-tasa-anual-efectiva-desplegable.gif" height="72" width="72" /><thr:total>8</thr:total></entry><entry gd:etag="W/&quot;A0YMQH8zfip7ImA9WxBWF0U.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-1969127649990733782</id><published>2010-02-08T11:09:00.006+01:00</published><updated>2010-02-10T09:06:21.186+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-10T09:06:21.186+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fórmulas" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Calcular la TIR de una inversión, para periodos irregulares</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7_atR5ZvgYxIoZYHTRWVcivoN_k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7_atR5ZvgYxIoZYHTRWVcivoN_k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7_atR5ZvgYxIoZYHTRWVcivoN_k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7_atR5ZvgYxIoZYHTRWVcivoN_k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Cuando calculamos la TIR de una inversión, lo normal es que los flujos de caja estén todos referidos a unos mismos periodos de tiempo, es decir, que todos los momentos donde se producen los flujos guardan siempre la misma periodicidad. Por ejemplo, cuando calculamos la TIR de una inversión, lo normal es que los flujos sean siempre iguales, y si se trata de años, los flujos serán anuales, si se trata de meses, los flujos serán, y así sucesivamente.&lt;br /&gt;&lt;br /&gt;En el ejemplo siguiente podéis ver que hay una serie de periodos, y una serie de flujos. El primer periodo, corresponde al momento cero, es decir, al momento actual, o momento presente, y corresponde al desembolso inicial (como es la inversión inicial, es decir, un pago, debemos ponerlo en negativo, para distinguirlo de los cobros periódicos que recibiremos). Podemos ver que no nos interesan los periodos de tiempo (no sabemos a la vista de ese pantallazo, si se trata de meses, años, semestres, o cualquier otro periodo), porque se da por hecho que son todos iguales. En la fórmula que podéis ver en el pantallazo siguiente, podéis observar que hemos puesto un 5% como tipo de interés estimado, a partir del cual Excel obtendrá la TIR correcta, aunque si se omite, Excel parte de un tipo de interés del 10%, como interés inicial a partir del cual hará las estimaciones. La TIR obtenida es del 6,7075%, pero no decimos si se trata de una TIR anual, semestral, mensual, etc. ¿Por qué no lo decimos?. Pues porque esa TIR estará expresada en función del periodo. Es decir, si esos periodos 0, 1, 2, 3, 4, 5, y 6, son meses, es decir, pagos y cobros mensuales, la TIR será mensual, y si se trata de años (como es lo más habitual), pues la TIR será anual:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/S2_i_Fe2V9I/AAAAAAAACqo/qYv9OOuDq-8/s1600-h/TIR.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 197px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/S2_i_Fe2V9I/AAAAAAAACqo/qYv9OOuDq-8/s400/TIR.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5435812848690681810" /&gt;&lt;/a&gt;&lt;br /&gt;Suponiendo que estamos hablando de la TIR anual, la imagen anterior, podemos hacerla más legible, de la siguiente forma, donde hemos añadido las fechas. Aparte, podéis observar que en la fórmula de la TIR, hemos omitido el tipo de interés inicial a partir del cual Excel hará la estimación de la TIR:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/S2_jLp6i7VI/AAAAAAAACqw/g-9M3bstxhQ/s1600-h/TIR-fechas.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 173px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/S2_jLp6i7VI/AAAAAAAACqw/g-9M3bstxhQ/s400/TIR-fechas.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5435813064628956498" /&gt;&lt;/a&gt;&lt;br /&gt;Todo esto, junto con el cálculo del valor actual neto, ya lo habíamos explicado en un artículo donde precisamente hablábamos de cómo &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/05/calcular-la-tir-y-el-van.html" title="Calcular la TIR y el VAN"&gt;calcular la TIR y el VAN&lt;/a&gt;. También habíamos visto como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/01/solver-clculo-de-la-tir.html" title="Calcular la TIR con Solver"&gt;calcular la TIR con Solver&lt;/a&gt; (una potente herramienta de Excel, para optimización).&lt;br /&gt;&lt;br /&gt;Ahora la cuestión es la siguiente: ¿Qué pasaría si en lugar de tener los periodos uniformes, se tratase de periodos con diferente periodicidad?. Vamos a suponer que en lugar de recibir esos flujos de cada el día 10 de cada año (ver imagen anterior), se reciben en las siguientes fechas:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S2_jxRoauPI/AAAAAAAACq4/baZA2h9WSOk/s1600-h/TIR-periodos-no-uniformes.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 164px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S2_jxRoauPI/AAAAAAAACq4/baZA2h9WSOk/s400/TIR-periodos-no-uniformes.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5435813710945499378" /&gt;&lt;/a&gt;&lt;br /&gt;¿Sería correcto utilizar la función TIR, para evaluar la tasa interna de rentabilidad de esta inversión, teniendo en cuenta que los periodos no son homogéneos?. Efectivamente, no. Para ello, deberemos utilizar la función TIR.NO.PER, de la siguiente forma:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=TIR.NO.PER(flujos de caja; fechas; tipo de interés estimado)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Como ocurre con la función TIR, podemos omitir el último argumento, donde se nos solitita el tipo de interés a partir del cual Excel hará las estimaciones. Si lo omitimos, Excel presupone que es el 10%.&lt;br /&gt;&lt;br /&gt;En nuestro ejemplo anterior, donde hay periodos que no guardan la misma periodicidad, deberemos introducir esta fórmula para calcular la TIR:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=TIR.NO.PER(D6:D12;C6:C12;5%)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;El resultado sería que nuestra TIR es de 10,8779%, como podéis ver en la siguiente imagen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/S2_khNPByII/AAAAAAAACrA/TmeM0zjWdMg/s1600-h/TIR-calculada-para-periodos-no-uniformes.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/S2_khNPByII/AAAAAAAACrA/TmeM0zjWdMg/s400/TIR-calculada-para-periodos-no-uniformes.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5435814534398986370" /&gt;&lt;/a&gt;&lt;br /&gt;Si os fijáis en los dos ejemplos que ilustran este artículo, veréis que los flujos son los mismos (idénticas cantidades, tanto en pagos como en cobros), pero no son los mismos los periodos donde se producen. Es por ello, que utilizar correctamente las funciones para calcular la TIR, es básico para hacer correctamente las cosas. Solo hay que controlar si los periodos son uniformes o no, para elegir la función TIR o la función TIR.NO.PER.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-1969127649990733782?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/1969127649990733782/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=1969127649990733782" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/1969127649990733782?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/1969127649990733782?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/02/calcular-la-tir-de-una-inversion-para.html" title="Calcular la TIR de una inversión, para periodos irregulares" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_EKImKCCi_hc/S2_i_Fe2V9I/AAAAAAAACqo/qYv9OOuDq-8/s72-c/TIR.gif" height="72" width="72" /><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;DkUHQn44fip7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-2454836773383329578</id><published>2010-01-19T00:05:00.024+01:00</published><updated>2012-01-20T22:17:13.036+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:17:13.036+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aplicaciones" /><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel avanzado" /><category scheme="http://www.blogger.com/atom/ns#" term="economía y finanzas" /><title>Préstamos y cálculo de hipotecas</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/g0Q6D0tbmZgBHVvTsNJbB1tGlRI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g0Q6D0tbmZgBHVvTsNJbB1tGlRI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/g0Q6D0tbmZgBHVvTsNJbB1tGlRI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g0Q6D0tbmZgBHVvTsNJbB1tGlRI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Antes de entrar en materia, anticiparos que este artículo que estáis comenzando a leer, ocupa ni más ni menos que quince páginas en DIN A-4 (este primer párrafo lo he redactado, una vez tenía escrito todo lo demás), así que espero que tengáis paciencia, tiempo, y un poco de voluntad.&lt;br /&gt;&lt;br /&gt;Haré una mínima introducción, para comentaros que ha pasado algo más de un mes desde la última entrada que publiqué en el blog de &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com" title="Excel"&gt;Excel&lt;/a&gt;, y ya era hora de ofreceros a todos los usuarios que seguís fielmente estos artículos, una nueva entrega. En esta ocasión, tocaremos un tema de carácter económico y financiero, que no solo va a serle útil a quien se dedique a estos temas, sino que va a serle útil a todo el mundo. ¿Quién no tiene una &lt;strong&gt;hipoteca&lt;/strong&gt; hoy en día?. ¿Quien no paga un &lt;strong&gt;préstamo&lt;/strong&gt; bancario?. ¿Quién no tiene una deuda porque ha comprado algo a plazos?. Casi todos nos encontramos o nos podemos encontrar en cualquier momento de nuestra vida, en una situación así, ¿verdad?. Pues para todos vosotros, está especialmente indicado este artículo.&lt;br /&gt;&lt;br /&gt;A aquellos usuarios a los que no les interesen los macros, y quieran descargarse el libro de Excel para calcular préstamos, e hipotecas, o simplemente quieran hacer simulaciones de préstamos (esta aplicación que os presento, también es un &lt;strong&gt;simulador de préstamos&lt;/strong&gt;, o lo que es lo mismo, una calculadora de préstamos avanzada), pueden saltarse todo lo que explicaré a continuación, e ir directamente al final del artículo, donde encontrarán un enlace para &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2010/01/prestamos-y-calculo-de-hipotecas.html#descarga-prestamos-hipotecas" title="Descargar la aplicación para calcular préstamos e hipotecas"&gt;descargar el simulador de préstamos&lt;/a&gt;, es decir, el fichero de Excel, con todo lo que veremos aquí. Y a aquellos usuarios que copian y pegan los artículos de este blog, en sus webs o blogs, sin mencionar la fuente, recordarles que la fuente original es http://hojas-de-calculo-en-excel.blogspot.com&lt;br /&gt;&lt;br /&gt;Antes de seguir, quiero comentaros que la metodología que se utiliza para el cálculo de préstamos, sigue el método francés. Los que no sepan que es esto del método francés, simplemente daré un par de pinceladas. El cálculo de préstamos según el método francés, se caracteriza por lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Los intereses se devengan al vencimiento de cada cuota.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;El capital que se amortiza va creciendo en cada cuota, es decir, el principal del préstamo que se va pagando, es cada vez más alto, a medida que va transcurriendo el tiempo, y a medida que vamos liquidando las cuotas.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Los intereses por el contrario, van disminuyendo y son menores en cada cuota.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Las cuotas totales que se pagan, son todas del mismo importe. El capital que se va pagando aumenta, y los intereses disminuyen, pero las cuotas son siempre iguales.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Es importante reseñar que no todas las operaciones financieras se rigen por el método francés, como por ejemplo las operaciones de arrendamiento financiero o leasing, que siguen otra metodología distinta, pero a pesar de eso, también es importante indicar que el método francés es el más extendido para el cálculo de la mayoría de operaciones de financiación.&lt;br /&gt;&lt;br /&gt;Ahora sí, vamos a entrar en materia. Para calcular préstamos con esta aplicación en Excel, utilizaremos un formulario para la entrada de datos. Antes de eso, crearemos otro formulario donde informaremos de las características del préstamo francés.&lt;br /&gt;&lt;br /&gt;Los dos formularios que utilizaremos serán estos:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S1RKPuc8ZKI/AAAAAAAACSQ/wa4ZemmqCXw/s1600-h/calcular-prestamos-formulario-informando-del-metodo-frances.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 255px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S1RKPuc8ZKI/AAAAAAAACSQ/wa4ZemmqCXw/s400/calcular-prestamos-formulario-informando-del-metodo-frances.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5428045084916212898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S1RKIWuxIsI/AAAAAAAACSI/6eHoZM2ymZg/s1600-h/calcular-prestamos-formulario.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 252px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S1RKIWuxIsI/AAAAAAAACSI/6eHoZM2ymZg/s400/calcular-prestamos-formulario.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5428044958289437378" /&gt;&lt;/a&gt;&lt;br /&gt;Aquí os dejo un pantallazo, con un ejemplo de lo que obtendremos con esta aplicación en Excel.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/S1RKnXXaskI/AAAAAAAACSY/0O_zksoZUnU/s1600-h/calculo-de-prestamos.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/S1RKnXXaskI/AAAAAAAACSY/0O_zksoZUnU/s400/calculo-de-prestamos.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5428045491035877954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Entrando ya en los macros, veréis que tenemos cuatro. Uno para acceder al menú principal (desde la hoja donde calcularemos el préstamo), otro macro para imprimir, otro macro para hacer una presentación preliminar (como si utilizáramos la lupa), y otro para cargar el formulario con información sobre el préstamo francés (el formulario que vemos en la primera de las imágenes anteriores).&lt;br /&gt;&lt;br /&gt;Vamos a ver el código de los cuatro macros, y que tendremos que copiar en un módulo:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub menu_principal()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'eliminamos desde la fila 6 hasta el máximo&lt;br /&gt;'que podemos tener, y que ocupa hasta la&lt;br /&gt;'fila número 3021&lt;/span&gt;&lt;br /&gt;Rows("6:3021").Select&lt;br /&gt;Selection.Delete&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos el ancho estandar de 12,14 en la columna E&lt;/span&gt;&lt;br /&gt;Columns("E:E").Select&lt;br /&gt;Selection.ColumnWidth = 12.14&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos el ancho estandar de 11 en&lt;br /&gt;'las columnas desde la F a la J&lt;/span&gt;&lt;br /&gt;Columns("F:J").Select&lt;br /&gt;Selection.ColumnWidth = 11&lt;br /&gt;&lt;span style="color:#009900;"&gt;'nos situamos en la celda B2&lt;/span&gt;&lt;br /&gt;Range("B2").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'vamos a la primera hoja&lt;/span&gt;&lt;br /&gt;Hoja1.Select&lt;br /&gt;Range("B10").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub imprimir()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'imprimimos la hoja activa&lt;/span&gt;&lt;br /&gt;ActiveWindow.SelectedSheets.PrintOut Copies:=1&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub presentacion_preliminar()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'presentación preliminar de la hoja activa&lt;/span&gt;&lt;br /&gt;ActiveWindow.SelectedSheets.PrintPreview&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub prestamo_frances()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Lanzamos el formulario con info sobre&lt;br /&gt;'el préstamo según el método francés&lt;/span&gt;&lt;br /&gt;InfoPrestamoFrances.Show&lt;br /&gt;End Sub&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Ahora dentro del formulario con la información sobre el cálculo de préstamos mediante el método francés, colocaremos los siguientes códigos, uno para cuando cliqueemos en el botón "Si", y otro para cuando cliqueemos en el botón "No" (así precisamente se llaman los CommandButton):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/S1ROYwIcVhI/AAAAAAAACSg/Injo_3blRpU/s1600-h/formulario-de-informacion-del-prestamo-frances.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 366px; height: 234px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/S1ROYwIcVhI/AAAAAAAACSg/Injo_3blRpU/s400/formulario-de-informacion-del-prestamo-frances.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5428049638032430610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Si_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'descargamos el formulario de memoria&lt;/span&gt;&lt;br /&gt;Unload Me&lt;br /&gt;&lt;span style="color:#009900;"&gt;'llamamos al formulario del préstamo francés&lt;br /&gt;'para rellenar los datos&lt;/span&gt;&lt;br /&gt;PrestamoFrances.Show&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub No_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'descargamos el formulario de memoria&lt;/span&gt;&lt;br /&gt;Unload Me&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;A los TextBox y botones del segundo formulario, es decir, del formulario donde rellenaremos los datos del préstamo, les he puesto nombres bien descriptivos. En lugar de llamarlos TextBox1, TextBox2, TextBox3, etc., los he llamado Principal, InteresPrestamo, CuotasAmortizacion, etc., pues así nos será más sencillo saber de qué estamos hablando, cuando leamos el código fuente del formulario.&lt;br /&gt;&lt;br /&gt;Este es el segundo formulario que veremos, cuando cliqueemos en el botón "Si", del formulario anterior:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/S1RVclmIgII/AAAAAAAACSo/6Dy-1c5pPhE/s1600-h/formulario-del-prestamo-frances.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 276px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/S1RVclmIgII/AAAAAAAACSo/6Dy-1c5pPhE/s400/formulario-del-prestamo-frances.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5428057400505041026" /&gt;&lt;/a&gt;&lt;br /&gt;Y todo que viene a continuación, esto será el código que nos encontraremos dentro del formulario (aparte de una pequeña reseña informando que el código es de libre distribución, que está prohibida su venta y su explotación con fines comerciales, y que ha sido obtenido del blog http://hojas-de-calculo-en-excel.blogspot.com). No hace falta que comente para que sirve cada cosa, porque está todo debidamente comentado, y los procedimientos son muy claros. Comenzaremos con el código que nos permitirá controlar los datos introducidos en el formulario:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub UserForm_Activate()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'al activarse sl formulario, añadimos&lt;br /&gt;'las opciones del desplegable relativos&lt;br /&gt;'a la carencia del préstamo (SI/NO)&lt;/span&gt;&lt;br /&gt;Carencia.AddItem "SI"&lt;br /&gt;Carencia.AddItem "NO"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'bloqueamos por defecto, las opciones de la&lt;br /&gt;'carencia (interés y cuotas), para que no se&lt;br /&gt;'pueda escribir, si no se ha seleccionado en&lt;br /&gt;'el desplegable de carencia (SI/NO)&lt;/span&gt;&lt;br /&gt;InteresCarencia.Enabled = False&lt;br /&gt;CuotasCarencia.Enabled = False&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Carencia_Change()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'activamos o desactivamos los TextBox&lt;br /&gt;'relacionados con la carencia del préstamo&lt;/span&gt;&lt;br /&gt;If Carencia.ListIndex = 0 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si se elige Carencia=SI (el primer valor es cero),&lt;br /&gt;    'activamos los restantes TextBox&lt;/span&gt;&lt;br /&gt;    InteresCarencia.Enabled = True&lt;br /&gt;    CuotasCarencia.Enabled = True&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'en caso contrario, si se elige Carencia=NO,&lt;br /&gt;    'desactivamos los restantes TextBox&lt;/span&gt;&lt;br /&gt;    InteresCarencia = ""&lt;br /&gt;    CuotasCarencia = ""&lt;br /&gt;    InteresCarencia.Enabled = False&lt;br /&gt;    CuotasCarencia.Enabled = False&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Principal_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si el valor introducido en el principal&lt;br /&gt;'del préstamo es numérico...&lt;/span&gt;&lt;br /&gt;If IsNumeric(Principal) Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'y además de ser numérico es menor&lt;br /&gt;    'o igual que cero...&lt;/span&gt;&lt;br /&gt;    If Principal &lt;= 0 Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;        Principal = Empty&lt;br /&gt;    Else&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'en caso contrario, que le de formato con&lt;br /&gt;        'separador de miles y dos decimales&lt;/span&gt;&lt;br /&gt;        Principal = Format(Principal, "#,##0.00")&lt;br /&gt;    End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si no es numérico...&lt;/span&gt;&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;    Principal = Empty&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub InteresPrestamo_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si el valor introducido en el interés&lt;br /&gt;'del préstamo es numérico...&lt;/span&gt;&lt;br /&gt;If IsNumeric(InteresPrestamo) Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'y además de ser numérico es menor o igual&lt;br /&gt;    'que 100, y mayor que cero...&lt;/span&gt;&lt;br /&gt;    If InteresPrestamo &lt;= 100 And InteresPrestamo &gt; 0 Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'que divida el valor entre 100 (para que sea %), y&lt;br /&gt;        'que le de formato decimal y con cuatro decimales&lt;/span&gt;&lt;br /&gt;        InteresPrestamo = Format(InteresPrestamo / 100, "##0.0000%")&lt;br /&gt;    Else&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'en caso contrario, eliminamos&lt;br /&gt;        'el dato introducido&lt;/span&gt;&lt;br /&gt;        InteresPrestamo = Empty&lt;br /&gt;    End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si no es numérico...&lt;/span&gt;&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;    InteresPrestamo = Empty&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CuotasAmortizacion_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si el valor es numérico...&lt;/span&gt;&lt;br /&gt;If IsNumeric(CuotasAmortizacion) Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'y además de ser numérico&lt;br /&gt;    'es menor o igual que cero...&lt;/span&gt;&lt;br /&gt;    If CuotasAmortizacion &lt;= 0 Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'eliminamos la entrada&lt;/span&gt;&lt;br /&gt;        CuotasAmortizacion = Empty&lt;br /&gt;    Else&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'en caso contrario, que le de formato con&lt;br /&gt;        'separador de miles, siempre y cuando&lt;br /&gt;        'sea menor que 1500&lt;/span&gt;&lt;br /&gt;        If CuotasAmortizacion &lt;= 1500 Then&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'si es menor o igual que 1500, le&lt;br /&gt;            'damos el formato con separador de miles&lt;/span&gt;&lt;br /&gt;            CuotasAmortizacion = Format(CuotasAmortizacion, "#,##0")&lt;br /&gt;        Else&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'si es mayor que 1500, eliminamos&lt;br /&gt;            'el dato introducido&lt;/span&gt;&lt;br /&gt;            CuotasAmortizacion = Empty&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si no es numérico...&lt;/span&gt;&lt;br /&gt;Else&lt;br /&gt;   &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;    CuotasAmortizacion = Empty&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CuotasAnio_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si el valor no es numérico, o es menor&lt;br /&gt;'o igual que cero, o mayor que 52...&lt;/span&gt;&lt;br /&gt;If Not IsNumeric(CuotasAnio) Or CuotasAnio &lt;= 0 Or CuotasAnio &gt; 52 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;    CuotasAnio = Empty&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Private Sub Fecha_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si el valor no es una fecha...&lt;/span&gt;&lt;br /&gt;If Not IsDate(Fecha) Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;    Fecha = Empty&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si es una fecha, que le de formato de fecha&lt;/span&gt;&lt;br /&gt;Else&lt;br /&gt;    Fecha = Format(Fecha, "dd-mm-yyyy")&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si la fecha es menor que el 01-01-1900, o mayor&lt;br /&gt;    'que el 31-12-3000, borramos el dato introducido&lt;br /&gt;    '(hay que ponerlo con formato mes-día-año)&lt;/span&gt;&lt;br /&gt;    If Fecha &lt; #1/1/1900# Or Fecha &gt; #12/31/3000# Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;        Fecha = Empty&lt;br /&gt;    End If&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub InteresCarencia_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si el valor es numérico...&lt;/span&gt;&lt;br /&gt;If IsNumeric(InteresCarencia) Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'y además de ser numérico es menor o&lt;br /&gt;    'igual que 100, y mayor que cero...&lt;/span&gt;&lt;br /&gt;    If InteresCarencia &lt;= 100 And InteresCarencia &gt; 0 Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'que divida el valor entre 100, y&lt;br /&gt;        'que le de formato con cuatro decimales&lt;/span&gt;&lt;br /&gt;        InteresCarencia = Format(InteresCarencia / 100, "##0.0000%")&lt;br /&gt;    Else&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'en caso contrario, eliminamos&lt;br /&gt;        'el dato introducido&lt;/span&gt;&lt;br /&gt;        InteresCarencia = Empty&lt;br /&gt;    End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si no es numérico&lt;/span&gt;&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;    InteresCarencia = Empty&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CuotasCarencia_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si el valor no es numérico, o es menor&lt;br /&gt;'o igual que cero, o mayor que 1500...&lt;/span&gt;&lt;br /&gt;If Not IsNumeric(CuotasCarencia) Or CuotasCarencia &lt;= 0 Or CuotasCarencia &gt; 1500 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos el dato introducido&lt;/span&gt;&lt;br /&gt;    CuotasCarencia = Empty&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si es menor o igual que 1500, le damos formato&lt;/span&gt;&lt;br /&gt;    CuotasCarencia = Format(CuotasCarencia, "#,##0")&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub QueEsLaCarencia_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'mostramos un mensaje, informando&lt;br /&gt;'de lo que es la carencia&lt;/span&gt;&lt;br /&gt;MsgBox (Chr(13) &amp; "       La carencia es el periodo de tiempo durante       " _&lt;br /&gt;&amp; Chr(13) &amp; "       el cual no se amortiza nada del principal del       " _&lt;br /&gt;&amp; Chr(13) &amp; "       préstamo, pero en cambio, sí que se deven-       " _&lt;br /&gt;&amp; Chr(13) &amp; "       gan y amortizan intereses.       " _&lt;br /&gt;&amp; Chr(13) &amp; Chr(13)), vbOKOnly, " ¿Qué es la carencia?"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Y ahora el código que se ejecutará cuando cliqueemos en los dos botones del formulario, empezando por el código del botón que nos hará los cálculos, y cuyo código es más extenso, y a continuación con el otro botón cuyo código es muy sencillo, y que nos permite cerrar el formulario:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Calcular_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si hay algún campo vacío, o si se ha seleccionado SI&lt;br /&gt;'en la Carencia, pero faltan el interes y/o las cuotas&lt;br /&gt;'de carencia, que muestre un mensaje&lt;/span&gt;&lt;br /&gt;If Principal = Empty Or InteresPrestamo = Empty Or CuotasAmortizacion = Empty Or _&lt;br /&gt;CuotasAnio = Empty Or Fecha = Empty Or Carencia.ListIndex = -1 Or _&lt;br /&gt;(Carencia.ListIndex = 0 And (InteresCarencia = Empty Or CuotasCarencia = Empty)) Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos el mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox (Chr(13) &amp; "       Por favor, revisa el formulario.       " _&lt;br /&gt;    &amp; Chr(13) &amp; Chr(13) &amp; "       Debes completar los datos necesarios, para       " _&lt;br /&gt;    &amp; Chr(13) &amp; "       poder llevar a cabo el análisis del préstamo.       " _&lt;br /&gt;    &amp; Chr(13) &amp; Chr(13)), vbOKOnly, " Datos incompletos"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'en caso contrario, si todos los datos están completos...&lt;/span&gt;&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'informamos que estamos efectuando&lt;br /&gt;    'los cálculos, en el label llamado "Informacion"&lt;/span&gt;&lt;br /&gt;    Informacion = "Calculando..."&lt;br /&gt;    DoEvents&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ocultamos el proceso&lt;/span&gt;&lt;br /&gt;    Application.ScreenUpdating = False&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seleccionamos la Hoja2 (hoja del préstamo francés)&lt;/span&gt;&lt;br /&gt;    Hoja2.Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Unprotect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'eliminamos desde la fila 6 hasta el máximo&lt;br /&gt;    'que podemos tener, y que ocupa hasta la&lt;br /&gt;    'fila número 3021, por si acaso no hemos&lt;br /&gt;    'vuelto al menú principal usando los botones&lt;/span&gt;&lt;br /&gt;    Rows("6:3021").Select&lt;br /&gt;    Selection.Delete&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'escribimos en las celdas, lo que nos&lt;br /&gt;    'interesa, en negrita, y de color granate&lt;/span&gt;&lt;br /&gt;    Range("B6").Select&lt;br /&gt;    ActiveCell = "CÁLCULO DE PRÉSTAMOS (método francés)"&lt;br /&gt;    Selection.Font.Bold = True&lt;br /&gt;    Selection.Font.ColorIndex = 9&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos una doble línea&lt;/span&gt;&lt;br /&gt;    Range("B6:F6").Select&lt;br /&gt;    With Selection.Borders(xlEdgeBottom)&lt;br /&gt;        .LineStyle = xlDouble&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'escribimos los títulos del cuadro&lt;br /&gt;    'resumen que colocaremos en la parte&lt;br /&gt;    'superior de la página&lt;/span&gt;&lt;br /&gt;    Range("B7") = "Principal del préstamo:"&lt;br /&gt;    Range("F7") = Principal&lt;br /&gt;    Range("B8") = "Tipo de interés durante la amortización del préstamo:"&lt;br /&gt;    Range("F8") = InteresPrestamo&lt;br /&gt;    Range("B9") = "Número de cuotas de amortización:"&lt;br /&gt;    Range("F9") = CuotasAmortizacion&lt;br /&gt;    Range("B10") = "Número de cuotas de amortización, al año:"&lt;br /&gt;    Range("F10") = CuotasAnio&lt;br /&gt;    Range("B11") = "Número de años hasta la amortización del préstamo:"&lt;br /&gt;    Range("F11") = Format(CuotasAmortizacion / CuotasAnio, "#,##0.00")&lt;br /&gt;    Range("B12") = "Fecha del primer pago:"&lt;br /&gt;    Range("F12") = Fecha&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos la TAE de la amortización,&lt;br /&gt;    'alineando el dato a la derecha, pero antes&lt;br /&gt;    'miraremos si hay carencia o no, para elegir&lt;br /&gt;    'donde escribimos el dato de la TAE.&lt;/span&gt;&lt;br /&gt;    If Carencia.ListIndex = 0 Then&lt;br /&gt;        Range("J14").Select&lt;br /&gt;    Else&lt;br /&gt;        Range("J15").Select&lt;br /&gt;    End If&lt;br /&gt;    With Selection&lt;br /&gt;        .HorizontalAlignment = xlRight&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos la TAE de la operación&lt;/span&gt;&lt;br /&gt;    TaePrestamo = (((1 + (CDec(Replace(InteresPrestamo, "%", "") / 100) / CuotasAnio)) ^ CuotasAnio) - 1) * 100&lt;br /&gt;    ActiveCell = "TAE: " &amp; Format(TaePrestamo / 100, "##0.0000%")&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos escribiendo, dependiendo de si&lt;br /&gt;    'tenemos o no carencia en el préstamo&lt;/span&gt;&lt;br /&gt;    If Carencia.ListIndex = 0 Then&lt;br /&gt;        Range("B13") = "Tipo de interés durante la carencia:"&lt;br /&gt;        Range("F13") = InteresCarencia&lt;br /&gt;        Range("B14") = "Número de cuotas de carencia:"&lt;br /&gt;        Range("F14") = CuotasCarencia&lt;br /&gt;        Range("B15") = "Número de años de carencia:"&lt;br /&gt;        Range("F15") = Format(CuotasCarencia / CuotasAnio, "#,##0.00")&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos la TAE de la carencia&lt;/span&gt;&lt;br /&gt;        TaeCarencia = (((1 + (CDec(Replace(InteresCarencia, "%", "") / 100) / CuotasAnio)) ^ CuotasAnio) - 1) * 100&lt;br /&gt;        Range("J15") = "TAE carencia: " &amp; Format(TaeCarencia / 100, "##0.0000%")&lt;br /&gt;        With Selection&lt;br /&gt;            .HorizontalAlignment = xlRight&lt;br /&gt;        End With&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos una doble línea,&lt;br /&gt;    'dependiendo de si hay carencia o no&lt;/span&gt;&lt;br /&gt;    If Range("B13") = Empty Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'si no hay carencia, ponemos la doble línea&lt;br /&gt;        'debajo de la fila 12&lt;/span&gt;&lt;br /&gt;        Range("B12:F12").Select&lt;br /&gt;        With Selection.Borders(xlEdgeBottom)&lt;br /&gt;            .LineStyle = xlDouble&lt;br /&gt;        End With&lt;br /&gt;    Else&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'si hay carencia, ponemos la doble línea&lt;br /&gt;        'debajo de la fila 15&lt;/span&gt;&lt;br /&gt;        Range("B15:F15").Select&lt;br /&gt;        With Selection.Borders(xlEdgeBottom)&lt;br /&gt;            .LineStyle = xlDouble&lt;br /&gt;        End With&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'alineamos los datos numéricos a la derecha&lt;/span&gt;&lt;br /&gt;    Range("F7:F15").Select&lt;br /&gt;    With Selection&lt;br /&gt;        .HorizontalAlignment = xlRight&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos escribiendo los encabezados de la tabla&lt;/span&gt;&lt;br /&gt;    Range("B17") = "Cuota nº"&lt;br /&gt;    Range("C17") = "Concepto"&lt;br /&gt;    Range("D17") = "Fecha"&lt;br /&gt;    Range("E17") = "Capital vivo antes del pago de la cuota"&lt;br /&gt;    Range("F17") = "Capital amortizado"&lt;br /&gt;    Range("G17") = "Intereses a pagar"&lt;br /&gt;    Range("H17") = "Capital amortizado acumulado"&lt;br /&gt;    Range("I17") = "Intereses acumulados"&lt;br /&gt;    Range("J17") = "Cuota total"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'alineamos los textos básicos a la izquierda (puesto que se&lt;br /&gt;    'centran por defecto) al estar toda la columna centrada&lt;/span&gt;&lt;br /&gt;    Range("B6:B15").Select&lt;br /&gt;    With Selection&lt;br /&gt;        .HorizontalAlignment = xlGeneral&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'alineamos los encabezados, vertical y horizontalmente,&lt;br /&gt;    'los ajustamos a su celda, y los ponemos en negrita&lt;/span&gt;&lt;br /&gt;    Range("B17:J17").Select&lt;br /&gt;    With Selection&lt;br /&gt;        .HorizontalAlignment = xlCenter&lt;br /&gt;        .VerticalAlignment = xlCenter&lt;br /&gt;        .WrapText = True&lt;br /&gt;        .Font.Bold = True&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos valores y fórmulas, empezando&lt;br /&gt;    'por numerar las cuotas del préstamo&lt;/span&gt;&lt;br /&gt;    Range("B18").Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si no hay carencia (si está vacía), ponemos&lt;br /&gt;    'que el nº de cuotas de carencia es cero&lt;/span&gt;&lt;br /&gt;    If CuotasCarencia = "" Then CuotasCarencia = 0&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'le quitaremos el separador de miles al nº de&lt;br /&gt;    'cuotas de carencia y de amortización del préstamo,&lt;br /&gt;    'pues en los textbox aparecen con el separador.&lt;br /&gt;    'Como no en todos los países se usa el punto, sino que&lt;br /&gt;    'se utiliza la coma, tendremos en cuenta esta circunstancia&lt;/span&gt;&lt;br /&gt;    CuotasCarencia = Replace(CuotasCarencia, ",", "")&lt;br /&gt;    CuotasCarencia = Replace(CuotasCarencia, ".", "")&lt;br /&gt;    CuotasAmortizacion = Replace(CuotasAmortizacion, ",", "")&lt;br /&gt;    CuotasAmortizacion = Replace(CuotasAmortizacion, ".", "")&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'pasamos el nº total de cuotas de amortización&lt;br /&gt;    'y de carencia a una variable&lt;/span&gt;&lt;br /&gt;    CuotasTotales = CInt(CuotasAmortizacion) + CInt(CuotasCarencia)&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos el nº de las cuotas de amortización y de&lt;br /&gt;    'carencia, siempre que CuotasAmortizacion + CuotasCarencia&lt;br /&gt;    'sea mayor o igual que 1&lt;/span&gt;&lt;br /&gt;    If CuotasTotales &gt;= 1 Then&lt;br /&gt;        For i = 1 To CuotasTotales&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'ponemos el nº de la cuota&lt;/span&gt;&lt;br /&gt;            ActiveCell = i&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'bajamos a la fila siguiente&lt;br /&gt;            'y seguimos con el bucle&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Select&lt;br /&gt;        Next&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo los conceptos&lt;/span&gt;&lt;br /&gt;    Range("C18").Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si no hay carencia...&lt;/span&gt;&lt;br /&gt;    If CuotasCarencia = 0 Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos como concepto "Amortización"&lt;br /&gt;        'y debajo, comillas dobles&lt;/span&gt;&lt;br /&gt;        ActiveCell = "Amortización"&lt;br /&gt;        For i = 1 To CInt(CuotasAmortizacion) - 1&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'ponemos el nº de la cuota&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0) = """"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'bajamos a la fila siguiente&lt;br /&gt;            'y seguimos con el bucle&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Select&lt;br /&gt;        Next&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si hay carencia...&lt;/span&gt;&lt;br /&gt;    Else&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos como concepto "Carencia"&lt;/span&gt;&lt;br /&gt;        ActiveCell = "Carencia"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos comillas dobles, si las cuotas&lt;br /&gt;        'de carencia son mayores que 1&lt;/span&gt;&lt;br /&gt;        For i = 1 To CInt(CuotasCarencia) - 1&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'ponemos el nº de la cuota&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0) = """"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'bajamos a la fila siguiente&lt;br /&gt;            'y seguimos con el bucle&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Select&lt;br /&gt;        Next&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos debajo como concepto "Amortización"&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 0).Select&lt;br /&gt;        ActiveCell = "Amortización"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos comillas dobles, si las cuotas&lt;br /&gt;        'de amortización son mayores que 1&lt;/span&gt;&lt;br /&gt;        For i = 1 To CInt(CuotasAmortizacion) - 1&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'ponemos el nº de la cuota&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0) = """"&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'bajamos a la fila siguiente&lt;br /&gt;            'y seguimos con el bucle&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Select&lt;br /&gt;        Next&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'recuerda que todo esto ha salido del blog&lt;br /&gt;    'http://hojas-de-calculo-en-excel.blogspot.com&lt;br /&gt;    'seguimos poniendo las fechas&lt;/span&gt;&lt;br /&gt;    Range("D18").Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'pasamos los primera fecha a una variable&lt;/span&gt;&lt;br /&gt;    FechaDelPrimerPago = CDate(Range("F12"))&lt;br /&gt;    Range("D18") = FechaDelPrimerPago&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si las CuotasAmortizacion + CuotasCarencia son&lt;br /&gt;    'mayores que 1, seguimos poniendo las fechas&lt;/span&gt;&lt;br /&gt;    If CuotasTotales &gt; 1 Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'bajamos una fila&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 0).Select&lt;br /&gt;        For i = 1 To CInt(CuotasTotales) - 1&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'miramos el nº de cuotas anuales para&lt;br /&gt;            'poner la fecha dependiendo de eso&lt;/span&gt;&lt;br /&gt;            Select Case CuotasAnio&lt;br /&gt;                &lt;span style="color:#009900;"&gt;'cuotas semanales&lt;/span&gt;&lt;br /&gt;                Case 52&lt;br /&gt;                    &lt;span style="color:#009900;"&gt;'sumamos 7 días al dato de la celda anterior&lt;/span&gt;&lt;br /&gt;                    ActiveCell.Formula = "=R[-1]C+7"&lt;br /&gt;                &lt;span style="color:#009900;"&gt;'cuotas mensuales, bimensuales, trimestrales,&lt;br /&gt;                'cuatrimestrales, semestrales, o anuales&lt;/span&gt;&lt;br /&gt;                Case 12, 6, 4, 3, 2, 1&lt;br /&gt;                    &lt;span style="color:#009900;"&gt;'que coincida el día exacto (si es primer&lt;br /&gt;                    'pago es el día 12, por ejemplo, que cada&lt;br /&gt;                    'pago coincida con el día 12)&lt;/span&gt;&lt;br /&gt;                    ActiveCell.Formula = "=IF(DATE(YEAR(R18C),MONTH(R18C),DAY(R18C))" &amp; _&lt;br /&gt;                    "=DATE(YEAR(R18C),MONTH(R18C)+1,),DATE(YEAR(R[-1]C),MONTH(R[-1]C)+(12/R10C[2])+1,)" &amp; _&lt;br /&gt;                    ",DATE(YEAR(R[-1]C),MONTH(R[-1]C)+(12/R10C[2]),MIN(DAY(R18C4),DAY(DATE(YEAR(R[-1]C)," &amp; _&lt;br /&gt;                    "MONTH(R[-1]C)+(12/R10C[2])+1,)))))"&lt;br /&gt;                &lt;span style="color:#009900;"&gt;'si es otro tipo de cuota&lt;/span&gt;&lt;br /&gt;                Case Else&lt;br /&gt;                    ActiveCell.Formula = "=IF(R10C[2]=12,DATE(YEAR(R[-1]C),MONTH(R[-1]C)+(12/R10C6)," &amp; _&lt;br /&gt;                    "IF(R10C6=12,DAY(R[-1]C))),R[-1]C+INT(365/R10C[2]))"&lt;br /&gt;            End Select&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'bajamos una fila&lt;/span&gt;&lt;br /&gt;            ActiveCell.Offset(1, 0).Select&lt;br /&gt;        Next&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Seguimos poniendo el capital vivo&lt;br /&gt;    'antes del pago de la 1ª cuota&lt;/span&gt;&lt;br /&gt;    Range("E18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-3]&amp;lt;R14C6+1,R7C6,R7C6)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Seguimos poniendo el capital amortizado&lt;br /&gt;    'en la primera cuota&lt;/span&gt;&lt;br /&gt;    Range("F18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-4]&lt;(R14C6+1),0,IF(RC[-4]&lt;=(R9C6+R14C6),RC[4]-RC[1],0))"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo los intereses pagados&lt;/span&gt;&lt;br /&gt;    Range("G18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-5]&lt;(R14C6+1),RC[-2]*R13C6/R10C6,IF(RC[-5]&lt;=(R9C6+R14C6)," &amp; _&lt;br /&gt;    "RC[-2]*R8C6/R10C6,0))"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo el capital amortizado acumulado&lt;/span&gt;&lt;br /&gt;    Range("H18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-2]&lt;&gt;0,RC[-2],0)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo los intereses acumulados&lt;/span&gt;&lt;br /&gt;    Range("I18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-2]&lt;&gt;0,RC[-2],0)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo la cuota total&lt;/span&gt;&lt;br /&gt;    Range("J18").Select&lt;br /&gt;    ActiveCell.Formula = "=IF(RC[-8]&lt;(R14C6+1),RC[-4]+RC[-3],R7C6*(R8C6/R10C6)/(1-(1+(R8C6/R10C6))^-R9C6))"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo el resto de datos, es decir&lt;br /&gt;    'el capital vivo antes del pago de cada cuota,&lt;br /&gt;    'el capital amortizado, los intereses, el capital&lt;br /&gt;    'amortizado acumulado, los intereses acumulados,&lt;br /&gt;    'y el importe de las cuotas&lt;/span&gt;&lt;br /&gt;    Range("E18").Select&lt;br /&gt;    For i = 1 To CuotasTotales - 1&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'el capital vivo&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 0).Formula = "=IF(RC[-3]&lt;=R14C6+1,R7C6,IF(RC[-3]&lt;=R7C6,R[-1]C-R[-1]C[1],0))"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'el capital amortizado&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 1).Formula = "=IF(RC[-4]&lt;(R14C6+1),0,IF(RC[-4]&lt;=(R9C6+R14C6),RC[4]-RC[1],0))"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'los intereses pagados&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 2).Formula = "=IF(RC[-5]&lt;(R14C6+1),RC[-2]*R13C6/R10C6,IF(RC[-5]" &amp; _&lt;br /&gt;        "&lt;=(R9C6+R14C6),RC[-2]*R8C6/R10C6,0))"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'el capital amortizado acumulado&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 3).Formula = "=IF(RC[-6]&lt;&gt;0,R[-1]C+RC[-2],0)"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'los intereses acumulados&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 4).Formula = "=IF(RC[-7]&lt;&gt;0,R[-1]C+RC[-2],0)"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'la cuota total&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 5).Formula = "=IF(RC[-8]&lt;(R14C6+1),RC[-4]+RC[-3],R7C6*(R8C6/R10C6)/(1-" &amp; _&lt;br /&gt;        "(1+(R8C6/R10C6))^-R9C6))"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'bajamos a la fila siguiente&lt;br /&gt;        'y seguimos con el bucle&lt;/span&gt;&lt;br /&gt;        ActiveCell.Offset(1, 0).Select&lt;br /&gt;    Next&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos las sumas totales, lo ponemos en negrita&lt;br /&gt;    'y le ponemos un nombre a la celda&lt;/span&gt;&lt;br /&gt;    Range("F17").End(xlDown).Offset(1, 0).Select&lt;br /&gt;    ActiveCell.Formula = "=SUM(R[-1]C:R18C)"&lt;br /&gt;    ActiveCell.Name = "SumaDelCapitalAmortizado"&lt;br /&gt;    ActiveCell.Font.Bold = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'sumamos los intereses a pagar, y ponemos&lt;br /&gt;    'el valor de la celda en negrita&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(0, 1).Formula = "=SUM(R[-1]C:R18C)"&lt;br /&gt;    ActiveCell.Offset(0, 1).Font.Bold = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'sumamos las cuotas totales, y ponemos&lt;br /&gt;    'el valor de la celda en negrita&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(0, 4).Formula = "=SUM(R[-1]C:R18C)"&lt;br /&gt;    ActiveCell.Offset(0, 4).Font.Bold = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos las tramas alternas, es decir, celdas&lt;br /&gt;    'sombreadas y blancas desde B17 hasta el final&lt;/span&gt;&lt;br /&gt;    Range("B17", Range("B17").End(xlDown).End(xlToRight)).Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'borramos el formato que tengan&lt;/span&gt;&lt;br /&gt;    Selection.FormatConditions.Delete&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'añadimos los formatos condicionales&lt;br /&gt;    'a los datos de la tabla&lt;/span&gt;&lt;br /&gt;    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=SI(RESIDUO(FILA();2)=0;VERDADERO;FALSO)"&lt;br /&gt;    Selection.FormatConditions(1).Interior.ColorIndex = 15&lt;br /&gt;    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=SI(RESIDUO(FILA();1)=0;VERDADERO;FALSO)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'hacemos lo mismo con los totales&lt;/span&gt;&lt;br /&gt;    Range(Range("F17").End(xlDown), Range("G17").End(xlDown)).Select&lt;br /&gt;    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=SI(RESIDUO(FILA();2)=0;VERDADERO;FALSO)"&lt;br /&gt;    Selection.FormatConditions(1).Interior.ColorIndex = 15&lt;br /&gt;    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=SI(RESIDUO(FILA();1)=0;VERDADERO;FALSO)"&lt;br /&gt;    Range("J17").End(xlDown).Select&lt;br /&gt;    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=SI(RESIDUO(FILA();2)=0;VERDADERO;FALSO)"&lt;br /&gt;    Selection.FormatConditions(1).Interior.ColorIndex = 15&lt;br /&gt;    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=SI(RESIDUO(FILA();1)=0;VERDADERO;FALSO)"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos bordes alrededor de los conceptos&lt;/span&gt;&lt;br /&gt;    Range("B17:J17").Select&lt;br /&gt;    With Selection.Borders&lt;br /&gt;        .LineStyle = xlContinuous&lt;br /&gt;        .Weight = xlThin&lt;br /&gt;        .ColorIndex = xlAutomatic&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'seguimos poniendo bordes desde B18 hasta el final&lt;br /&gt;    'si solo hay 1 cuota ponemos la fila 19 con bordes&lt;/span&gt;&lt;br /&gt;    If CuotasTotales = 1 Then&lt;br /&gt;        Range("B18:J18").Select&lt;br /&gt;        With Selection.Borders&lt;br /&gt;            .LineStyle = xlContinuous&lt;br /&gt;            .Weight = xlThin&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;    Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si hay más de una cuota, ponemos&lt;br /&gt;    'todos los datos con bordes&lt;/span&gt;&lt;br /&gt;        Range("B18", Range("B18").End(xlDown).End(xlToRight)).Select&lt;br /&gt;        With Selection.Borders(xlEdgeLeft)&lt;br /&gt;            .LineStyle = xlContinuous&lt;br /&gt;            .Weight = xlThin&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;        With Selection.Borders(xlEdgeBottom)&lt;br /&gt;            .LineStyle = xlContinuous&lt;br /&gt;            .Weight = xlThin&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;        With Selection.Borders(xlEdgeRight)&lt;br /&gt;            .LineStyle = xlContinuous&lt;br /&gt;            .Weight = xlThin&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;        With Selection.Borders(xlInsideVertical)&lt;br /&gt;            .LineStyle = xlContinuous&lt;br /&gt;            .Weight = xlThin&lt;br /&gt;            .ColorIndex = xlAutomatic&lt;br /&gt;        End With&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'le seguimos poniendo bordes a los totales&lt;br /&gt;    'del capital amortizado, e intereses a pagar&lt;/span&gt;&lt;br /&gt;    Range(Range("F17").End(xlDown), Range("G17").End(xlDown)).Select&lt;br /&gt;    With Selection.Borders&lt;br /&gt;        .LineStyle = xlContinuous&lt;br /&gt;        .Weight = xlThin&lt;br /&gt;        .ColorIndex = xlAutomatic&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'hacemos lo mismo para la suma&lt;br /&gt;    'de las cuotas totales&lt;/span&gt;&lt;br /&gt;    Range("J17").End(xlDown).Select&lt;br /&gt;    With Selection.Borders&lt;br /&gt;        .LineStyle = xlContinuous&lt;br /&gt;        .Weight = xlThin&lt;br /&gt;        .ColorIndex = xlAutomatic&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'configuramos página y ponemos la fila 17 fija,&lt;br /&gt;    'por si hay más de una página a imprimir, para&lt;br /&gt;    'que nos salgan los encabezados correctamente&lt;/span&gt;&lt;br /&gt;    With ActiveSheet.PageSetup&lt;br /&gt;        .PrintTitleRows = "$1:$17"&lt;br /&gt;        .PrintTitleColumns = ""&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si la SumaDelCapitalAmortizado no cuadra exactamente hasta&lt;br /&gt;    'el segundo decimal, con el principal del préstamo, ponemos&lt;br /&gt;    'un mensaje al final de la tabla&lt;/span&gt;&lt;br /&gt;    If Format(Range("SumaDelCapitalAmortizado"), "#,##0.00") &lt;&gt; Format(Range("E18"), "#,##0.00") Then&lt;br /&gt;        Range("B17").End(xlDown).Offset(3, 0).Select&lt;br /&gt;        ActiveCell = "Excel provoca un error en el cálculo, a nivel decimal, en la suma total del capital amortizado."&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'lo alineamos dándole formato general&lt;/span&gt;&lt;br /&gt;        With Selection&lt;br /&gt;            .HorizontalAlignment = xlGeneral&lt;br /&gt;        End With&lt;br /&gt;    End If&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'borramos el nombre de la suma&lt;br /&gt;    'total del capital amortizado&lt;/span&gt;&lt;br /&gt;    ActiveWorkbook.Names("SumaDelCapitalAmortizado").Delete&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'liberamos memoria&lt;/span&gt;&lt;br /&gt;    Principal = Empty&lt;br /&gt;    InteresPrestamo = Empty&lt;br /&gt;    CuotasAmortizacion = Empty&lt;br /&gt;    CuotasAnio = Empty&lt;br /&gt;    Fecha = Empty&lt;br /&gt;    Carencia = Empty&lt;br /&gt;    InteresCarencia = Empty&lt;br /&gt;    CuotasCarencia = Empty&lt;br /&gt;    Informacion = Empty&lt;br /&gt;    Unload Me&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'autoajustamos desde la columna E a la J&lt;/span&gt;&lt;br /&gt;    Columns("E:J").Select&lt;br /&gt;    Selection.Columns.AutoFit&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'nos situamos en la celda B2&lt;/span&gt;&lt;br /&gt;    Range("B2").Select&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;    ActiveSheet.Protect&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos el proceso&lt;/span&gt;&lt;br /&gt;    Application.ScreenUpdating = True&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub cerrar_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Descargamos el formulario de memoria&lt;/span&gt;&lt;br /&gt;Unload Me&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Si os habéis fijado bien (y no os habéis cansado leyendo tanto código fuente), he utilizado fórmulas de matemáticas financieras, omitiendo las funciones propias de Excel, como por ejemplo la función PAGO. Personalmente me gusta más utilizar las fórmulas matemáticas, que estas funciones que lo encapsulan todo, y en las que no se sabe exactamente que es lo que está haciendo la aplicación (bueno, sí se sabe, porque sabemos para que sirven esas funciones, pero el control sobre lo que estamos haciendo, no es el mismo). También os habréis fijado, que he utilizado las fórmulas como si las estuviéramos escribiendo directamente en las celdas de Excel, entrecomillándolas dentro del código, y escribiéndolas en inglés. El secreto de esto último, no es otro que crearlas utilizando la grabadora de macros, ...así no nos equivocaremos.&lt;br /&gt;&lt;br /&gt;Otra cuestión que me gustaría remarcar, es que si en el formulario donde entraremos los datos, escogemos que las cuotas del préstamo sean mensuales, bimensuales, trimestrales, cuatrimestrales, semestrales, o anuales, los cálculos se realizarán escogiendo el mismo día de pago para todas las cuotas. Vamos a explicar esto con un ejemplo sencillo. Imaginad que escogemos amortizar el préstamo de forma mensual (12 cuotas al año). Si el primer pago lo realizamos por ejemplo el día 20-01-2010, si le sumamos 30 días, las cuotas siguientes se pagarían en estas fechas:&lt;br /&gt;&lt;br /&gt;20/01/2010&lt;br /&gt;19/02/2010&lt;br /&gt;21/03/2010&lt;br /&gt;20/04/2010&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Como vemos, no coinciden todas el día 20, que es lo normal (lo que nos aplicará la entidad financiera). En el código está contemplado todo esto, y si escogemos alguno de los periodos que os he indicado antes, el día de pago siempre será fijo (en el caso del ejemplo anterior, todos los pagos se realizarían el día 20 de cada mes).&lt;br /&gt;&lt;br /&gt;Como veis, ya son varios los artículos sobre temas financieros, los que he ido publicando en el blog. Espero que este tenga tan buena aceptación, como la ha tenido el artículo donde explicaba como calcular &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/05/calcular-la-tir-y-el-van.html" title="calcular la TIR y el VAN"&gt;la tir y el van&lt;/a&gt;. A partir de ahora, ya no tienes excusa, para calcular las cuotas de la hipoteca, la letra del coche, o cualquier otro préstamo, porque esta aplicación se constituye como un excelente simulador de préstamos.&lt;br /&gt;&lt;br /&gt;Desde&lt;a name="descarga-prestamos-hipotecas"&gt;&lt;/a&gt; aquí podéis &lt;a href="http://www.mediafire.com/?3k4w3et82vx4ckk" rel="nofollow" target="_blank"&gt;descargar el fichero de Excel&lt;/a&gt;, con el ejemplo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-2454836773383329578?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/2454836773383329578/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=2454836773383329578" title="27 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/2454836773383329578?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/2454836773383329578?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2010/01/prestamos-y-calculo-de-hipotecas.html" title="Préstamos y cálculo de hipotecas" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_EKImKCCi_hc/S1RKPuc8ZKI/AAAAAAAACSQ/wa4ZemmqCXw/s72-c/calcular-prestamos-formulario-informando-del-metodo-frances.gif" height="72" width="72" /><thr:total>27</thr:total></entry><entry gd:etag="W/&quot;DkYFQ304eSp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-5741931790182102461</id><published>2009-12-16T00:01:00.006+01:00</published><updated>2012-01-20T22:15:12.331+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:15:12.331+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Modificar datos utilizando un formulario</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BQUtRX_QpjWqv9CpbPwN_YXyH5k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BQUtRX_QpjWqv9CpbPwN_YXyH5k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BQUtRX_QpjWqv9CpbPwN_YXyH5k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BQUtRX_QpjWqv9CpbPwN_YXyH5k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;En una entrega anterior, habíamos visto como &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/11/introducir-datos-utilizando-un.html" title="introducir datos utilizando un formulario"&gt;introducir datos a través de un formulario&lt;/a&gt;. Si vamos a utilizar la técnica de los formularios para introducir datos en Excel, es más que probable que necesitemos en alguna ocasión, modificar los datos introducidos, bien porque nos hayamos equivocado al darlos de alta, o por cualquier otro motivo.&lt;br /&gt;&lt;br /&gt;Pues hoy vamos a ver precisamente eso, como modificar datos de una hoja de cálculo, utilizando un formulario. He utilizado un ejemplo muy parecido al que habíamos visto en aquella entrega, para que sea más sencillo. Eso sí, una observación: si queréis integrar de forma conjunta el alta de datos y la modificación de datos, utilizando estos ejemplos, copiando y pegando los macros, deberéis tener en cuenta que en el artículo donde os hablaba de cómo &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2009/11/introducir-datos-utilizando-un.html" title="introducir datos utilizando un formulario"&gt;introducir datos a través de un formulario&lt;/a&gt;, los controles (ComboBox, TextBox, etc.) no tienen el mismo nombre que en este artículo que estáis leyendo. Por ejemplo, en aquel artículo, el TextBox de la cantidad de producto, se llamaba TextBox2, y en este artículo lo llamaremos TextBox1.&lt;br /&gt;&lt;br /&gt;Una vez dicho todo esto, vamos a ponernos manos a la obra. Necesitaremos una tabla con datos -eso es evidente-, pues lo que haremos será modificarlos. Necesitaremos que los datos estén de forma continua, sin líneas en blanco, para que nos funcione este ejemplo, aunque se puede utilizar para otros ejemplos donde no se cumpla esta condición. Simplemente tendremos que cambiar un par de líneas. Más adelante os comentaré de qué estamos hablando.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/SyZb51AmewI/AAAAAAAACDw/1WJnKFkpmGo/s1600-h/modificar-datos-con-userform-excel.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 195px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/SyZb51AmewI/AAAAAAAACDw/1WJnKFkpmGo/s400/modificar-datos-con-userform-excel.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5415116650999872258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/Szt5X5UA3qI/AAAAAAAACLQ/VwkkI3NoMfU/s1600-h/formulario-para-modificar-datos-excel.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 258px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/Szt5X5UA3qI/AAAAAAAACLQ/VwkkI3NoMfU/s400/formulario-para-modificar-datos-excel.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5421060027899240098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los dos macros que colocaremos dentro de un módulo serán estos:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Auto_open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub introducir_datos()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'llamamos al formulario&lt;/span&gt;&lt;br /&gt;UserForm1.Show&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Dentro del Formulario (UserForm), tendremos el resto del código. Utilizaremos un macro llamado &lt;strong&gt;ComboBox1_Enter()&lt;/strong&gt; que se ejecutará como su nombre indica, al hacer clic en el ComboBox1. Tendremos también otro llamado &lt;strong&gt;ComboBox1_Change()&lt;/strong&gt;, que nos servirá para cargar en los TextBox los datos correspondientes al productos elegido. También utilizaremos dos macros que evalúen si estamos cambiando la cantidad de producto, y el precio unitario, para recalcular el total, a través de un &lt;strong&gt;TextBox1_Change()&lt;/strong&gt; y de un &lt;strong&gt;TextBox2_Change()&lt;/strong&gt;. Utilizaremos otro macro llamado &lt;strong&gt;CommandButton1_Click()&lt;/strong&gt; que contendrá el código al pulsar el botón para grabar datos, y otro llamado &lt;strong&gt;CommandButton2_Click()&lt;/strong&gt; que servirá, no para borrar los datos del formulario, como en el ejemplo donde introducíamos datos a través de un formulario, sino para eliminar el artículo o producto, de la tabla de Excel.&lt;br /&gt;&lt;br /&gt;Vamos a ver el código de todos ellos:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub ComboBox1_Enter()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'En caso de error, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'limpiamos los datos del Combobox&lt;/span&gt;&lt;br /&gt;ComboBox1.Clear&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Al inciar el formulario,&lt;br /&gt;'seleccionamos la hoja con los datos&lt;/span&gt;&lt;br /&gt;Hoja1.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Seleccionamos la celda B5&lt;/span&gt;&lt;br /&gt;Range("B5").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Vamos a llenar dinámicamente el combobox&lt;br /&gt;'con los nombres de los artículos, hasta&lt;br /&gt;'encontrar una fila vacía&lt;/span&gt;&lt;br /&gt;Do While Not IsEmpty(ActiveCell)&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos el nombre del producto&lt;/span&gt;&lt;br /&gt;    ComboBox1.AddItem ActiveCell.Value&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'bajamos una fila&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(1, 0).Select&lt;br /&gt;Loop&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;En el caso de que no tengamos los datos de forma continua, y hayan filas en blanco, si usamos el bucle &lt;strong&gt;Do While&lt;/strong&gt; del macro anterior, solo se nos cargarán en el ComboBox1 los datos que haya hasta esa fila vacía. Si queremos usarlo correctamente y tenemos filas vacías en la tabla cuyos datos queremos modificar, tendremos que sustituir el bucle &lt;strong&gt;Do While&lt;/strong&gt; por un bucle &lt;strong&gt;For&lt;/strong&gt; para que recorra todas las filas, desde la fila inicial hasta la fila final. Eso sí, se nos cargarán también en el ComboBox1 las filas vacías, aunque podemos omitirlas, añadiendo solo aquellas celdas al combo que contengan datos (que no estén vacías), con un sencillo condicional que evalúe si la celda está vacía o no.&lt;br /&gt;&lt;br /&gt;Bien, seguimos con el resto del código que utilizaremos, y que será el siguiente:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub ComboBox1_Change()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Miramos en qué fila está el producto&lt;br /&gt;'seleccionado en el ComboBox, y le sumaremos&lt;br /&gt;'4 porque empezamos los productos en la fila&lt;br /&gt;'5 (celda B5). Sumaremos también un 1, porque&lt;br /&gt;'los elementos del combobox empiezan a numerarse&lt;br /&gt;'desde cero. Con lo cual sumaremos 4 + 1 = 5.&lt;br /&gt;'Seleccionaremos esa fila, de la columna B, es&lt;br /&gt;'decir, de la columna 2 (el producto)&lt;/span&gt;&lt;br /&gt;Cells(ComboBox1.ListIndex + 5, 2).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'cargamos los datos correspondientes&lt;br /&gt;'al producto elegido&lt;/span&gt;&lt;br /&gt;TextBox1 = ActiveCell.Offset(0, 1)&lt;br /&gt;TextBox2 = ActiveCell.Offset(0, 2)&lt;br /&gt;TextBox3 = ActiveCell.Offset(0, 3)&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub TextBox1_Change()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si cambiamos la cantidad, modificaremos&lt;br /&gt;'el precio total&lt;/span&gt;&lt;br /&gt;If TextBox1 &lt;&gt; "" And IsNumeric(TextBox1) And _&lt;br /&gt;TextBox2 &lt;&gt; "" And IsNumeric(TextBox2) Then&lt;br /&gt;TextBox3 = TextBox1 * TextBox2&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub TextBox2_Change()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si cambiamos el precio unitario, modificaremos&lt;br /&gt;'el precio total&lt;/span&gt;&lt;br /&gt;If TextBox1 &lt;&gt; "" And IsNumeric(TextBox1) And _&lt;br /&gt;TextBox2 &lt;&gt; "" And IsNumeric(TextBox2) Then&lt;br /&gt;TextBox3 = TextBox1 * TextBox2&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CommandButton1_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Miramos en qué fila está el producto&lt;br /&gt;'seleccionado en el ComboBox, y le sumaremos&lt;br /&gt;'4 porque empezamos los productos en la fila&lt;br /&gt;'5 (celda B5). Sumaremos también un 1, porque&lt;br /&gt;'los elementos del combobox empiezan a numerarse&lt;br /&gt;'desde cero. Con lo cual sumaremos 4 + 1 = 5.&lt;br /&gt;'Seleccionaremos esa fila, de la columna B, es&lt;br /&gt;'decir, de la columna 2 (el producto)&lt;/span&gt;&lt;br /&gt;Cells(ComboBox1.ListIndex + 5, 2).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'grabamos los datos modificados&lt;br /&gt;'comenzando con la cantidad&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, 1) = CDbl(TextBox1)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'el precio unitario&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, 2) = CDbl(TextBox2)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'y ahora el precio total&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, 3) = CDbl(TextBox3)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'limpiamos los datos&lt;/span&gt;&lt;br /&gt;ComboBox1.Clear&lt;br /&gt;TextBox1 = ""&lt;br /&gt;TextBox2 = ""&lt;br /&gt;TextBox3 = ""&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos el focus en el TextBox1&lt;/span&gt;&lt;br /&gt;TextBox1.SetFocus&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CommandButton2_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'borramos esa línea entera&lt;/span&gt;&lt;br /&gt;Selection.EntireRow.Delete&lt;br /&gt;&lt;span style="color:#009900;"&gt;'reiniciamos los datos del formulario&lt;/span&gt;&lt;br /&gt;ComboBox1.Clear&lt;br /&gt;TextBox1 = ""&lt;br /&gt;TextBox2 = ""&lt;br /&gt;TextBox3 = ""&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?p5lmhn47alxl3vx" rel="nofollow" target="_blank"&gt;descargar el fichero&lt;/a&gt;, con el ejemplo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-5741931790182102461?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/5741931790182102461/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=5741931790182102461" title="14 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/5741931790182102461?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/5741931790182102461?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2009/12/modificar-datos-utilizando-un.html" title="Modificar datos utilizando un formulario" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_EKImKCCi_hc/SyZb51AmewI/AAAAAAAACDw/1WJnKFkpmGo/s72-c/modificar-datos-con-userform-excel.gif" height="72" width="72" /><thr:total>14</thr:total></entry><entry gd:etag="W/&quot;DkcHQnY-cCp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-7621293781729813170</id><published>2009-12-02T00:01:00.007+01:00</published><updated>2012-01-20T22:13:53.858+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:13:53.858+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Protegiendo nuestros trabajos en Excel</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aSOX2449hMdehnD0F9gpR3cVAys/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aSOX2449hMdehnD0F9gpR3cVAys/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aSOX2449hMdehnD0F9gpR3cVAys/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aSOX2449hMdehnD0F9gpR3cVAys/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;En anteriores ocasiones ya he comentado en el blog, algunas formas para proteger nuestros trabajos de Excel. Entre ellas, una que consiste en &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/05/leer-el-nmero-de-serie-de-los-discos.html" title="Leer el número de serie de un disco duro"&gt;leer el número de serie de un disco duro&lt;/a&gt; donde se abre el archivo Excel, para evitar que nuestro fichero corra de mano en mano, en el caso de que deseemos limitar el uso del mismo a una serie de usuarios registrados, o a aquellos que hayan pagado por utilizar el fichero. &lt;br /&gt;&lt;br /&gt;Entiendo que hay gente que proteja sus trabajos, porque en muchas ocasiones, ha sido descomunal el esfuerzo y el tiempo invertido, como para que un día encontremos nuestros trabajos, circulando por Internet, y que sea otro quien acredite la propiedad intelectual de ese trabajo. Yo personalmente, no he protegido ningún fichero, y ni tan siquiera incluyo un copyright en el mismo. Alguna vez he incluido un enlace hacia este blog, simplemente para que el usuario no se olvide de pasarse por aquí de vez en cuando :-) pero nada más, en relación a la protección de ficheros.&lt;br /&gt;&lt;br /&gt;En otra ocasión también hablé de cómo &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/02/proteger-un-libro-de-excel.html" title="Proteger un fichero Excel"&gt;proteger un fichero Excel&lt;/a&gt;, para que no se pueda trabajar con él, si el usuario no introduce correctamente la contraseña que se solicita, cuando se abre el fichero. Esta opción es similar a la que ya incorpora Excel de forma nativa, y que también se explica al final de ese mismo artículo.&lt;br /&gt;&lt;br /&gt;En esta ocasión vamos a ver como podemos utilizar otra técnica de protección que utilizan algunos programas en sus versiones trial o de demo. En esta ocasión, protegeremos nuestros trabajos de dos formas distintas:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Limitando el número de veces que se usa el fichero.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Limitando el uso del fichero a X días contados desde el primer uso.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Comenzaremos aplicando la primera de las técnicas, es decir, &lt;strong&gt;limitaremos el número de veces que se utiliza el fichero&lt;/strong&gt;. Para ello, crearemos una hoja de control. Es decir, una hoja donde anotaremos las veces que se ha abierto el fichero. En el ejemplo que podéis descargar al final del artículo, el fichero consta de dos hojas normales, más esa tercera de control, que evidentemente tendremos oculta.&lt;br /&gt;&lt;br /&gt;El macro que deberemos grabar en ThisWorkbook (no en un módulo), es este:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Workbook_Open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Omitimos los mensajes de aviso&lt;/span&gt;&lt;br /&gt;Application.DisplayAlerts = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Desactivamos las teclas de cancelacion de macros&lt;/span&gt;&lt;br /&gt;Application.EnableCancelKey = xlDisabled&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Mostramos la Hoja3 que tenemos oculta&lt;/span&gt;&lt;br /&gt;Hoja3.Visible = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Sumaremos el contador de veces que se ha utlizado&lt;br /&gt;'el fichero, cada vez que se abra el mismo&lt;/span&gt;&lt;br /&gt;Hoja3.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si hemos llegado a los 10 usos (ponemos esta&lt;br /&gt;'cantidad como límite, aunque la podéis cambiar)&lt;br /&gt;'entonces mostraremos un mensaje y cerraremos&lt;br /&gt;'el libro por haber cubierto el cupo de veces&lt;br /&gt;'que podemos utilizar el fichero&lt;/span&gt;&lt;br /&gt;If Range("B1") &gt;= 10 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("Lo siento, ya has trabajado con el fichero 10 veces," &amp; _&lt;br /&gt;    Chr(10) + "tiempo más que suficiente para evaluar esta aplicación." &amp; _&lt;br /&gt;    Chr(10) + Chr(10) + "Ha llegado el momento de comprarlo :-)")&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'cerramos el fichero&lt;/span&gt;&lt;br /&gt;    ThisWorkbook.Close&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si todavía no hemos llegado a los 10 usos,&lt;br /&gt;    'escribimos lo que nos interesa&lt;/span&gt;&lt;br /&gt;    Range("A1") = "Veces abierto:"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos la fecha y hora del sistema&lt;/span&gt;&lt;br /&gt;    Range("B1") = Range("B1") + 1&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos de nuevo la Hoja3&lt;/span&gt;&lt;br /&gt;Hoja3.Visible = xlSheetVeryHidden&lt;br /&gt;&lt;span style="color:#009900;"&gt;'grabamos los cambios&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Save&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Nos situamos en la Hoja1&lt;/span&gt;&lt;br /&gt;Hoja1.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Cuando abramos el fichero la 11ª vez, nos aparecerá este mensaje, y se cerrará el libro:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/SxOan5S-35I/AAAAAAAAB-U/Z7jusCRHcxM/s1600/caducidad-de-fichero-excel-limitada-a-10-usos.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 293px; height: 146px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/SxOan5S-35I/AAAAAAAAB-U/Z7jusCRHcxM/s400/caducidad-de-fichero-excel-limitada-a-10-usos.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5409837587588112274" /&gt;&lt;/a&gt;&lt;br /&gt;Vamos a ver ahora como podemos controlar el uso de nuestro fichero &lt;strong&gt;limitando el uso del fichero, a X días contados desde el primer uso&lt;/strong&gt;.&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Workbook_Open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Omitimos los mensajes de aviso&lt;/span&gt;&lt;br /&gt;Application.DisplayAlerts = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Desactivamos las teclas de cancelacion de macros&lt;/span&gt;&lt;br /&gt;Application.EnableCancelKey = xlDisabled&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Mostramos la Hoja3 que tenemos oculta&lt;/span&gt;&lt;br /&gt;Hoja3.Visible = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Nos situamos en la Hoja3&lt;/span&gt;&lt;br /&gt;Hoja3.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si es la primera vez que abrimos el fichero,&lt;br /&gt;'ponemos la fecha de ese primer uso&lt;/span&gt;&lt;br /&gt;If Range("B1") = "" Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'escribimos lo que nos interesa&lt;/span&gt;&lt;br /&gt;    Range("A1") = "1ª apertura:"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos la fecha del sistema&lt;/span&gt;&lt;br /&gt;    Range("B1") = Date&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si ya lo hemos abierto antes ese fichero,&lt;br /&gt;    'controlamos si hay más de 30 días de diferencia&lt;br /&gt;    'entre la primera apertura, y la apertura actual.&lt;br /&gt;    'También controlaremos si han caducado los 30 días,&lt;br /&gt;    'pero puede que el usuario haya puesto una fecha&lt;br /&gt;    'de sistema anterior a la del primer uso. En este caso&lt;br /&gt;    'fecha actual será anterior a esa del primer uso,&lt;br /&gt;    'por lo que también cerraremos el libro&lt;br /&gt;    'porque la fecha del sistema ha sido manipulada&lt;/span&gt;&lt;br /&gt;    If Date - Range("B1") &gt;= 30 Or Date - Range("B1") &lt; 0 Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'mostramos un mensaje indicando que&lt;br /&gt;        'ha caducado el uso del fichero&lt;/span&gt;&lt;br /&gt;        MsgBox ("Lo siento, pero ya has trabajado con el fichero" &amp; _&lt;br /&gt;        Chr(10) + "durante 30 días, desde su primer uso." &amp; _&lt;br /&gt;        Chr(10) + Chr(10) + "Ha llegado el momento de comprarlo :-)")&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'cerramos el fichero&lt;/span&gt;&lt;br /&gt;        ThisWorkbook.Close&lt;br /&gt;    End If&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos de nuevo la Hoja3&lt;/span&gt;&lt;br /&gt;Hoja3.Visible = xlSheetVeryHidden&lt;br /&gt;&lt;span style="color:#009900;"&gt;'grabamos los cambios&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Save&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Nos situamos en la Hoja1&lt;/span&gt;&lt;br /&gt;Hoja1.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Cuando abramos el fichero transcurridos 30 días o más desde el primer uso del fichero, nos aparecerá este mensaje, y se cerrará el libro:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/SxOdM8W9s2I/AAAAAAAAB-c/ttaXsKC9cpw/s1600/caducidad-de-fichero-excel-limitada-a-30-dias.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 252px; height: 146px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/SxOdM8W9s2I/AAAAAAAAB-c/ttaXsKC9cpw/s400/caducidad-de-fichero-excel-limitada-a-30-dias.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5409840423088534370" /&gt;&lt;/a&gt;&lt;br /&gt;El mensaje anterior también nos aparecerá en el caso de que el usuario haya sido espabilado, y haya cambiado la fecha del sistema y haya puesto una fecha anterior a la del primer uso.&lt;br /&gt;&lt;br /&gt;No obstante, este último sistema de protección mediante control de fechas, tiene un pequeño inconveniente. ¿Qué pasa si el usuario manipula y pone como fecha de su sistema (fecha de su PC), una fecha que esté entre la fecha del primer uso, y esos 30 días de caducidad?. Pues efectivamente, que el usuario puede utilizar la aplicación indefinidamente, simplemente cambiando la fecha de su ordenador, y poniendo una fecha que esté dentro de los 30 días contados desde la primera vez que uso el fichero. Este mismo defecto, es habitual encontrarlo en el software de demo, o trial que los fabricantes ponen e nuestra disposición, para evaluar si cubre nuestras necesidades y en tal caso comprarlo. También ellos adolecen de este error de protección.&lt;br /&gt;&lt;br /&gt;¿Cómo podemos solucionar este pequeño contratiempo?. Pues haciendo un mix entre el primer sistema de protección, es decir, controlando la caducidad a los 10 usos, más la limitación de uso a 30 días más allá de la fecha del primer uso. Mezclando ambos sistemas, tenemos todo controlado. Este es el macro:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub Workbook_Open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Omitimos los mensajes de aviso&lt;/span&gt;&lt;br /&gt;Application.DisplayAlerts = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Desactivamos las teclas de cancelacion de macros&lt;/span&gt;&lt;br /&gt;Application.EnableCancelKey = xlDisabled&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Mostramos la Hoja3 que tenemos oculta&lt;/span&gt;&lt;br /&gt;Hoja3.Visible = True&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Nos situamos en la Hoja3&lt;/span&gt;&lt;br /&gt;Hoja3.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si hemos llegado a los 10 usos (ponemos esta&lt;br /&gt;'cantidad como límite, aunque la podéis cambiar)&lt;br /&gt;'entonces mostraremos un mensaje y cerraremos&lt;br /&gt;'el libro por haber cubierto el cupo de veces&lt;br /&gt;'que podemos utilizar el fichero&lt;/span&gt;&lt;br /&gt;If Range("B1") &gt;= 10 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("Lo siento, ya has trabajado con el fichero 10 veces," &amp; _&lt;br /&gt;    Chr(10) + "tiempo más que suficiente para evaluar esta aplicación." &amp; _&lt;br /&gt;    Chr(10) + Chr(10) + "Ha llegado el momento de comprarlo :-)")&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'cerramos el fichero&lt;/span&gt;&lt;br /&gt;    ThisWorkbook.Close&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si todavía no hemos llegado a los 10 usos,&lt;br /&gt;    'escribimos lo que nos interesa&lt;/span&gt;&lt;br /&gt;    Range("A1") = "Veces abierto:"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos la fecha y hora del sistema&lt;/span&gt;&lt;br /&gt;    Range("B1") = Range("B1") + 1&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Ahora controlamos la fecha y el&lt;br /&gt;    'límite de los 30 días de uso&lt;/span&gt;&lt;br /&gt;    If Range("B2") = "" Then&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'escribimos lo que nos interesa&lt;/span&gt;&lt;br /&gt;        Range("A2") = "1ª apertura:"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos la fecha del sistema&lt;/span&gt;&lt;br /&gt;        Range("B2") = Date&lt;br /&gt;    Else&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'si ya lo hemos abierto antes ese fichero,&lt;br /&gt;        'controlamos si hay más de 30 días de diferencia&lt;br /&gt;        'entre la primera apertura, y la apertura actual.&lt;br /&gt;        'También controlaremos si han caducado los 30 días,&lt;br /&gt;        'pero puede que el usuario haya puesto una fecha&lt;br /&gt;        'de sistema anterior a la del primer uso. En este caso&lt;br /&gt;        'fecha actual será anterior a esa del primer uso,&lt;br /&gt;        'por lo que también cerraremos el libro&lt;br /&gt;        'porque la fecha del sistema ha sido manipulada&lt;/span&gt;&lt;br /&gt;       If Date - Range("B2") &gt;= 30 Or Date - Range("B2") &lt; 0 Then&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'mostramos un mensaje indicando que&lt;br /&gt;            'ha caducado el uso del fichero&lt;/span&gt;&lt;br /&gt;            MsgBox ("Lo siento, pero ya has trabajado con el fichero" &amp; _&lt;br /&gt;            Chr(10) + "durante 30 días, desde su primer uso." &amp; _&lt;br /&gt;            Chr(10) + Chr(10) + "Ha llegado el momento de comprarlo :-)")&lt;br /&gt;            &lt;span style="color:#009900;"&gt;'cerramos el fichero&lt;/span&gt;&lt;br /&gt;            ThisWorkbook.Close&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos de nuevo la Hoja3&lt;/span&gt;&lt;br /&gt;Hoja3.Visible = xlSheetVeryHidden&lt;br /&gt;&lt;span style="color:#009900;"&gt;'grabamos los cambios&lt;/span&gt;&lt;br /&gt;ActiveWorkbook.Save&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Nos situamos en la Hoja1&lt;/span&gt;&lt;br /&gt;Hoja1.Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Con todo lo explicado en las otras entradas del blog a las que hacía referencia al principio de este artículo, más lo explicado aquí, creo que ya tenéis las herramientas imprescindibles para proteger la propiedad intelectual de vuestros trabajos. Si combináis todas las técnicas juntas, y encima protegéis las hojas y el código VBA con unas contraseñas que combinen letras, números, y signos (exclamación, arroba, comas, etc.), le pondréis las cosas más difíciles a quien intente apropiarse de vuestro trabajo intelectual.&lt;br /&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?59u9ihz3z6d6eaa" rel="nofollow" target="_blank"&gt;descargar un fichero comprimido&lt;/a&gt;, con tres libros de Excel, cada uno de ellos con los ejemplos que hemos visto en este artículo: protección para 10 usos, protección para 30 días de uso, y protección de ficheros Excel con ambos sistemas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-7621293781729813170?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/7621293781729813170/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=7621293781729813170" title="18 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/7621293781729813170?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/7621293781729813170?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2009/12/protegiendo-nuestros-trabajos-en-excel.html" title="Protegiendo nuestros trabajos en Excel" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_EKImKCCi_hc/SxOan5S-35I/AAAAAAAAB-U/Z7jusCRHcxM/s72-c/caducidad-de-fichero-excel-limitada-a-10-usos.gif" height="72" width="72" /><thr:total>18</thr:total></entry><entry gd:etag="W/&quot;CU8NRXs8cCp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-7090425272116605554</id><published>2009-11-18T00:01:00.005+01:00</published><updated>2012-01-20T22:11:34.578+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:11:34.578+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Introducir datos utilizando un formulario</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6aYvlWnQMmkplGCiXUrKjioxs_c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6aYvlWnQMmkplGCiXUrKjioxs_c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6aYvlWnQMmkplGCiXUrKjioxs_c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6aYvlWnQMmkplGCiXUrKjioxs_c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Una de las formas más vistosas para introducir datos en una hoja de cálculo, es utilizando un formulario. Cuando utilizamos esta técnica, a través del uso de un UserForm, le pedimos al usuario que introduzca una serie de datos, y una vez cumplimentado todo, se graban en la hoja de cálculo, en la línea que le corresponda. Si la primera celda vacía es la B14, pues será en esa celda donde empezaremos a escribir. Si la primera celda vacía es la J4, pues será esa la celda elegida.&lt;br /&gt;&lt;br /&gt;De la misma forma que digo que es una forma vistosa de introducir datos, también he de decir que es una de las formas menos útiles de introducir datos en una hoja de cálculo, pues es mucho más rápido hacerlo directamente sobre la celda donde queremos escribir, que sobre un formulario. Eso sí, si los datos a introducir son pocos, puede sernos de cierta utilidad.&lt;br /&gt;&lt;br /&gt;Vamos a ver como funciona la entrada de datos en una hoja de cálculo, a través de un formulario, utilizando un sencillo ejemplo para llevar un control de compras. Solicitaremos el nombre del producto, la cantidad, y el precio unitario. El sistema nos calculará el total, y grabaremos todos los datos en la primera fila vacía.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/SwJXuZZPkzI/AAAAAAAAB4E/FH_81U4TlJY/s1600/entrada-de-datos-con-userform.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 258px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/SwJXuZZPkzI/AAAAAAAAB4E/FH_81U4TlJY/s400/entrada-de-datos-con-userform.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5404978957400380210" /&gt;&lt;/a&gt;&lt;br /&gt;Una vez hecho el formulario con sus correspondientes Label y TextBox, así como los dos botones, nos bastará con introducir el código VBA. Para ello, lo primero que haremos será proteger la hoja, al arrancar el libro, utilizando el macro Auto_open():&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Auto_open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Este otro sencillo macro nos lanzará el formulario:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub introducir_datos()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'llamamos al formulario&lt;/span&gt;&lt;br /&gt;UserForm1.Show&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Ahora dentro del UserForm (recordemos que los dos macros anteriores deben estar en un módulo VBA), introduciremos estos otros procedimientos. El primero de ellos evalúa si estamos cambiando el TextBox3, para calcular el total, siempre y cuando el TextBox2 y el TextBox3 sean datos numéricos:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub TextBox3_Change()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Cuando cambiemos el TextBox3 (precio unitario)&lt;br /&gt;'miraremos si hay datos también en el TextBox2 (cantidad)&lt;br /&gt;'para multiplicar ambos datos, siempre que sean números&lt;/span&gt;&lt;br /&gt;If TextBox2 &lt;&gt; "" And IsNumeric(TextBox2) And _&lt;br /&gt;TextBox3 &lt;&gt; "" And IsNumeric(TextBox3) Then&lt;br /&gt;    TextBox4 = TextBox2 * TextBox3&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Este otro, será el código del botón que tiene por rótulo el texto "Grabar datos" (el CommandButton1):&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CommandButton1_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Nos situamos al principio&lt;/span&gt;&lt;br /&gt;Range("B4").Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Bajamos hasta encontrar la fila vacía&lt;/span&gt;&lt;br /&gt;Do While Not IsEmpty(ActiveCell)&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Bajamos una fila&lt;/span&gt;&lt;br /&gt;    ActiveCell.Offset(1, 0).Select&lt;br /&gt;Loop&lt;br /&gt;&lt;span style="color:#009900;"&gt;'grabamos los datos en la primera fila vacía&lt;br /&gt;'primero el nombre del producto&lt;/span&gt;&lt;br /&gt;ActiveCell = TextBox1&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ahora la cantidad&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, 1) = CDbl(TextBox2)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ahora el precio unitario&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, 2) = CDbl(TextBox3)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ahora el total&lt;/span&gt;&lt;br /&gt;ActiveCell.Offset(0, 3) = CDbl(TextBox4)&lt;br /&gt;&lt;span style="color:#009900;"&gt;'limpiamos los textbox&lt;/span&gt;&lt;br /&gt;TextBox1 = ""&lt;br /&gt;TextBox2 = ""&lt;br /&gt;TextBox3 = ""&lt;br /&gt;TextBox4 = ""&lt;br /&gt;&lt;span style="color:#009900;"&gt;'ponemos el focus en el TextBox1&lt;/span&gt;&lt;br /&gt;TextBox1.SetFocus&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Y este es el código del botón que borra el contenido de los TextBox:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CommandButton2_Click()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'borramos los datos&lt;/span&gt;&lt;br /&gt;TextBox1 = ""&lt;br /&gt;TextBox2 = ""&lt;br /&gt;TextBox3 = ""&lt;br /&gt;TextBox4 = ""&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/SwJZfHqhNuI/AAAAAAAAB4M/4MYqkqr5MEU/s1600/introduccion-de-datos-por-userform.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 271px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/SwJZfHqhNuI/AAAAAAAAB4M/4MYqkqr5MEU/s400/introduccion-de-datos-por-userform.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5404980893966218978" /&gt;&lt;/a&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?5aqjfvjdc72ko28" rel="nofollow" target="_blank"&gt;descargar el fichero&lt;/a&gt;, con el ejemplo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-7090425272116605554?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/7090425272116605554/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=7090425272116605554" title="41 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/7090425272116605554?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/7090425272116605554?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2009/11/introducir-datos-utilizando-un.html" title="Introducir datos utilizando un formulario" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_EKImKCCi_hc/SwJXuZZPkzI/AAAAAAAAB4E/FH_81U4TlJY/s72-c/entrada-de-datos-con-userform.gif" height="72" width="72" /><thr:total>41</thr:total></entry><entry gd:etag="W/&quot;CUADSHo4eSp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-5355831386399776371</id><published>2009-11-04T00:01:00.015+01:00</published><updated>2012-01-20T22:09:39.431+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:09:39.431+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fórmulas" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Calendarios para imprimir</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/r90wEj12rSMMyfy_RXyS1Fwau5c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r90wEj12rSMMyfy_RXyS1Fwau5c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/r90wEj12rSMMyfy_RXyS1Fwau5c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r90wEj12rSMMyfy_RXyS1Fwau5c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Suele ser habitual que cuando finaliza un año, mucha gente empieza a planificar sus proyectos para el año siguiente: dejar de fumar, apuntarse al gimnasio, hacer dieta, viajar fuera del país, etc. Seguramente, muchos de los afortunados que tenemos empleo, lo primero que hacemos es buscar un calendario para mirar en qué días cae la Semana Santa, miramos también las vacaciones de verano, los días de Navidad, fin de año, y algún que otro puente, porque lo que más deseamos es disfrutar esos días, desconectando alejados de la fábrica o de la oficina.&lt;br /&gt;&lt;br /&gt;Lo normal es que no dispongamos de un &lt;strong&gt;calendario&lt;/strong&gt; del año que viene, hasta unos pocos días antes de la llegada del nuevo año, bien porque nos manda una agenda un proveedor, bien porque nos regala un calendario de pared una entidad financiera, o bien porque nos lo manda una empresa que no conocemos y que quiere vendernos algún producto o servicio.&lt;br /&gt;&lt;br /&gt;Pues bien, hoy vamos a ver como podemos generar nuestros propios &lt;strong&gt;calendarios para imprimir&lt;/strong&gt; y poder tenerlos siempre a mano, para cuando los necesitemos. Para ello utilizaremos Excel, esa potente herramienta que nos permite tratar no solo datos numéricos, o de texto, sino también fechas y unidades de tiempo. Excel tiene una limitación en cuanto al tratamiento de fechas, que hace que solo podamos operar con ellas, si están comprendidas entre el 01-01-1900 y el 31-12-9999. En el caso de utilizar Excel en su versión para un ordenador Macintosh, el rango de fechas permitidas, pasa a ser desde el 01-01-1904, hasta el 31-12-9999.&lt;br /&gt;&lt;br /&gt;Nosotros vamos a generar un &lt;strong&gt;calendario para imprimir&lt;/strong&gt; que cubra el rango desde el año 1920 hasta el 2100. ¿Parece suficiente, verdad?. Pues bueno, si todavía quieres más años, simplemente cambiando una línea del código fuente, podrás alterar ese rango, por si deseas acomodarlo adaptándolo completamente las posibilidades de Excel (si usas una versión para PC, desde el año 1900 al 9999, y si utilizas Excel para Mac, desde el año 1904 al 9999).&lt;br /&gt;&lt;br /&gt;Lo primero que haremos será crear los 12 cuadros, cada uno para cada mes. Cada cuadro estará formado por una celda combinada, donde incluiremos el nombre del mes, y 49 celdas de 7x7, para los días de la semana.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/Su70MM1NwOI/AAAAAAAABxs/Dhl-8nxDmlM/s1600-h/tabla-excel-con-nombre-del-mes.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 211px; height: 217px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/Su70MM1NwOI/AAAAAAAABxs/Dhl-8nxDmlM/s400/tabla-excel-con-nombre-del-mes.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5399521493703835874" /&gt;&lt;/a&gt;&lt;br /&gt;Lo que haremos, será solicitar vía un InputBox, el año para el cual queremos crear el calendario. Una vez introducido, se nos generarán los días de cada mes, colocándose donde les corresponde. Si el día 1 de enero cae en martes, pues aparecerá él martes, y si cae en viernes, pues aparecerá en viernes. Para hacer todo esto, utilizaremos exclusivamente funciones de Excel. Concretamente, para el nombre del mes, tomaremos como referencia el año, que está en la celda K2. En el caso concreto del mes de enero, por ejemplo, la función será esta:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=FECHA($K$2;1;1)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Para la primera fila, y en el caso del mes de enero, bajo el rótulo lunes pondremos esta fórmula:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=SI(ELEGIR(DIASEM(B5);"Do";"Lu";"Ma";"Mi";"Ju";"Vi";"Sa")=B6;1;"")&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Para el resto de días de la semana, pondremos un condicional. En el caso del martes, utilizaremos por ejemplo, esta:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=SI(B7="";SI(ELEGIR(DIASEM($B$5);"Do";"Lu";"Ma";"Mi";"Ju";"Vi";"Sa")=C6;1;"");B7+1)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;En la segunda fila, bajo el lunes, y en el caso de estar trabajando con el mes de enero, pondremos esta fórmula:&lt;br /&gt;&lt;table class="tablaformula"&gt;&lt;tr&gt;&lt;td&gt;=SI(H7&lt;&gt;"";SI(H7+1&gt;DIA(FIN.MES($B$5;0));"";H7+1);"")&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Para el resto de días de la semana, haremos algo parecido, cambiando en la fórmula anterior, la celda H7, por la celda inmediatamente anterior al día de la semana con el que estemos trabajando.&lt;br /&gt;&lt;br /&gt;El modelo, como veis, no tiene mucha complicación, Tan solo hay que utilizar la fórmula ELEGIR, para saber junto con DIASEM, el día de la semana, y compararlo con los datos que aparecen arriba y que contienen el día de la semana (Lu, Ma, Mi, etc.), aunque podéis utilizar otras fórmulas, para obtener esos mismos resultados. También utilizaremos la función FIN.MES, para saber cual es el último día del mes, y que no siga rellenando el calendario más allá del día 30 o 31 (en el caso de febrero, del 28 o 29, según proceda).&lt;br /&gt;&lt;br /&gt;Si la función &lt;strong&gt;FIN.MES&lt;/strong&gt; os devuelve el error &lt;strong&gt;#¿NOMBRE?&lt;/strong&gt;, hay que tener habilitadas las herramientas para análisis. Eso es tan sencillo como marcar la opción &lt;strong&gt;Herramientas para análisis&lt;/strong&gt;, desde el menú &lt;strong&gt;Herramientas&lt;/strong&gt;, y seleccionando a continuación &lt;strong&gt;Complementos...&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Por otra parte, me comentan, que al abrir el fichero desde una versión de Excel en inglés, la función FIN.MES no la traduce de forma automática. En ese caso hay que hacer un reemplazo (desde &lt;strong&gt;Edición&lt;/strong&gt;, seleccionando la opción &lt;strong&gt;Reemplazar&lt;/strong&gt;), y sustituir FIN.MES por EOMONTH.&lt;br /&gt;&lt;br /&gt;Como parece que estar leyendo todo esto, puede parecer un poco lioso, si no tenemos delante el fichero de Excel, lo mejor es que lo descarguéis, y lo probéis. Al final de este artículo, hay un enlace para descargarlo.&lt;br /&gt;&lt;br /&gt;Los macros que utilizaremos, son realmente sencillos. El primero será este, que hará que se proteja la hoja, para que nadie cambie ni borre nada. La protección no tiene ningún password:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Auto_open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Al abrir el libro,&lt;br /&gt;'protegemos la hoja (sin ningún password)&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;El segundo macro es para imprimir el calendario, definiendo el área a imprimir, ajustado a las dimensiones de 1 página de alto y 1 de ancho, y encajándolo todo, horizontal y verticalmente:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub imprimir_calendario()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Seleccionamos el área para imprimir&lt;/span&gt;&lt;br /&gt;ActiveSheet.PageSetup.PrintArea = "$A$1:$Y$40"&lt;br /&gt;&lt;span style="color:#009900;"&gt;'definimos las preferencias de impresión&lt;/span&gt;&lt;br /&gt;With ActiveSheet.PageSetup&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Centramos la impresión&lt;/span&gt;&lt;br /&gt;    .CenterHorizontally = True&lt;br /&gt;    .CenterVertically = True&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Ajustamos la impresión a 1 página&lt;br /&gt;    'tanto de alto como de ancho&lt;/span&gt;&lt;br /&gt;    .Zoom = False&lt;br /&gt;    .FitToPagesWide = 1&lt;br /&gt;    .FitToPagesTall = 1&lt;br /&gt;End With&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Imprimimos el calendario&lt;/span&gt;&lt;br /&gt;ActiveWindow.SelectedSheets.PrintOut Copies:=1&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Este último macro, es para el año. Pondremos el texto en un tamaño de fuente de 18 pixels, lo centraremos en un rango de celdas, y le añadiremos delante el texto "Año", entre otras cosas:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub anio()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Ocultamos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Desprotegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Unprotect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'fichamos la celda donde estamos&lt;/span&gt;&lt;br /&gt;celda = ActiveCell.Address&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Presentamos un inputbox para preguntar el año&lt;/span&gt;&lt;br /&gt;respuesta = InputBox("Introduce el año:", "Año")&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Si el año está entre 1950 y 2100, lo escribimos&lt;br /&gt;'en la celda K2, en caso contrario, mostramos un mensaje&lt;/span&gt;&lt;br /&gt;If Not IsNumeric(respuesta) Or respuesta &lt; 1920 Or respuesta &gt; 2100 Then&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'mostramos un mensaje&lt;/span&gt;&lt;br /&gt;    MsgBox ("No es un año válido. Debe estar entre 1920 y 2100")&lt;br /&gt;    Exit Sub&lt;br /&gt;Else&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'si el año es válido, lo escribimos en la celda K2&lt;/span&gt;&lt;br /&gt;    Range("K2").Select&lt;br /&gt;    ActiveCell = respuesta&lt;br /&gt;    Selection.NumberFormat = """Año"" ###0"&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'ponemos el año en grande, y lo centramos&lt;/span&gt;&lt;br /&gt;    With Selection.Font&lt;br /&gt;        .Size = 18&lt;br /&gt;    End With&lt;br /&gt;    Range("K2:O2").Select&lt;br /&gt;    With Selection&lt;br /&gt;        .HorizontalAlignment = xlCenter&lt;br /&gt;    End With&lt;br /&gt;    Selection.Merge&lt;br /&gt;End If&lt;br /&gt;&lt;span style="color:#009900;"&gt;'volvemos donde estábamos&lt;/span&gt;&lt;br /&gt;Range(celda).Select&lt;br /&gt;&lt;span style="color:#009900;"&gt;'protegemos la hoja&lt;/span&gt;&lt;br /&gt;ActiveSheet.Protect&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Mostramos el procedimiento&lt;/span&gt;&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Por cierto, a este último macro, le he puesto por nombre “anio” en lugar de “año”, por si algún usuario no tiene en su teclado la letra ñ, o por si usa una versión inglesa de Excel, y para evitar posibles problemas al convertir las funciones y los procedimientos.&lt;br /&gt;&lt;br /&gt;Si deseáis añadir el complemento de las &lt;strong&gt;herramientas para análisis&lt;/strong&gt; directamente a través de un macro, podéis añadir esta primera línea al macro &lt;strong&gt;Auto_open()&lt;/strong&gt;:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;AddIns("Herramientas para análisis").Installed = True&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Aquí podéis ver un pantallazo de cómo nos quedaría el calendario, una vez elegido el año. Evidentemente esto no será lo que saldrá por la impresora cuando imprimamos el calendario, pues se trata de un pantallazo para ilustrar este artículo, y aquí salen visibles los botones para los macros:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_EKImKCCi_hc/Su70ecD37lI/AAAAAAAABx0/9j0HeOdZ1J8/s1600-h/calendario-para-imprimir.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 270px; height: 400px;" src="http://1.bp.blogspot.com/_EKImKCCi_hc/Su70ecD37lI/AAAAAAAABx0/9j0HeOdZ1J8/s400/calendario-para-imprimir.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5399521807029497426" /&gt;&lt;/a&gt;&lt;br /&gt;Para los más curiosos, en el calendario se utiliza también el formato condicional, con el fin de poner de color amarillo suave, aquellas celdas que no contienen ningún día, y diferenciarlas así, de aquellas que tienen un número. Si nos situamos en cualquier celda, y vamos a la opción de menú &lt;strong&gt;Formato&lt;/strong&gt;, y a continuación a &lt;strong&gt;Formato condicional…&lt;/strong&gt;, veremos esto (aunque no se pueda apreciar muy bien, aparece en color amarillo pálido, el fondo de la celda):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_EKImKCCi_hc/Su72rttoNBI/AAAAAAAABx8/khF2fal9dZc/s1600-h/formato-condicional-para-celda-vacia.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 121px;" src="http://3.bp.blogspot.com/_EKImKCCi_hc/Su72rttoNBI/AAAAAAAABx8/khF2fal9dZc/s400/formato-condicional-para-celda-vacia.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5399524234129585170" /&gt;&lt;/a&gt;&lt;br /&gt;Si preferís utilizar calendarios con más decoración, con imágenes, y que no estén hechos en Excel, sino con otras aplicaciones, podéis pasaros por algunos sitios de la red. Entre otros, podéis visitar por ejemplo, este blog que contiene abundante información sobre cómo obtener &lt;a href="http://www.pekegifs.com/calendarios/calendariosparaimprimir.htm" target="_blank"&gt;calendarios para imprimir&lt;/a&gt;, aunque posiblemente este último sitio esté dirigido más a un público infantil, al que seguramente Excel todavía les suena a chino :-)&lt;br /&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?qry48k2xscm9bb3" rel="nofollow" target="_blank"&gt;descargar el fichero&lt;/a&gt;, con el ejemplo que hemos visto en este artículo, para que podáis elaborar vuestros propios calendarios para imprimir.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-5355831386399776371?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/5355831386399776371/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=5355831386399776371" title="4 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/5355831386399776371?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/5355831386399776371?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2009/11/calendarios-para-imprimir.html" title="Calendarios para imprimir" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_EKImKCCi_hc/Su70MM1NwOI/AAAAAAAABxs/Dhl-8nxDmlM/s72-c/tabla-excel-con-nombre-del-mes.gif" height="72" width="72" /><thr:total>4</thr:total></entry><entry gd:etag="W/&quot;CUINRXwzfyp7ImA9WhRUEEQ.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-9162830204789061771</id><published>2009-10-21T00:01:00.011+02:00</published><updated>2012-01-20T22:06:34.287+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T22:06:34.287+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel avanzado" /><title>Enviar un email desde Excel</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wBE-hbgGCc2Ucfrx9rGHAZgIQMk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wBE-hbgGCc2Ucfrx9rGHAZgIQMk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wBE-hbgGCc2Ucfrx9rGHAZgIQMk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wBE-hbgGCc2Ucfrx9rGHAZgIQMk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hace ya un tiempo, en forosdelweb.com, un usuario preguntaba si era posible enviar un email desde nuestra aplicación Excel. Otro usuario le contestaba que sí, que se podía hacer, y le remitía a una página web en inglés, donde se explicaba paso a paso, como llevar a cabo esta operación.&lt;br /&gt;&lt;br /&gt;Como hace solo unos pocos días, otro usuario volvió a preguntar sobre el tema en ese mismo foro, se me despertó la curiosidad, y me puse a mirar aquella web en inglés, y a la que en su día no le había prestado mucha atención. La web en cuestión era esta: &lt;a href="http://www.rondebruin.nl/sendmail.htm" target="_blank"&gt;http://www.rondebruin.nl/sendmail.htm&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Allí hay abundante información sobre como enviar un email desde Excel (la documentación está en inglés), y hay ejemplos de cómo adjunta un archivo, como mandar una copia del email a otro usuario, etc. Yo me limitaré a hacer lo más sencillo, que no es otra cosa que enviar un email de texto, haciendo algunas adaptaciones muy sencillas al código original, para facilitar la entrada de datos por parte del usuario. Solo necesitaremos estos 6 datos:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;La cuenta de correo desde la que vamos a mandar nuestro email&lt;/strong&gt;: Este dato lo informaremos directamente en el código fuente del macro.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;El password de nuestra cuenta de correo&lt;/strong&gt;: Este dato lo informaremos directamente en el código fuente del macro.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;El nombre y cuenta de correo, para el "reply"&lt;/strong&gt;: Este dato lo informaremos directamente en el código fuente del macro.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;La cuenta de correo del destinatario&lt;/strong&gt;: Este dato lo informaremos a través de un UserForm.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;El asunto del email&lt;/strong&gt;: Este dato lo informaremos a través de un UserForm.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;El cuerpo del mensaje (el mensaje en sí)&lt;/strong&gt;: Este dato lo informaremos a través de un UserForm.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Como veis, hay 3 datos que siempre serán fijos, y son nuestra cuenta de correo, el password, y el nombre más el email (esto va junto, así que lo consideraremos como un solo dato), por si contesta o hace un "reply" el usuario. Los otros 3 datos que son variables, los introduciremos a través de un UserForm, es decir, informaremos del email del destinatario, el asunto del email, y &lt;br /&gt;&lt;br /&gt;Vamos a enviar un email utilizando el servicio de correo electrónico de Google, es decir, el servicio de su aplicación Gmail. Podemos utilizar una cuenta de Yahoo, Hotmail, o cualquier otra, pero el correo de Gmail, es en mi opinión el mejor de todos. Si utilizáis otro servicio de correo, habrá que cambiar el servidor de correo saliente smtp, cambiando en el código fuente, la línea correspondiente (el código que veréis en este ejemplo, está debidamente comentado).&lt;br /&gt;&lt;br /&gt;Lo primero que haremos será crear un macro desde el que llamaremos al UserForm. Tan sencillo, como hacer esto:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Enviar_email()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'llamamos al userform1&lt;/span&gt;&lt;br /&gt;UserForm1.Show&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;El UserForm constará de 4 etiquetas de texto o Label (Label1, Label2, Label3, y Label4), 3 cuadros de texto o TextBox (TextBox1, TextBox2, TextBox3), y un botón de comando o CommandButton, tal y como podéis ver en la siguiente imagen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/St8s0-yH5LI/AAAAAAAABtM/qAWWAFtDE3g/s1600-h/UserForm-para-enviar-email.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 237px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/St8s0-yH5LI/AAAAAAAABtM/qAWWAFtDE3g/s400/UserForm-para-enviar-email.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5395080167331194034" /&gt;&lt;/a&gt;&lt;br /&gt;Cuando diseñéis el UserForm, al situaros encima del TextBox3, que es el del cuerpo del mensaje, fijaos que en las propiedades (ventana de la izquierda), habéis cambiado &lt;strong&gt;EnterKeyBehavior&lt;/strong&gt; a &lt;strong&gt;true&lt;/strong&gt;, y &lt;strong&gt;MultiLine&lt;/strong&gt; también a &lt;strong&gt;true&lt;/strong&gt;, para que cuando usemos la tecla intro en el cuerpo del mensaje, bajemos a la línea siguiente, y para que cuando escribamos un email largo, automáticamente salte de línea al llegar al final por la derecha. Debéis cambiarlo, para que quede como en la siguiente imagen (ver lo marcado en color rojo atenuado):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EKImKCCi_hc/StTF-dxm62I/AAAAAAAABn8/eTTGTPHC9UU/s1600-h/TextBox3-multilinea-y-con-intro.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 234px;" src="http://2.bp.blogspot.com/_EKImKCCi_hc/StTF-dxm62I/AAAAAAAABn8/eTTGTPHC9UU/s400/TextBox3-multilinea-y-con-intro.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5392152330804587362" /&gt;&lt;/a&gt;&lt;br /&gt;El botón de comando (ese que pone "Enviar el email"), tendrá este código:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Private Sub CommandButton1_Click()&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Si hay errores, que continúe&lt;/span&gt;&lt;br /&gt;    On Error Resume Next&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Creamos el Message y Configuration, para&lt;br /&gt;    'enviar emails a través del objeto CDO de Windows&lt;/span&gt;&lt;br /&gt;    Set oMsg = CreateObject("CDO.Message")&lt;br /&gt;    Set oConf = CreateObject("CDO.Configuration")&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Cargamos los valores por defecto&lt;/span&gt;&lt;br /&gt;    oConf.Load -1&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Configuramos el objeto CDO, con los datos&lt;br /&gt;    'de nuestra cuenta de correo&lt;/span&gt;&lt;br /&gt;    Set Flds = oConf.Fields&lt;br /&gt;    With Flds&lt;br /&gt;        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True&lt;br /&gt;        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos nuestra cuenta de correo de GMAIL&lt;/span&gt;&lt;br /&gt;        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mi_email@gmail.com"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos nuestro password de GMAIL&lt;/span&gt;&lt;br /&gt;        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mi_password"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'este es el smtp de GMAIL. Si usamos Hotmail, yahoo, o cualquier otro&lt;br /&gt;        'servicio de correo, deberemos configurar el smtp, y evidentemente&lt;br /&gt;        'también el nombre de usuario y el password para esa cuenta&lt;/span&gt;&lt;br /&gt;        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"&lt;br /&gt;        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2&lt;br /&gt;        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465&lt;br /&gt;        .Update&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'recogemos el mensaje del TextBox3 del Userform&lt;/span&gt;&lt;br /&gt;    mensaje = TextBox3&lt;br /&gt;    With oMsg&lt;br /&gt;        Set .Configuration = oConf&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'ponemos el nombre y correo para el reply&lt;/span&gt;&lt;br /&gt;        .From = """mi_nombre"" &amp;lt;mi_email@gmail.com&amp;gt;"&lt;br /&gt;        &lt;span style="color:#009900;"&gt;'recogemos el resto de datos del Userform,&lt;br /&gt;        'es decir, el destinatario y el asunto del mensaje&lt;/span&gt;&lt;br /&gt;        .To = TextBox1&lt;br /&gt;        .Subject = TextBox2&lt;br /&gt;        .TextBody = mensaje&lt;br /&gt;        .Send&lt;br /&gt;    End With&lt;br /&gt;    &lt;span style="color:#009900;"&gt;'Mostramos un mensaje, tanto si hay&lt;br /&gt;    'errores como si no los hay&lt;/span&gt;&lt;br /&gt;    If Err &lt;&gt; 0 Then&lt;br /&gt;        MsgBox ("Se ha producido un error, y no se ha podido enviar el email.")&lt;br /&gt;    Else&lt;br /&gt;        MsgBox ("El email se ha enviado correctamente.")&lt;br /&gt;    End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Cuando tengáis todo listo, tan solo deberéis llamar al macro &lt;strong&gt;Enviar_email()&lt;/strong&gt;, para que os presente un formulario como este, para poder enviar un correo electrónico desde nuestra aplicación Excel:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/St8s-fABkyI/AAAAAAAABtU/oAFb8GHtC2s/s1600-h/Formulario-para-enviar-email.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 274px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/St8s-fABkyI/AAAAAAAABtU/oAFb8GHtC2s/s400/Formulario-para-enviar-email.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5395080330598257442" /&gt;&lt;/a&gt;&lt;br /&gt;Como ya sabéis, este macro podéis guardarlo en nuestro &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/07/el-libro-personalxls.html" title="libro personal de Excel"&gt;libro personal de Excel&lt;/a&gt;, para poder utilizarlo desde cualquier hoja de cálculo.&lt;br /&gt;&lt;br /&gt;Desde aquí podéis &lt;a href="http://www.mediafire.com/?5tn89torunb25r8" rel="nofollow" target="_blank"&gt;descargar el fichero&lt;/a&gt;, con el ejemplo que hemos visto en este artículo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-9162830204789061771?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/9162830204789061771/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=9162830204789061771" title="46 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/9162830204789061771?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/9162830204789061771?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2009/10/enviar-un-email-desde-excel.html" title="Enviar un email desde Excel" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_EKImKCCi_hc/St8s0-yH5LI/AAAAAAAABtM/qAWWAFtDE3g/s72-c/UserForm-para-enviar-email.gif" height="72" width="72" /><thr:total>46</thr:total></entry><entry gd:etag="W/&quot;CEUHQ3wyeSp7ImA9WxNVEUw.&quot;"><id>tag:blogger.com,1999:blog-7983188466168395484.post-1570104135974791851</id><published>2009-10-07T09:04:00.006+02:00</published><updated>2009-10-21T10:03:52.291+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-21T10:03:52.291+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macros en excel" /><category scheme="http://www.blogger.com/atom/ns#" term="excel fácil" /><title>Ejecutar una macro a una hora determinada</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_yHoJxMahIdBl3DthC66DWvDNys/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_yHoJxMahIdBl3DthC66DWvDNys/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_yHoJxMahIdBl3DthC66DWvDNys/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_yHoJxMahIdBl3DthC66DWvDNys/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Son muchos los usuarios que llegan a este blog, buscando como se puede ejecutar una macro a una hora determinada. Realmente hasta el día de hoy, no había explicado como se hacía esto, así que aprovecharé la oportunidad para dar respuesta a las inquietudes de estos usuarios.&lt;br /&gt;&lt;br /&gt;Antes de nada, quiero daros mi opinión sobre este macro que hoy veremos. Sinceramente no me gusta nada eso de ejecutar una macro a una hora determinada, porque puede interferir en otros usos que estemos haciendo con la hoja de cálculo. Por ejemplo, podemos estar trabajando con un fichero Excel, y no acordarnos de que a las 18:00 h., se va a cerrar automáticamente Excel sin previo aviso, y sin grabar los últimos cambios que hayamos realizado. Claro, si te sucede eso, pillas un buen cabreo...&lt;br /&gt;&lt;br /&gt;En fin, comentarios aparte, vamos a ver como podemos ejecutar una macro a una hora determinada. Como siempre, lo veremos con un ejemplo. En este caso, lo que haremos será mostrar un mensaje cuando den las 18:00 h., avisándonos de que finaliza nuestra jornada laboral. El macro que grabaremos en un módulo, será este:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Auto_open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Lanzamos el macro llamado mensajillo,&lt;br /&gt;'cuando den las 6 de la tarde&lt;/span&gt;&lt;br /&gt;Application.OnTime TimeValue("18:00:00"), "mensajillo"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Como podéis ver, entre comillas aparece un texto llamado &lt;strong&gt;mensajillo&lt;/strong&gt;. Pues bien, ese es el nombre del macro que se ejecutará a las 18:00 h., y que no es otro que este (que tendremos que grabar también en un módulo):&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub mensajillo()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'lanzamos un mensaje, para avisar que es la&lt;br /&gt;'hora de tomarse una cervecita fuera de la oficina&lt;/span&gt;&lt;br /&gt;MsgBox ("Son las 18:00 h., hora de salir de la oficina. ¡Yuhuuuu!")&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Cuando lleguen las 18:00 h., nos aparecerá este bonito mensaje en pantalla, siempre que no hayamos cerrado el fichero que ejecuta estas macros (o no hayamos cerrado Excel, si tenemos los tenemos en el libro personal de macros):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_EKImKCCi_hc/SsxHIGnVRRI/AAAAAAAABkk/X3hejRRlrx4/s1600-h/mensaje-al-ejecutar-una-macro-a-una-hora-determinada.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 290px; height: 107px;" src="http://4.bp.blogspot.com/_EKImKCCi_hc/SsxHIGnVRRI/AAAAAAAABkk/X3hejRRlrx4/s400/mensaje-al-ejecutar-una-macro-a-una-hora-determinada.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5389761058595751186" /&gt;&lt;/a&gt;&lt;br /&gt;Con esto, ya lo tenemos todo hecho. ¿Facilito, verdad?. Pues ahora solo nos queda por dar respuesta a algunas dudas.&lt;br /&gt;&lt;br /&gt;¿Por qué tiene ese nombre tan raro el macro?. ¿Qué es eso de Auto_open()?. Pues es el nombre que obligatoriamente debe tener el macro para que al abrir el fichero, empiece a contar el tiempo, y que cuando den las 18:00 h. nos avise. Evidentemente, deberá estar abierto el fichero, para que eso suceda, pues en caso contrario no nos aparecerá el aviso. En lugar de crear ese macro Auto_open() en un módulo VBA, podemos hacer lo mismo llamando al evento Open a través de un macro llamado Workbook_Open(), dentro de ThisWorkbook, en lugar de hacerlo en un módulo.&lt;br /&gt;&lt;br /&gt;¿Tengo que tener siempre abierto -aunque sea minimizado-, el fichero donde tengo ese "contador" de tiempo?. No necesariamente. Puedes grabar el macro en el &lt;a href="http://hojas-de-calculo-en-excel.blogspot.com/2008/07/el-libro-personalxls.html" target="_blank" title="El libro personal de macros"&gt;libro personal de macros&lt;/a&gt;. Este libro está siempre "latente" para cuando lo necesitemos, pero oculto, por lo que el macro se ejecutará a la hora programada, siempre y cuando tengas abierto Excel, claro está.&lt;br /&gt;&lt;br /&gt;Si en lugar de ejecutar el macro con ese mensaje a las 18:00h., quisiéramos que se ejecutase al cabo de 30 minutos contados a partir de ese mismo instante, es decir, a partir de la hora que pongamos en marcha el "contador", entonces deberemos cambiar el macro inicial, por este otro:&lt;br /&gt;&lt;table class="tablavba"&gt;&lt;tr&gt;&lt;td&gt;Sub Auto_open()&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Lanzamos el macro llamado mensajillo,&lt;br /&gt;'30 minutos después de ejecutar este Auto_open,&lt;br /&gt;'que es cuando ponemos en marcha el contador de tiempo&lt;/span&gt;&lt;br /&gt;Application.OnTime Now + TimeValue("00:30:00"), "mensajillo"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7983188466168395484-1570104135974791851?l=hojas-de-calculo-en-excel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hojas-de-calculo-en-excel.blogspot.com/feeds/1570104135974791851/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7983188466168395484&amp;postID=1570104135974791851" title="18 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/1570104135974791851?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7983188466168395484/posts/default/1570104135974791851?v=2" /><link rel="alternate" type="text/html" href="http://hojas-de-calculo-en-excel.blogspot.com/2009/10/ejecutar-una-macro-una-hora-determinada.html" title="Ejecutar una macro a una hora determinada" /><author><name>Javier Marco</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_EKImKCCi_hc/SsxHIGnVRRI/AAAAAAAABkk/X3hejRRlrx4/s72-c/mensaje-al-ejecutar-una-macro-a-una-hora-determinada.gif" height="72" width="72" /><thr:total>18</thr:total></entry></feed>

