Ir al contenido principal

macros: excel y la web

Desde el menú "archivo / guardar como", Excel nos permitirá elegir entre muchos formatos, incluyendo el "html / htm", lo que nos generará un archivo factible de ser visualizado posteriormente desde cualquier navegador. Creo que la mayor ventaja de esto es, sin lugar a dudas, levantar al servicio de hosting el libro y así compartir nuestro trabajo en un entorno colaborativo. Puedo realizar miles de cálculos y análisis desde Excel, publicando luego de forma muy sencilla los resultados, sin necesidad de contar con conocimientos en leguajes "web".
Pero un libro puede tener muchas hojas, tablas, datos.... y quizás se convierta en una tarea mas que tediosa, al margen de lidiar con formatos, estructuras, etc. ¿Que tal si seleccionamos una tabla, por ejemplo, y ejecutando una macro generamos un archivo .html a partir de dicha selección?
[+/-] Ver el resto / Ocultar

Comentarios

  1. tengo una web en php que me guarda datos en MSSQL que leo desde excel atravez de macro pero cuando leo una tabla salen tags de html en los campos de espacios,tabulaciones y enter como hago para que no se vean y solo se vea la informacion

    ResponderEliminar
  2. Anónimo: creo que necesitás hacer uso de la función de VBA Replace(). Copiá y pegá el siguiente código dentro de un módulo y ejecutalo. Verás como en A2 desaparecen los tags html que le indico; solo es cuestión que modifiques los parámetros a tu proyecto.

    Sub Reemplazar()
    'defino un par de variable:
    Dim TextoSucio, TextoLimpio As String
    'dos constantes: una contiene el tag de apertura
    'de tabla y la otra el tag de cierre
    Const UnTag As String = "???"
    Const OtroTag As String = "///"

    'creo un texto cualquiera, que contiene tags html.
    'estimo que estos datos los extraerás de MSSQL
    TextoSucio = "???esta cadena no sirve///"
    'colocamos en A1 el texto "sucio"
    [a1].Value = TextoSucio
    'ahora utilizo a Replace, que me solicita tres
    'argumentos:
    '1 el texto original
    '2 el texto que quiero buscar (uso las constantes)
    '3 el valor con el cual reemplazaré el segundo
    'argumento:
    TextoLimpio = Replace(TextoSucio, UnTag, "")
    TextoLimpio = Replace(TextoLimpio, OtroTag, "")
    'mostramos el resultado
    [a2].Value = TextoLimpio
    End Sub

    avisame si te sirve

    ResponderEliminar
  3. el cuadro de comentarios del blog no te permite ingresar tags html, por eso verás que usé ??? y /// en el ejemplo. cambialos en el proyecto y verás que funciona lo mismo.

    ResponderEliminar
  4. Hola Damian:

    Podrias indicarme una forma para exportar en html una tabla dinamica sin que pierda las funciones de interactividad (desplegables, etc)?

    Gracias de antemano

    ResponderEliminar
  5. si mal no recuero, te vas a "guardar como...", y en tipo de archivo seleccionas "html". Hay que tildar la opción "agregar interactividad" y seleccionar "tabla dinámica". luego le das al botón "publicar", lo que te llevará a otro formulario con opciones varias, como por ejemplo cambiar la ruta de guardado y de que forma se actualizarán los datos. Ojo: dentro del directorio en donde guardas el archivo se crea una carpeta que contiene un par de archivos XML, fundamentales para que todo funcione correctamente. Luego, en IE, debes tener los controles web instalados... si no están no te preocupes, que un link te llevará a la página de Microsoft para su descarga.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme

sopa de letras en excel

Un lector me comenta que pudo visualizar varias sopas de letras en YouTube, realizadas con Excel. Inmediatamente me dirigí a dicho sitio y busqué información al respecto. Los ejemplos son buenos y si, efectivamente, podemos armar una muy buena "sopa de letras", salvo que (digamos) es un trabajo bastante manual, cosa que intento evitar a toda costa en mis proyectos. Obviamente que la tarea de automatización incluye Macros, lo cual me insume tiempo, pero queda mucho mejor. Vamos primero a explicar muy brevemente la forma de realizar esta juego "a la clásica", para luego pasar a un desarrollo mucho mas complejo, pero también automatizado y realista. la clásica grilla de una sopa de letras [+/-] Ver el resto / Ocultar Bien, analicemos un poco la imagen superior: 1) es una grilla de 20 filas x 20 columnas, aunque bien podríamos hacerla del tamaño que quisiéramos. 2) Cada celda tiene una letra, que fue generada  mediante la anidación de dos funciones. 3) Vean ahora la ba