Programacion VBA

Publicado en 'Programación' por themuplay, 10 Ago 2016.





  1. themuplay

    themuplay Miembro frecuente

    Registro:
    30 May 2012
    Mensajes:
    207
    Likes:
    21




    Alguien podria decirme como copiar datos con

    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy


    para un archivo con extension csv de excel ... Asimismo quiero ejecutar la macros desde el excel destino .


    Mis archivos se llaman

    LibroOrigen:Correlativo millen.csv
    HojaOrigen:Correlativo millen

    LibroDestino: LIBRODESTINO.XLSM
    HojaDestino: DATA

    La explicacion es que cada cierto tiempo se van agregando datos a Correlativo millen.csv y quisiera copiar los datos sin tener que entrar a ese archivo y quiero que la seleccion del rango sea asi ya que el numero de filas no son definidas , las columnas si.
     


  2. TheRoot

    TheRoot Miembro frecuente

    Registro:
    8 Ene 2015
    Mensajes:
    234
    Likes:
    13
    No se si sera de ayuda (hace ufff que no trabajo con macros)

    Puedes usar el grabador de macros de EXCEL y luego ver el codigo, yo haria
    1. Abro el excel destino
    2. (pestaña VIEW) (a la derecha en el boton MACROS) elijo Record Macro
    3. Abro el excel origen
    4. Selecciono los datos a copiar con el teclado
    5. Copio los datos
    6. Pego los datos en el excel destino
    7. Paro la grabacion de macros
    8. Veo el codigo fuente generado.

    Saludos,
     
  3. themuplay

    themuplay Miembro frecuente

    Registro:
    30 May 2012
    Mensajes:
    207
    Likes:
    21
    El grabador de macro no detecta cuando abres otro archivo ... ya lo intenté....
     
  4. TheRoot

    TheRoot Miembro frecuente

    Registro:
    8 Ene 2015
    Mensajes:
    234
    Likes:
    13
    ¿Y si exportas la data en lugar de abrir el archivo?
     
  5. themuplay

    themuplay Miembro frecuente

    Registro:
    30 May 2012
    Mensajes:
    207
    Likes:
    21
    Si exporto no tendria sentido hacer la macros ....
    :/
     
  6. Ryner

    Ryner Miembro frecuente

    Registro:
    8 Oct 2015
    Mensajes:
    114
    Likes:
    33
    Tal vez esto te ayude, utilizado antes de tu macro de selección.
    Para ir al libro donde quieres copiar datos

    Código:
    Application.Goto Workbooks(" ").sheets(" ").cells ( )
    Luego de que pones los comandos para copiar, si lo quieres copiar a otra hoja..

    Código:
    Selection.Copy
        Windows(" ").Activate
        ActiveWindow.ScrollWorkbookTabs Position:=xlLast
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Paste
    Lo malo, solo funciona cuando tienes ambos libros abiertos y con nombres especificos

    Edit: Acabo de ver que lo quieres para archivos csv......no se si funcionaran pero has la prueba ^^
     
  7. TheRoot

    TheRoot Miembro frecuente

    Registro:
    8 Ene 2015
    Mensajes:
    234
    Likes:
    13
    Lo que indico es que la macro exporte, osea con el grabador de macros prendido haz la exportación desde la hoja destino, luego vez el codigo y verificas si puedes acomodarlo para que la próxima vez puedas hacerlo automáticamente via macro.
     
  8. themuplay

    themuplay Miembro frecuente

    Registro:
    30 May 2012
    Mensajes:
    207
    Likes:
    21
    Si es que no quisiera tener los 2 libros abiertos ya que el origen de los datos constantemente un tercer programa esta guardando y no me deja actualizar mientras el archivo csv esté abierto.
     
  9. TheRoot

    TheRoot Miembro frecuente

    Registro:
    8 Ene 2015
    Mensajes:
    234
    Likes:
    13
    Entonces no hay forma, hagas lo que hagas, mientras estes copiando los datos abriras (y bloquearas) el archivo origen si o si.

    Trata de que tu aplicativo grabe en un base de datos y no en un archivo plano, sino no te salvaras del bloqueo del archivo asi sea por poco tiempo.

    Creo que la de exportar data solo abre el archivo origen para copiar los datos, me parece que es el que menos tiempo tiene el archivo tomado.
     
  10. ozk10

    ozk10 Miembro frecuente

    Registro:
    18 Feb 2014
    Mensajes:
    205
    Likes:
    40
    busca este tema en internet: Grabar en Tabla con RecordSet Ado en Excel, suerte campeón (y)