Función Application.GetOpenFilename

Resuelto
mamined Mensajes publicados 37 Estado Miembro -  
mamined Mensajes publicados 37 Estado Miembro -
Hola grupo,

he construido el código a continuación mirando videos en YouTube (sí, no soy diestro..)
por lo tanto el código funciona y todo va bien salvo una excepción.
Abro un archivo csv y este se abre en Excel lo que plantea un problema porque los datos están juntos y separados por un separador "|" pero también hay ";" y ":" así que, sería necesario que mi código no lo abra con Excel sino con un editor de texto tipo WordPad o Bloc de notas.

¿Cómo modificar mi código para que cuando indique : Set MonClasseur = Application.Workbooks.Open(ListFile) lo haga con uno de los dos tipos de archivo indicados arriba?

De antemano gracias por vuestra ayuda

Option Explicit Sub AutoImportDataTXT() 'declaración de variables Dim ListFile As Variant Dim MonClasseur As Variant 'desactivación de alertas Application.ScreenUpdating = False Application.CutCopyMode = False 'filtrar para ver solo el tipo de archivo a seleccionar ListFile = Application.GetOpenFilename(Title:="Seleccionar los datos e importe los datos", fileFilter:="Ficheros CSV(*.csv*),*xls*", ButtonText:="Haz clic") 'prever el caso de pulsación del botón cancelar en caso 'de error If ListFile <> False Then 'indicamos el archivo seleccionado Set MonClasseur = Application.Workbooks.Open(ListFile) 'copiar los datos MonClasseur.Sheets(1).Range("A1").CurrentRegion.Copy 'pegar los datos ThisWorkbook.Sheets("echantillon").Range("A1").PasteSpecial xlPasteValues 'cerrar libro fuente MonClasseur.Close End If End Sub

3 respuestas

  1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Ambassadeur 1 588
     
    hola, si no lo abres en Excel, no podrás usar los datos desde tu programa.
    0
    1. mamined Mensajes publicados 37 Estado Miembro
       
      Hola yg_be

      gracias por tu respuesta pero no entiendo por qué no podría usar los datos ya que lo hago manualmente y funciona muy bien.
      Entonces, en mi opinión, se podría automatizar.

      Proceso :

      Selección de archivo tipo csv
      clic derecho
      abrir con
      Selecciónar Notepad u otro editor de texto
      hacer ctrl A + ctrl C
      ir a mi hoja de Excel (donde está mi código en la hoja correcta en A1)
      ctrl V

      entonces si funciona así, a mi parecer se podría automatizar.
      0
      1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > mamined Mensajes publicados 37 Estado Miembro
         
        ¿ya has probado hacer este proceso en VBA?
        te aconsejo más bien usar solo Excel, quizá trabajando un poco más para transformar los datos.
        0
      2. mamined Mensajes publicados 37 Estado Miembro > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
         
        Hola,

        de hecho, como ya dije, no puedo con Excel. No funciona, la razón es simple. si abro mi CSV en Excel, tengo columnas separadas (divididas) cuando no debo que estén separadas. mira las 2 imágenes y entenderás el problema.
        0
      3. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > mamined Mensajes publicados 37 Estado Miembro
         
        no pudiste hacerlo con Excel, eso no significa que no sea posible.
        esto quizá te ayude: https://docs.microsoft.com/fr-ch/office/vba/api/excel.workbooks.open
        de lo contrario, puedes, con bastante facilidad, manipular y transformar los datos en VBA.
        0