2013-05-28

Importar fuentes web (Atom o RSS) a Excel

Excel también nos permite importar fuentes fuentes web (Atom o RSS) en formato XML. ¿Qué podemos hacer con estos datos?
1. Para encontrar fuentes web, buscaremos el icono  en la página del contenido en cuestión. Haremos clic en el botón secundario y seleccionaremos Copiar dirección del enlace.

En este ejemplo, los libros más vendidos en Amazon en Ciencias, tecnología y medicina, la ruta copiada en es: http://www.amazon.es/gp/rss/bestsellers/books/902503031/ref=zg_bs_902503031_rsslink

2. En la ficha Programador (si no está disponible haz clic aquí) en el grupo XML, haz clic en Origen:








3. En el panel de tareas Origen XML, haz clic en Asignaciones XML y luego en Agregar:


4. En el cuadro de diálogo Seleccionar origen XML pega (CTRL + V) la ruta de la fuente web copiada previamente (ver paso 1) en Nombre de archivo.



5. Nos aparecerá el siguiente mensaje, y presionamos sobre Aceptar.


6. En el panel de tareas Origen XML seleccionamos los elementos que queremos importar (mantener CTRL pulsado para seleccionar varios) y los arrastramos a la hoja de Excel, o bien hacemos doble clic sobre ellos uno a uno. En nuestro ejemplo: title y pubDate.

7. Presionar botón secundario y haz clic sobre Actualizar.


8. El resultado final es la siguiente tabla. Para actualizar los datos, repetir el paso 7.


2013-05-23

Traducir fórmulas con VBA

Si necesitamos saber el nombre de una función en inglés otra alternativa es crear una función usando las propiedades Formulaque devolverá la fórmula de la celda en el idioma de la macro (inglés) y FormulaLocal, en el idioma del usuario.

1.Para traducir al inglés
Function INGLES(Mycell As Range)
INGLES = Mycell.Formula
End Function
2.Para mostrar en el idioma local
Function IDIOMALOCAL(Mycell As Range)
IDIOMALOCAL = Mycell.FormulaLocal
End Function
En el ejemplo se aprecia como cambia el separador de lista: coma en inglés y punto y coma en español.

Entradas relacionadas: Traducción de fórmulas de Ms Excel

2013-05-17

Traducción de fórmulas de Ms Excel

Es muy probable que tarde o temprano, especialmente si trabajamos con VBA, necesitemos traducir alguna fórmula del inglés, o tal vez de otro idioma en el que esté configurado nuestro Ms Excel.

La información más completa al respecto que he encontrado la ofrece Dolf Trieschnig que ha recopilado los nombres de las fórmulas de Excel en 16 idiomas. He tomado sus datos y creado una nueva hoja de búsqueda:


El fichero Excel se puede descargar aquí.

Entradas relacionadas: Traducir fórmulas con VBA

2013-05-10

Unir ficheros de texto con VBA Access

En la entrada anterior explicamos como unir ficheros de texto con VBA en Excel. En Access, el código es idéntico salvo la propiedad para obtener la ruta del fichero Access: Application.CurrentProject.Path
Sub UnirFicherosTexto()
  
    Dim r As String
    r = Application.CurrentProject.Path
    Dim SrcFiles, CurrSrc As String
    Dim DestFile As String, Counter As Integer
    Dim TextLine As String
    SrcFiles = Array(r & "\Fichero1.txt", r & "\Fichero2.txt")
    Open r & "\Fichero3.txt" For Output As #1
    For Counter = 0 To UBound(SrcFiles)
        Open SrcFiles(Counter) For Input As #2
        Do While Not EOF(2)
            Line Input #2, TextLine
            Print #1, TextLine
        Loop
        Close #2
    Next
    Close #1
    
End Sub
Para unir más de dos ficheros, los añadimos en el Array.
SrcFiles = Array(r & "\Fichero1.txt", r & "\Fichero2.txt", r & "\Fichero3.txt")
Entradas relacionadas: Unir ficheros de texto con VBA Excel

2013-05-03

Unir ficheros de texto con VBA Excel

En ocasiones necesitamos unir varios ficheros de texto (.txt o .csv). Por ejemplo, para consolidar dos ficheros descargados en distintos momentos.

Modificamos un ejemplo publicado por Jim Rech en google groups. Hemos transformado la referencias absolutas en relativas. Tan sólo hay que copiar el código en un módulo de Excel y guardar el fichero si es nuevo (o devolvería error pues la propiedad Application.ThisWorkbook.Path está vacía hasta que no se guarda el fichero).

Copiamos los dos ficheros (.txt o .csv) que deseamos unir, Fichero1 y Fichero2, en la misma ruta del Excel con el código. En esa ruta se creará el Fichero3 de salida, con la unión del 1 y el 2, y se sobreescribirá si ya existe.
Sub UnirFicherosTexto()
  
    Dim r As String
    r = Application.ThisWorkbook.Path
    Dim SrcFiles, CurrSrc As String
    Dim DestFile As String, Counter As Integer
    Dim TextLine As String
    SrcFiles = Array(r & "\Fichero1.txt", r & "\Fichero2.txt")
    Open r & "\Fichero3.txt" For Output As #1
    For Counter = 0 To UBound(SrcFiles)
        Open SrcFiles(Counter) For Input As #2
        Do While Not EOF(2)
            Line Input #2, TextLine
            Print #1, TextLine
        Loop
        Close #2
    Next
    Close #1
    
End Sub
Para unir más de dos ficheros, los añadimos en el Array.
SrcFiles = Array(r & "\Fichero1.txt", r & "\Fichero2.txt", r & "\Fichero3.txt")
Entradas relacionadas: Unir dos ficheros de texto en uno con VBA Access
Nube de datos