2014-06-23

Exportar un rango de Excel al bloc de notas mediante VBA

Title Un aspecto importante al trabajar en una aplicación es la salida de datos o exportación de los mismos. Por ejemplo, para exportar datos en un formato de texto compatible con otras aplicaciones o sistemas. En otra entrada quizá trataremos las diferentes alternativas. En esta ocasión exportamos un rango como un fichero de texto (delimitado por tabulaciones) y lo abrimos con el bloc de notas.

Opción 1

La primera alternativa destaca por su brevedad. Abre el bloc de notas y pega el rango de CurrentRegion (región actual). El fichero de texto lo tendremos que guardar antes de cerrar. El problema es que usar SendKeys en VBA puede causar problemas imprevistos. En este caso desactiva la tecla Bloq Num.

Sub Rango_a_Bloc_de_notas1()
    Range("A1").CurrentRegion.Copy 'Celda de la región actual
    Shell "notepad.exe", vbNormalFocus
    SendKeys "^V"
    Close
End Sub

Opción 2

En esta segunda opción prescindimos de SendKeys. Creamos un libro nuevo de Excel, pegamos el contenido de CurrentRegion del libro inicial, guardamos el nuevo libro como fichero de texto con el nombre prueba.txt y abrimos el nuevo fichero de texto con el bloc de notas.

Sub Rango_a_Bloc_de_notas2()
    Application.ScreenUpdating = False
    Range("A1").CurrentRegion.Copy 'Celda de la región actual
    Dim ruta As String, wb As Object
    ruta = ThisWorkbook.Path & "\prueba.txt"
        Set wb = Workbooks.Add
        wb.Worksheets(1).Paste
        wb.SaveAs Filename:=ruta, FileFormat:=xlText
        Application.DisplayAlerts = False
        wb.Close
        Application.DisplayAlerts = True
    Shell "notepad.exe " & ruta, vbNormalFocus
End Sub

8 comentarios:

  1. Saludo...si me puede ayudar
    yo lo que quiero es un macro que me actualice un bloc de nota con los valores que tengo en una hoja de exel...automáticamente cada 5 minutos

    ResponderEliminar
    Respuestas
    1. ¿Cuánto está dispuesto a pagar por dicha ayuda?

      Eliminar
    2. Perdón...no sabia que era una pagina de negocios.....disculpa

      Eliminar
    3. No es una ayuda lo que pides, sino que te hagan un trabajo desde cero, sin mostrar qué has hecho tú por el momento, ni duda concreta alguna y sin ofrecer nada a cambio. El requerimiento es vaguísimo en la doble acepción de la palabra.

      Eliminar
  2. Una cosa es tener una duda otra muy distinta pedir un trabajo personalizado y pretender que sea gratis, es de mala educación. El blog identifica un problema que muchos pueden tener, un problema común y brinda un set de soluciones para que cada quien la adapte a su necesidad, esto de por si ya es loable. Agradezco puntualmente por este post por que me ayudo a solucionar un problema personal, no de negocios. Mil gracias.

    ResponderEliminar
    Respuestas
    1. Muchas gracias por el comentario, Daniel. Saludos.

      Eliminar
  3. Excelente información. La segunda opción la apliqué y me ha sido de mucha ayuda. Gracias.

    ResponderEliminar

Nube de datos